对一次木马的分析和处理
摘要:无意间在测试机子上发现一个进程的cpu占用持续很高,不用说了八成是中木马了。
事件分析
查看cpu占用过高的进程
使用top命令很容易,查看占用cpu过高的进程为kswapd
top
分析挖矿进程
进程pid
查看挖矿进程的pid:
root@racknerd-3a522c:~# ps aux | grep kswapd
可以看到进程pid为 422510
可执行文件路径
root@racknerd-3a522c:~# ls -l /proc/422510/exe
可以通过ls -l /proc/422510/exe 看到进程号为422510的可执行文件的路径
查看挖矿进程所属的用户:
ps -o ruser=userForLongName -e -o pid,ppid,c,stime,tty,time,cmd
查看进程的外联ip
root@racknerd-3a522c:~# netstat -anpto
总共有两个外联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
查找入侵来源
由于系统版本都是最新的,并且上面没有什么东西,基本上怀疑是testuser2用户的密码被爆破导致的....
查看定时任务文件的修改时间为(中国时间)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划算
由于定时任务文件的修改时间为2021/02/15 02:12(中国时间),所以大致就在auto.log和auto.log.1中,使用notepad打开后直接搜索testuser2
发现 testuser2被以私钥的方式登陆
可以看到以下三个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
(由于testuser2的长度大于8个字母,所以被省略一部分,所以图中显示为testuser),估计就是爆破ssh密码导致的....
处理过程
杀掉进程
先使用kill -9 422510 和kill -9 2139920 杀掉病毒进程
因为testuser2登陆所以用不到私钥,直接把/home/testuser2/.ssh/authorized_keys这个文件删除即可。
处理定时任务
然后因为testuser2没有设置过计划程序,所以直接删除/var/spool/cron/crontabs/testuser2即可,或者使用crontab -e删除,然后最好使用service cron restart重启一下cron定时任务。
删除病毒文件
删除文件,在定时任务中已经发现/home/testuser2/.configrc这个文件夹下是病毒,直接使用find搜索相关文件名,看看是否有其他地方有病毒。
找到后删除病毒文件即可。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。