记一次ubuntu虚拟机被挖矿木马攻击的过程

事由:
今天发现虚拟机有点卡,用 top 查看发现2个未知进程占用大量CPU,遂查,发现被挖矿木马攻击了。

定位

使用 top 查看:

1
2
top
96058 root 20 0 5263372 60460 916 S 56.5 1.7 66:34.21 tsm

查看详细:

1
2
3
4
5
6
7
 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运行的程序:

1
2
3
4
5
6
7
 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目录,文件如下:

1
2
3
4
5
6
# 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目录发现才查看的):

1
2
cat /tmp/up.txt
root 123456 // 本机账号和密码

定时任务

查看所有用户的定时任务。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 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 rootcrontab -l -u ubuntu确认是否这2个用户。清理:

1
2
3
4
5
6
7
crontab  -r -u root
crontab -r -u ubuntu
```
再执行`cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}`查看,已无。

## 干掉进程删除文件
先杀死进程:

kill -9 12889

1
2
3
但立刻又启动了。失败。  

删除目录:

rm .X25-unix/ -rf

1
停止 bash 启动的程序:

kill -9 564 1196 75581 103117

1
2
再次执行`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

1
2
3
4
5
再次执行`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

1
2
3
从上文的`dota3.tar.gz`文件时间看,是5月3号更新的,与这里保持一致。  

删除之:

rm -rf /root/.configrc/

rm -rf /home/ubuntu/.configrc

1
2
3
观察`/root/`和`/home/ubuntu/`的隐藏文件目录,暂无异常。  

前面查看有`dota3.tar.gz`压缩包,当前再看看有无

find / -name “dota3.tar.gz”

/var/tmp/dota3.tar.gz

1
查看其时间:

ls /var/tmp/dota3.tar.gz -lh
-rwx—— 1 ubuntu ubuntu 5.1M May 13 02:03 /var/tmp/dota3.tar.gz

1
2
5月13号凌晨下载的。 
删除之:

rm -rf /var/tmp/dota3.tar.gz

1
2
3

## 清理 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

1
2
从时间看,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