摘要:无意间在测试机子上发现一个进程的cpu占用持续很高,不用说了八成是中木马了。

事件分析

查看cpu占用过高的进程

使用top命令很容易,查看占用cpu过高的进程为kswapd

top

挖矿分析7.png

分析挖矿进程

进程pid

查看挖矿进程的pid:

root@racknerd-3a522c:~# ps aux | grep kswapd

挖矿分析10.png
可以看到进程pid为 422510

可执行文件路径

root@racknerd-3a522c:~# ls -l /proc/422510/exe

挖矿分析11.png

可以通过ls -l /proc/422510/exe 看到进程号为422510的可执行文件的路径

查看挖矿进程所属的用户:

ps -o ruser=userForLongName -e -o pid,ppid,c,stime,tty,time,cmd

挖矿分析8.png

查看进程的外联ip

root@racknerd-3a522c:~# netstat -anpto

挖矿分析9.png

总共有两个外联IP为

tcp        0      1 104.194.247.168:38506   45.9.148.99:443         SYN_SENT    2139920/rsync        on (26.58/6/0)
tcp        0      0 104.194.247.168:28224   45.9.148.117:80         ESTABLISHED 422510/./kswapd0     keepalive (22.80/0/0)

两个地址都是荷兰的,挖矿实锤了.....

定时任务

ubuntu下的定时任务的路径如下:

/etc/crontab

/var/spool/cron/crontabs/用户名 
# eg: 我的用户名是testuser2 路径就是/var/spool/cron/crontabs/testuser2

.....真可怕

root@racknerd-3a522c:~# cat /var/spool/cron/crontabs/testuser2
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (cron.d installed on Sun Feb 14 18:12:46 2021)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
1 1 */2 * * /home/testuser2/.configrc/a/upd>/dev/null 2>&1
@reboot /home/testuser2/.configrc/a/upd>/dev/null 2>&1
5 8 * * 0 /home/testuser2/.configrc/b/sync>/dev/null 2>&1
@reboot /home/testuser2/.configrc/b/sync>/dev/null 2>&1  
0 0 */3 * * /dev/shm/.X971263/.rsync/c/aptitude>/dev/null 2>&1

rsync

root@racknerd-3a522c:~# lsof -p 2139920

挖矿分析12.png

查找入侵来源

由于系统版本都是最新的,并且上面没有什么东西,基本上怀疑是testuser2用户的密码被爆破导致的....

挖矿分析1.png

查看定时任务文件的修改时间为(中国时间)2021/02/15 02:12,由于测试服务器在美国,所以大致减去8个小时也就是服务器日志中2021/02/14 18:12(美国时间)的时候被改写的.....

使用last命令查看testuser2的最近的登陆信息,dnmd 由于testuser2的长度大于8个字母,所以被省略一部分(因为测试机器上刚好还有一个testuser用户产生了干扰,所以last命令获取不到有效信息)

root@racknerd-3a522c:~# last

使用lastlog命令查看testuser2的最后一次的登陆信息,md给我显示一个Never logged in.....,这个可能被木马修改过了,怎么可能.....

root@racknerd-3a522c:~# lastlog

算了算了,不如直接去看/var/log/auth.log划算

挖矿分析2.png

由于定时任务文件的修改时间为2021/02/15 02:12(中国时间),所以大致就在auto.log和auto.log.1中,使用notepad打开后直接搜索testuser2
发现 testuser2被以私钥的方式登陆

挖矿分析3.png

挖矿分析4.png

可以看到以下三个ip都登过这个服务器

159.203.9.43
134.122.17.178
67.205.186.83

原来我以为是先爆破ssh密码,然后以testuser2的身份去写入私钥,但是我记不清谁用哪个ip登陆过这个服务器,没办法从ip去查询是否有入侵者登过这个服务器

/var/log/btmp 这个文件记录的是所有用户登陆linux服务器失败的日志

last -f /var/log/btmp > log.txt
last -f /var/log/btmp.1 > log2.txt

在log.txt和log2.txt中搜索159.203.9.43这个ip

挖矿分析5.png

挖矿分析6.png

(由于testuser2的长度大于8个字母,所以被省略一部分,所以图中显示为testuser),估计就是爆破ssh密码导致的....

处理过程

杀掉进程

先使用kill -9 422510 和kill -9 2139920 杀掉病毒进程

因为testuser2登陆所以用不到私钥,直接把/home/testuser2/.ssh/authorized_keys这个文件删除即可。

挖矿分析13.png

处理定时任务

然后因为testuser2没有设置过计划程序,所以直接删除/var/spool/cron/crontabs/testuser2即可,或者使用crontab -e删除,然后最好使用service cron restart重启一下cron定时任务。

删除病毒文件

删除文件,在定时任务中已经发现/home/testuser2/.configrc这个文件夹下是病毒,直接使用find搜索相关文件名,看看是否有其他地方有病毒。

挖矿分析14.png

找到后删除病毒文件即可。

文章目录