我正在使用一台被入侵的 Ubuntu 8.04 Plesk 9.5.4 服务器。似乎服务器上的一个脚本正在不断地对互联网上的随机 IP 进行反向查找。
我第一次在使用过程中发现了它top
,然后注意到这个闪烁的图标不断出现:
sh -c host -W 1 '198.204.241.10'
我编写了一个脚本,ps
每秒查询一次,以查看该脚本发生的频率:
#!/bin/bash
while :
do
ps -ef | egrep -i "sh -c host"
sleep 1
done
结果是该脚本每隔几秒就会经常运行:
www-data 17762 8332 1 10:07 ? 00:00:00 sh -c host -W 1 '59.58.139.134'
www-data 17772 8332 1 10:07 ? 00:00:00 sh -c host -W 1 '59.58.139.134'
www-data 17879 17869 0 10:07 ? 00:00:00 sh -c host -W 1 '198.204.241.10'
www-data 17879 17869 1 10:07 ? 00:00:00 sh -c host -W 1 '198.204.241.10'
www-data 17879 17869 0 10:07 ? 00:00:00 sh -c host -W 1 '198.204.241.10'
root 18031 17756 0 10:07 pts/2 00:00:00 egrep -i sh -c host
www-data 18078 16704 0 10:07 ? 00:00:00 sh -c host -W 1 '59.58.139.134'
www-data 18125 17996 0 10:07 ? 00:00:00 sh -c host -W 1 '91.124.51.65'
root 18131 17756 0 10:07 pts/2 00:00:00 egrep -i sh -c host
www-data 18137 17869 0 10:07 ? 00:00:00 sh -c host -W 1 '198.204.241.10'
www-data 18137 17869 1 10:07 ? 00:00:00 sh -c host -W 1 '198.204.241.10'
我的理论是,如果我能看到谁在启动该sh
进程或启动该进程的表单,我就能进一步隔离问题。
有人可以指导我使用netstat
或ps
识别从哪里sh
运行吗?
我可能会收到很多建议,说操作系统已经过时了,Plesk 也是如此,但请记住,这台服务器运行旧版软件有一些非常具体的原因。我的问题针对的是高级 Linux 系统管理员,他们在安全漏洞和使用方面有着丰富的经验,netstat
并ps
希望能够彻底解决它。
更新时间:10 月 26 日 14:01 SAST
@ramruma 在评论中留下的命令grep -lr 'sh -c host'
帮助我快速找到了运行该脚本的相应网站。结果服务器没有受到攻击。相反,那里有一个论坛,由由 SMF 1.1.2 提供支持 | SMF © 2006-2007,Simple Machines LLC每次有人访问论坛时都会进行反向查找。
事实证明,该论坛无人维护,垃圾邮件泛滥,我们最初认为它被入侵是因为许多反向查找指向以垃圾邮件闻名的外国 IP。只有天知道一个网站如何执行此命令,但目前我将关闭此问题,因为它无害。
关于我收到的关于“从备份恢复”的统一回复,我向 ServerFault 寻求帮助以隔离问题,并在最初的请求中明确说明了这一点。有时从备份恢复是不切实际的,甚至是不可能的。最好找出问题所在或找到妥协方案,以防将来再次出现。
答案1
虽然看起来你已经找到了这个问题的原因,但是转储进程表pstree
和一些参数可能会有所帮助。
ps
将循环中的命令替换为:
pstree -apu www-data >> getyousomespam.txt
由于它会生成大量文本,因此您只需运行大约 30 秒即可。这将显示 www-data 拥有的所有进程、它们的祖先进程、沿途的所有 uid 转换 ( -u
)、您可以搜索的命令行参数 ( -a
) 和 PID ( -p
)。
显然这些信息完全是胡说八道如果您已经被入侵,但如果还没有(这里似乎是这种情况),这将提供您正在寻找的书面记录……或者至少是一个良好的开端。
编辑:
pstree
与原始终端无关,但如果您可以将事物隔离到持久祖先进程,那么拥有 PID 将很容易从那里完成工作。
答案2
停下来。你的做法不对。你的服务器已被入侵,你需要断开连接并从已知良好的备份中恢复。另请参阅我该如何处理受到感染的服务器?