1. 程式人生 > >Linux應急響應(四):蓋茨木馬

Linux應急響應(四):蓋茨木馬

發現 roo netstat pac 行為 sta 過程 and style

0x00 前言

? Linux蓋茨木馬是一類有著豐富歷史,隱藏手法巧妙,網絡攻擊行為顯著的DDoS木馬,主要惡意特點是具備了後門程序,DDoS攻擊的能力,並且會替換常用的系統文件進行偽裝。木馬得名於其在變量函數的命名中,大量使用Gates這個單詞。分析和清除蓋茨木馬的過程,可以發現有很多值得去學習和借鑒的地方。

0x01 應急場景

? 某天,網站管理員發現服務器CPU資源異常,幾個異常進程占用大量網絡帶寬:

技術分享圖片

技術分享圖片

0x02 事件分析

異常IP連接:

技術分享圖片

技術分享圖片

異常進程:

? 查看進行發現ps aux進程異常,進入該目錄發現多個命令,猜測命令可能已被替換

登錄服務器,查看系統進程狀態,發現不規則命名的異常進程、異常下載進程 :

技術分享圖片

技術分享圖片

異常啟動項

進入rc3.d目錄可以發現多個異常進行:

/etc/rc.d/rc3.d/S97DbSecuritySpt

/etc/rc.d/rc3.d/S99selinux

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

搜索病毒原體

find / -size -1223124c -size +1223122c -exec ls -id {} \; 搜索1223123大小的文件

技術分享圖片

從以上種種行為發現該病毒與“蓋茨木馬”有點類似,具體技術分析細節詳見:

Linux平臺“蓋茨木馬”分析

http://www.freebuf.com/articles/system/117823.html

懸鏡服務器衛士丨Linux平臺“蓋茨木馬”分析

http://www.sohu.com/a/117926079_515168

手動清除木馬過程:

1、簡單判斷有無木馬
?
#有無下列文件
?
cat /etc/rc.d/init.d/selinux
?
cat /etc/rc.d/init.d/DbSecuritySpt
?
ls /usr/bin/bsd-port
?
ls /usr/bin/dpkgd
?
#查看大小是否正常
?
ls -lh /bin/netstat
?
ls -lh /bin/ps
?
ls -lh /usr/sbin/lsof
?
ls -lh /usr/sbin/ss
?
2、上傳如下命令到/root下
?
ps netstat ss lsof
?
3、刪除如下目錄及文件
?
rm -rf /usr/bin/dpkgd (ps netstat lsof ss)
?
rm -rf /usr/bin/bsd-port #木馬程序
?
rm -f /usr/bin/.sshd #木馬後門
?
rm -f /tmp/gates.lod
?
rm -f /tmp/moni.lod
?
rm -f /etc/rc.d/init.d/DbSecuritySpt(啟動上述描述的那些木馬變種程序)
?
rm -f /etc/rc.d/rc1.d/S97DbSecuritySpt
?
rm -f /etc/rc.d/rc2.d/S97DbSecuritySpt
?
rm -f /etc/rc.d/rc3.d/S97DbSecuritySpt
?
rm -f /etc/rc.d/rc4.d/S97DbSecuritySpt
?
rm -f /etc/rc.d/rc5.d/S97DbSecuritySpt
?
rm -f /etc/rc.d/init.d/selinux(默認是啟動/usr/bin/bsd-port/getty)
?
rm -f /etc/rc.d/rc1.d/S99selinux
?
rm -f /etc/rc.d/rc2.d/S99selinux
rm -f /etc/rc.d/rc3.d/S99selinux
rm -f /etc/rc.d/rc4.d/S99selinux
rm -f /etc/rc.d/rc5.d/S99selinux
4、找出異常程序並殺死
5、刪除含木馬命令並重新安裝

0x03 命令替換

RPM check檢查:


系統完整性也可以通過rpm自帶的-Va來校驗檢查所有的rpm軟件包,有哪些被篡改了,防止rpm也被替換,上傳一個安全幹凈穩定版本rpm二進制到服務器上進行檢查
./rpm -Va > rpm.log
如果一切均校驗正常將不會產生任何輸出。如果有不一致的地方,就會顯示出來。輸出格式是8位長字符串, ``c 用以指配置文件, 接著是文件名. 8位字符的每一個 用以表示文件與RPM數據庫中一種屬性的比較結果 。``. (點) 表示測試通過。.下面的字符表示對RPM軟件包進行的某種測試失敗:

技術分享圖片

技術分享圖片

命令替換:


rpm2cpio 包全名 | cpio -idv .文件絕對路徑 rpm包中文件提取
Rpm2cpio 將rpm包轉換為cpio格式的命令
Cpio 是一個標準工具,它用於創建軟件檔案文件和從檔案文件中提取文件
?
Cpio 選項 < [文件|設備]
-i:copy-in模式,還原
-d:還原時自動新建目錄
-v:顯示還原過程

文件提取還原案例:


rpm -qf /bin/ls 查詢ls命令屬於哪個軟件包
mv /bin/ls /tmp
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls 提取rpm包中ls命令到當前目錄的/bin/ls下
cp /root/bin/ls /bin/ 把ls命令復制到/bin/目錄 修復文件丟失
?
掛載命令rpm包:
mkdir /mnt/chrom/ 建立掛載點
mount -t iso9660 /dev/cdrom /mnt/cdrom/ 掛在光盤
mount/dev/sr0 /mnt/cdrom/
?
卸載命令
umount 設備文件名或掛載點
umount /mnt/cdrom/

技術分享圖片

技術分享圖片

關於我:一個網絡安全愛好者,致力於分享原創高質量幹貨,歡迎關註我的個人微信公眾號:Bypass--,瀏覽更多精彩文章。

技術分享圖片

Linux應急響應(四):蓋茨木馬