记一次Linux系统被入侵的排查过程(一)

2016/06/3010:07:07 发表评论

        事件起因:2016年6月29日晚,22点左右,我准备与Delphi君电话中,突然发现电脑上QQ自动离线,然后又自动登录,开始以为QQ被盗了。电话完后,发现是网络不稳定引起的,由于小区宽带上个月才进电信光纤网,存在一些不稳定因素,是可以理解的。但马上发现我居然连普通的百度都打不开了,几分钟后,我冷静了下来,准备看看是不是附近有人赠我的网,把我的带宽用完了。果断登录路由器发现我的Linux虚拟机居然占用了所有的上行流量,事态趋向严重了——我的Linux机器被人中了木马。开始排查:

1、ps和top上场

   ps命令发现其中有两个随机英文名程序,应该不是我自己的程序。使用top命令发现如下图:

   

psb

   尝试kill掉这两个进程,几秒内,路由器显示带宽使用率下来了,但不幸的是,马上又恢复了我打电话期间的状态。好吧,看来还有后台程序会自动生成。

2、禁用虚拟机网卡

   此步中我将虚拟机网上改成vmnet host only模式,让它暂时不能连接互联网,恢复家庭网络。同时将虚拟机网卡IP设置成与vmware虚拟网卡同一网段,以方便ssh工具进行连接。

3 查看程序所在路径

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

   看来还有后台主控程序在作怪,继续查找。

4 尝试查找跟踪下程序

   查看/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<<EOF
[DVD]
name=Install from DVD
baseurl=file:///mnt/cdrom
gpgcheck=0
enable=1
EOF
yum clean all
yum install strace -y

好了,接下来跟踪一下: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"


   果子实验告诉你,把这些程序都删除掉,几秒后也会自动生成的,所以我们继续向真相进军,欲知后事如何,请听下回分解。

 

  • 微信扫码赞助
  • weinxin
  • 支付宝赞助
  • weinxin

发表评论

您必须才能发表评论!