记一次Linux操作系统被入侵的排查过程

某天突然发现IDC机房一台测试服务器的流量异常,几乎占满了机房的总带宽,导致其他服务器程序运行业务受阻!
意识到了这台测试机被人种了木马,于是开始了紧张的排查过程:

1)运行ps和top命令

发现了两个陌生名称的程序(比如mei34hu)占用了大部分CPU资源,显然这是别人植入的程序!

果断尝试kill掉这两个进程,kill后,测试机流量明显降下去。然而不幸的是,不一会儿又恢复了之前的状态。

2)将IDC这台测试机的外网关闭。远程通过跳板机内网登陆这台机器。
3)查看这些陌生程序所在路径

查找程序路径:

ls /proc/进程号/exe,然后再次kill掉进程,又会生成一个新的进程名,发现路径也是随机在PATH变量的路径中变换,有时在/bin目录,有时在/sbin,有时在/usr/bin目录中。看来还有后台主控程序在作怪,继续查找。

4)尝试查找跟踪程序

查看/bin,/sbin,/usr/bin等目录下是否存在以.开头的文件名,发现不少,而且部分程序移除后会自动生成。

1
2
[root@localhost ~]# ls /usr/bin/.    //按Tab键补全
./ ../ .ssh.hmac

这说明还没找到主控程序。

5)接着用strace命令跟踪这些陌生程序:
1
[root@localhost ~]# strace /bin/mei34hu

结果发现在跟踪了这个程序后,它居然自杀了(把自己进程文件干掉了)!然后想用netstat看下网络连接情况,结果居然查不到任何对外的网络连接,于是开始怀疑命令被修改过了。

使用stat 查看系统命令ps、ls 、netstat、pstree等等:

1
2
3
4
5
6
7
8
9
10
11
[root@localhost ~]# which ps
/usr/bin/ps
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@localhost ~]# which netstat
/usr/bin/netstat
[root@localhost ~]# stat /usr/bin/netstat
[root@localhost ~]# stat /usr/bin/ps
[root@localhost ~]# stat /usr/bin/ls
......

发现修改时间都是在最近的3天内,这让我猛然想起传说中的rootkit用户态级病毒!!

有可能是这台测试机刚安装好系统后,设置了root密码为123456,之后又把它放到过公网上被人入侵了。

接着查一下它在相关路径中还放了哪些程序:

1
2
3
4
[root@localhost ~]# find /bin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /usr/bin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /use/sbin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /sbin -mtime -3 -type f | xargs rm -f

将上面查找出的3天前的程序统统都删掉,并强制断电,重启服务器!然而可恨的是这些程序在机器重启后又好端端的运行以来!

很明显,这些程序都被设置了开机自启动

6)查看系统启动项
1
[root@localhost ~]# find /etc/rc.d/ -mtime -3 ! -type d

果然这些程序都被设置了开机自启动。于是,就再来一次删除,然后暴力重启服务器。

1
2
3
4
5
[root@localhost ~]# find /bin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /usr/bin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /use/sbin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /sbin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /etc/rc.d/ -mtime -3 ! -type d | xargs rm -f

重启完服务器后,用top命令查看,系统CPU使用率也不高了。居然这样就被干掉了。

7)顾虑到系统常用命令中(如ls,ps等)可能会隐藏启动进程,这样一旦执行又会拉起木马程序。于是再查看下系统中是否创建了除root以外的管理员账号:
1
2
[root@localhost ~]# awk -F":" '{if($3 == 0) print $1}' /etc/passwd
root

结果发现只输入了root这一个用户,说明系统用户是正常的。

其实,当系统被感染rootkit后,系统已经变得不可靠了,唯一的办法就是重装系统了。

8)对于一些常用命令程序的修复思路:找出常用命令所在的rpm包,然后强制删除,最后在通过yum安装(由于外网已拿掉,可以通过squid代理上网的yum下载)
1
2
3
4
[root@localhost ~]# rpm -qf /bin/ps
[root@localhost ~]# rpm -qf /bin/ls
[root@localhost ~]# rpm -qf /bin/netstat
[root@localhost ~]# rpm -qf /usr/bin/pstree

然后将上面命令查找出来的rpm包强制卸载

1
2
3
4
[root@localhost ~]# rpm -e --nodeps ......
[root@localhost ~]# rpm -e --nodeps ......
[root@localhost ~]# rpm -e --nodeps ......
[root@localhost ~]# rpm -e --nodeps ......

接着再重新安装

1
[root@localhost ~]# yum install -y procps coreutils net-tools psmisc

最后重启下系统即可。除了上面这次排查之外,还可以:

1
2
3
1)结合服务器的系统日志/var/log/messages、/var/log/secure进行仔细检查。
2)将可疑文件设为不可执行,用chattr +ai将几个重要目录改为不可添加和修改,再将进程杀了,再重启
3)chkrootkit之类的工具查一下

对于以上这些梳理的木马排查的思路要清楚,排查手段要熟练。遇到问题不要慌,静下心,细查系统日志,根据上面的排查思路来一步步处理,这样Hacker就基本”投降”了~~~

博主QQ:1012405802
技术交流QQ群:830339411
版权声明:网站内容有原创和转载,如有侵权,请联系删除,谢谢!!
感谢打赏,93bok因你们而精彩!!(支付宝支持花呗)
0%