事件起因:某晚,22点左右,我在与某君电话中,突然发现电脑上QQ自动离线,然后又自动登录,开始以为QQ被盗了。电话完后,发现是网络不稳定引起的,由于小区宽带上个月才进电信光纤网,存在一些不稳定因素,是可以理解的。但马上发现我居然连普通的百度都打不开了,几分钟后,我冷静了下来,准备看看是不是附近有人赠我的网,把我的带宽用完了。果断登录路由器发现我的Linux虚拟机居然占用了所有的上行流量,事态趋向严重了——我的Linux机器被人中了木马。开始排查:
ps命令发现其中有两个随机英文名程序,应该不是我自己的程序。使用top命令发现如下图:
尝试kill掉这两个进程,几秒内,路由器显示带宽使用率下来了,但不幸的是,马上又恢复了我打电话期间的状态。好吧,看来还有后台程序会自动生成。
此步中我将虚拟机网上改成vmnet host only模式,让它暂时不能连接互联网,恢复家庭网络。同时将虚拟机网卡IP设置成与vmware虚拟网卡同一网段,以方便ssh工具进行连接。
查找程序路径:ls /proc/进程号/exe,然后再次kill掉进程,又会生成一个新的进程名,发现路径也是随机在PATH变量的路径中变换,有时在/bin目录,有时在/sbin,有时在/usr/bin目录中。
看来还有后台主控程序在作怪,继续查找。
查看/bin /sbin /usr/bin等目录下是否存在以.开头的文件名,发现不少,而且部分程序移除后会自动生成。
[root@localhost opt]# ls /usr/bin/.
./ ../ .fipscheck.hmac .ssh.hmac
说明还没找到主控程序;此时我好奇心发作,想用strace 跟踪程序看有什么特殊没有,结果发现系统还未安装strace命令,此时虚拟机不可能联网安装,只能将光盘挂载到系统中去,创建本地yum源进行安装:
mkdir /mnt/cdrom/
mount /dev/sr0 /mnt/cdrom
cd /etc/yum.repos.d
cat >DVD.repo<
好了,接下来跟踪一下:strace /bin/hzqzqdmatu
execve("/bin/hzqzqdmatu", ["/bin/hzqzqdmatu"], [/* 22 vars */]) = 0
[ Process PID=21656 runs in 32 bit mode. ]
uname({sys="Linux", node="localhost.localdomain", …}) = 0
brk(0) = 0x8478000
brk(0x8478cc0) = 0x8478cc0
set_thread_area(0xff92ccfc) = 0
set_tid_address(0x8478888) = 21656
set_robust_list(0x8478890, 12) = 0
futex(0xff92cfc4, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGRTMIN, {0x8054230, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x8054150, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
uname({sys="Linux", node="localhost.localdomain", …}) = 0
brk(0x8499cc0) = 0x8499cc0
brk(0x849a000) = 0x849a000
rt_sigaction(SIGTTOU, {SIG_IGN, [TTOU], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTTIN, {SIG_IGN, [TTIN], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTSTP, {SIG_IGN, [TSTP], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGHUP, {SIG_IGN, [HUP], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN, [PIPE], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGCHLD, {SIG_IGN, [CHLD], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
readlink("/proc/self/exe", "/opt/hzqzqdmatu", 1023) = 15
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0) = 21657
exit_group(0) = ?
+++ exited with 0 +++
结果意外出现了,我跟踪下这个程序,结果它居然自杀了(把自己进程文件干掉了),算你狠!!!然后想用netstat看下网络连接情况,结果居然查不到任何对外的网络连接,开始怀疑命令被修改过了。使用stat 查看系统命令ps ls netstat ps pstree等等,修改时间都在6月24日,也就是在6天内,这让我猛然想起传说中的rootkit用户态级病毒!!!!有可能是之前设置了root密码为123456,又把机器放到过公网上,被人入侵了。来,查一把它在相关路径中还放了哪些程序:
[root@localhost opt]# find /bin -mtime -6 -type f
/bin/jqdmewpeifrdiz
/bin/zidrfiepwemdqj
/bin/zidrfiepwemdqj.sh
[root@localhost opt]# vim /bin/zidrfiepwemdqj.sh
[root@localhost opt]# find /usr/bin -mtime -6 -type f
/usr/bin/pukhvxslzk
/usr/bin/etwelnhtvu
[root@localhost opt]# find /usr/sbin -mtime -6 -type f
[root@localhost opt]# find /sbin -mtime -6 -type f
[root@localhost opt]# cat /bin/zidrfiepwemdqj.sh
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
cp "/bin/zidrfiepwemdqj" "/bin/ebstpmcjbp"
果子实验告诉你,把这些程序都删除掉,几秒后也会自动生成的,所以我们继续向真相进军,欲知后事如何,请听下回分解。