事由:
今天发现虚拟机有点卡,用 top 查看发现2个未知进程占用大量CPU,遂查,发现被挖矿木马攻击了。
定位
使用 top 查看:
top
96058 root 20 0 5263372 60460 916 S 56.5 1.7 66:34.21 tsm
查看详细:
ps aux | grep tsm
root 96052 0.0 0.0 11552 88 ? S 11:14 0:00 timeout 3h ./tsm -t 515 -f 1 -s 12 -S 10 -p 0 -d 1 p ip
root 96053 0.0 0.0 12512 196 ? S 11:14 0:00 /bin/bash ./tsm -t 515 -f 1 -s 12 -S 10 -p 0 -d 1 p ip
root 96058 43.7 1.7 5263372 60524 ? Sl 11:14 66:54 /tmp/.X25-unix/.rsync/c/lib/64/tsm --library-path /tmp/.X25-unix/.rsync/c/lib/64/ /usr/sbin/httpd rsync/c/tsm64 -t 515 -f 1 -s 12 -S 10 -p 0 -d 1 p ip
ubuntu 118586 0.0 0.0 11552 84 ? S 13:22 0:00 timeout 3h ./tsm -t 515 -f 1 -s 12 -S 10 -p 0 -d 1 p ip
ubuntu 118587 0.0 0.0 12512 652 ? S 13:22 0:00 /bin/bash ./tsm -t 515 -f 1 -s 12 -S 10 -p 0 -d 1 p ip
ubuntu 118592 13.3 1.0 5263336 37160 ? Sl 13:22 3:15 /tmp/.X25-unix/.rsync/c/lib/64/tsm --library-path /tmp/.X25-unix/.rsync/c/lib/64/ /usr/sbin/httpd rsync/c/tsm64 -t 515 -f 1 -s 12 -S 10 -p 0 -d 1 p ip
查看bash运行的程序:
ps -ef | grep bash
ubuntu 564 563 0 14:19 ? 00:00:00 /bin/bash ./tsm -t 515 -f 1 -s 12 -S 10 -p 0 -d 1 p ip
root 1196 1195 0 14:19 ? 00:00:00 /bin/bash ./tsm -t 515 -f 1 -s 12 -S 10 -p 0 -d 1 p ip
root 5988 5987 0 May18 pts/2 00:00:01 /bin/bash
ubuntu 55500 55499 0 Apr23 pts/2 00:00:00 -bash
ubuntu 75581 1 0 May13 ? 00:00:03 /bin/bash ./go
root 103117 1 0 May03 ? 00:00:04 /bin/bash ./go
注:2个用户均有运行。
定位到/tmp/.X25-unix
目录,文件如下:
# ls -la
total 5220
drwxr-xr-x 3 root root 4096 May 3 23:44 .
drwxrwxrwt 11 root root 4096 Jun 4 13:40 ..
-rw-r--r-- 1 root root 5332768 May 3 23:43 dota3.tar.gz
drwxr-xr-x 5 ubuntu ubuntu 4096 Apr 9 20:33 .rsync
.rsync
目录分析见参考资料。
查看up.txt文件(无意间在tmp目录发现才查看的):
cat /tmp/up.txt
root 123456 // 本机账号和密码
定时任务
查看所有用户的定时任务。
# cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}
* */23 * * * /root/.configrc/a/upd>/dev/null 2>&1
@reboot /root/.configrc/a/upd>/dev/null 2>&1
5 8 * * 0 /root/.configrc/b/sync>/dev/null 2>&1
@reboot /root/.configrc/b/sync>/dev/null 2>&1
0 0 */3 * * /tmp/.X25-unix/.rsync/c/aptitude>/dev/null 2>&1
* */23 * * * /home/ubuntu/.configrc/a/upd>/dev/null 2>&1
@reboot /home/ubuntu/.configrc/a/upd>/dev/null 2>&1
5 8 * * 0 /home/ubuntu/.configrc/b/sync>/dev/null 2>&1
@reboot /home/ubuntu/.configrc/b/sync>/dev/null 2>&1
0 0 */3 * * /tmp/.X25-unix/.rsync/c/aptitude>/dev/null 2>&1
no crontab for sshd
no crontab for statd
no crontab for mosquitto
2个用户的home目录下均有,/root/.configrc/
和/home/ubuntu/.configrc
。
使用crontab -l -u root
和crontab -l -u ubuntu
确认是否这2个用户。清理:
crontab -r -u root
crontab -r -u ubuntu
再执行cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}
查看,已无。
干掉进程删除文件
先杀死进程:
kill -9 12889
但立刻又启动了。失败。
删除目录:
# rm .X25-unix/ -rf
停止 bash 启动的程序:
# kill -9 564 1196 75581 103117
再次执行ps -ef | grep bash
查看,无异常。
查看 tsm 进程并杀死(此时无 bash 启动的./go
信息):
#ps aux | grep tsm
root 1206 0.0 0.2 4320576 7072 ? Sl 14:19 0:00 /tmp/.X25-unix/.rsync/c/lib/64/tsm --library-path /tmp/.X25-unix/.rsync/c/lib/64/ /tmp/.X25-unix/.rsync/c/tsm64 -t 515 -f 1 -s 12 -S 10 -p 0 -d 1 p ip
root 2360 0.0 0.0 14224 956 pts/2 S+ 14:23 0:00 grep --color=auto tsm
ubuntu 130134 0.3 0.1 1222452 4608 ? Sl 14:18 0:01 /tmp/.X25-unix/.rsync/c/lib/64/tsm --library-path /tmp/.X25-unix/.rsync/c/lib/64/ /usr/sbin/httpd rsync/c/tsm64 -t 515 -f 1 -s 12 -S 10 -p 0 -d 1 p ip
# kill -9 1206 130134
再次执行ps aux | grep tsm
确认,无异常。过几分钟后再查,无异常。
清理残留
在查看定时任务时,还发现存在/root/.configrc/
和/home/ubuntu/.configrc
,查看文件:
# ll
total 24
drwxr-xr-x 4 root root 4096 May 3 23:44 ./
drwx------ 8 root root 4096 May 3 23:44 ../
drwxr-xr-x 2 root root 4096 May 3 23:44 a/
drwxr-xr-x 2 root root 4096 May 3 23:44 b/
-rw-r--r-- 1 root root 251 May 3 23:44 cron.d
-rw-r--r-- 1 root root 16 May 3 23:44 dir2.dir
从上文的dota3.tar.gz
文件时间看,是5月3号更新的,与这里保持一致。
删除之:
# rm -rf /root/.configrc/
# rm -rf /home/ubuntu/.configrc
观察/root/
和/home/ubuntu/
的隐藏文件目录,暂无异常。
前面查看有dota3.tar.gz
压缩包,当前再看看有无
# find / -name "dota3.tar.gz"
/var/tmp/dota3.tar.gz
查看其时间:
ls /var/tmp/dota3.tar.gz -lh
-rwx------ 1 ubuntu ubuntu 5.1M May 13 02:03 /var/tmp/dota3.tar.gz
5月13号凌晨下载的。
删除之:
rm -rf /var/tmp/dota3.tar.gz
清理 ssh
从参考资料知,此攻击是通过弱 ssh 口令登陆系统的,查看2个用户的ssh文件:
# ls /root/.ssh/ -la
total 16
drwx------ 2 root root 4096 May 8 12:49 ./
drwx------ 7 root root 4096 Jun 4 14:33 ../
-rw------- 1 root root 389 May 3 23:44 authorized_keys
-rw-r--r-- 1 root root 222 May 8 12:49 known_hosts
#ls /home/ubuntu/.ssh/ -la
total 16
drwx------ 2 ubuntu ubuntu 4096 May 15 23:53 .
drwxr-xr-x 31 ubuntu ubuntu 4096 Jun 4 14:33 ..
-rw------- 1 ubuntu ubuntu 389 May 13 02:24 authorized_keys
-rw-r--r-- 1 ubuntu ubuntu 222 May 15 23:53 known_hosts
从时间看,root 用户是5月3号,普通用户是5月13号,应该是当时扫描到弱口令登陆,然后修改 ssh 配置,大概浏览内容,是一样的。
直接把.ssh
目录删除:
# rm -rf /root/.ssh
# rm -rf /home/ubuntu/.ssh/
后续
完成上述操作后,重启,重启前再次执行前面的命令确认进程或文件是否还存在。
重启后一切正常。
暂时不改密码,待过几天看看。
其它
观察最近一千条历史命令,未发现异常。
难得一次亲历,把木马的压缩包保存起来,有空再研究,学习一下。
参考:
https://blog.csdn.net/whatday/article/details/103761081
https://cloud.tencent.com/developer/article/1447419
https://blog.csdn.net/yisangwu/article/details/106292958