剛入職一家公司,突然一臺直接扔到公網的開發測試機,出現output流量暴增300M+,直接導致服務器負載飆高,IDC的cacti監控報告了流量異常問題,下面是排查過程:
1、vim /root/.bash_history # 查看root用戶操作命令記錄文件,任何信息沒有,被清楚
2、vim /var/log/secure # 查看登錄日誌,發現好多登錄失敗嘗試記錄,估計肯定不破解了
3、ps netstat 等命令查看 無任何問題
任何信息都沒有,都被掩蓋,突然想到,搜索整個系統在最近的修改過的文件
1、find / -mmin -12 | egerp -v 'proc|module' >> film.txt
看看最近被修改的文件,發現兩個可以啓動,爲什麼呢?
因爲selinux服務器上大多數都是被關閉,在問題時間內被啓動肯定可以,還有DbSecuritySpt陌生程序啓動,肯定有問題,順着着兩個問題向下查找/etc/rc.d目錄。
還有重大發現就是很多查看命令如:ps ss netstat lsof等在最近都被改動過,懷疑現在所使用的命令已經被更換修改了,一會使用find命令搜索一下,系統中是否還有這些命令。
2、使用find命令去掃描/etc/rc.d目錄下有多少目錄包含這兩個程序的啓動信息
3、使用ll -rt命令先去/etc/rc.d/rc3.d目錄下看一下,最近被修改的文件
4、查看一下這兩個在/etc/init.d目錄下的啓動腳本里邊的內容
在這裏發現了兩個可以文件unama與getty
5、上邊已經提的,很多查看命令被修改過,所以現在查一下
搜索一個命令看一下,發現在/usr/bin/dpkgd下還有這個命令
6、查看一下這些命令的修改時間,說明在12月02號就被***,並且修改了系統參數。
初步估計這些在dpkgd下的命令纔是系統原來的,而現在在/bin下的那些命令已經被修改過,估計功能就是,預防運維人員使用這些命令查看時,可以掩蓋***病毒的信息,那麼解決方法就是,把dpkgd下的命令覆蓋還原
7、再到/usr/bin /bin等目錄下使用 ll -art命令查看一下最近被修改的文件,主要去命令所在目錄查看一些僞裝命令。自從我使用ll -art發現最近僞裝的命令後,我不嫌其煩的去查看了 好多目錄。
注:這裏邊有的日期對不上,是因爲第一次處理刪除沒太在意,沒想到死灰復燃了,然後第二次好好的排查了一下,發現還有很多問題。
並且注意,moni.lod等等裏面存的都是pid,使用正常的ps命令按裏邊的pid搜一下,發現都是僞裝的命令進程,如下
# cat moni.lod
11526
# ps -ef | grep 11526
root 11526 1 0 Dec17 ? 00:00:00 /usr/bin/.sshd ***進程
root 11527 11526 0 Dec17 ? 00:00:04 /usr/bin/.sshd
root 15686 15664 0 23:27 pts/0 00:00:00 grep 11526
# cat gates.lod
15692
# ps -ef | grep 15692
root 15692 1 0 Dec21 ? 00:00:00 /bin/unama ***進程
root 15744 15692 0 Dec21 ? 00:00:00 /bin/unama
root 16087 15777 0 00:08 pts/0 00:00:00 grep 15692
kill -9 15692 15744 11527 11526
到這裏,差不多關聯能找到的基本都找到了,下面做的就是刪除、覆蓋操作
1、先把命令替換回去,下面給出我操作的例題
which ss # 查看ss命令路徑
mv /usr/sbin/ss /usr/sbin/ss.Trojans # 備份標註/usr/sbin/ss 被感染的命令
cp -rfp /usr/bin/dpkgd/ss /usr/sbin # 把備份的命令拷貝到 /usr/sbin下
chattr +i /usr/bin/ss
# lsattr /usr/bin/ss
----i---------- /usr/bin/ss
2、刪除(其中rc1.d---rc5.d下的都要刪除)
rm -rf /etc/rc.d/rc2.d/S97DbSecuritySpt
rm -rf /etc/rc.d/rc2.d/S99selinux
rm -rf /etc/rc.d/init.d/DbSecuritySpt
rm -rf /etc/rc.d/init.d/selinux
rm -rf /usr/bin/bsd-port
rm -rf /bin/unama
rm -rf /usr/bin/.sshd
rm -rf /tmp/gates.lod
rm -rf /tmp/moni.lod
# ps aux | grep getty
# ps aux | grep unama
重啓服務器,再次查看