記一次Linux系統被入侵的排查過程(一)

guoziweb發表於2016-08-15

       事件起因:某晚,22點左右,我在與某君電話中,突然發現電腦上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"


果子實驗告訴你,把這些程式都刪除掉,幾秒後也會自動生成的,所以我們繼續向真相進軍,欲知後事如何,請聽下回分解。

相關文章