商务合作加Q:411239339

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

浏览:835次阅读
没有评论

共计 3268 个字符,预计需要花费 9 分钟才能阅读完成。

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

1、ps 和 top 上场

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

   

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

   尝试 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"


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

 

正文完
扫码赞助
post-qrcode
 0
果子
版权声明:本站原创文章,由 果子 于2016-06-30发表,共计3268字。
转载说明:除特殊说明外本站文章皆由果较瘦原创发布,转载请注明出处。
评论(没有评论)