一次真实的应急响应案例(Ubuntu)——暴力破解、写入ssh公钥留后门、植入GPU挖矿程序——事件复现(含靶场环境)
一、事件背景
某天客户反馈:实验室因耗电量太大经常跳闸,服务器疑似被挖矿。(真实案例自己搭建环境复现一下,靶场环境放在了 知识星球 和 我的资源 中)
受害服务器: Ubuntu系统、IP: 192.168.184.142、无WEB服务
二、应急响应过程
2.1 排查异常并清除病毒
2.1.1 使用命令 alias 查看是否异常别名
alias
发现服务器多了很多别名,所有的常用别名都别修改成了
printf "" #输出为空
这样执行常见命令就会输出为空,迷惑运维工程师
unalias 别名 #删除添加的别名
2.1.2 使用 top 命令,查看服务器cpu使用率发现 cpu使用率没有特别高的,接近或者超过100%的进程
2.1.3 使用 nvidia-smi 命令,查看服务器gpu使用率,gpu使用率没有特别高的,接近或者超过100%的进程
(遗憾的是虚拟机上不能使用gpu,所以该命令在虚拟机中不可以使用,真实服务器可以使用,以下截图是真实案例截图)
2.1.4 虽然 gpu和cpu显示没有异常,但是态势感知上一直显示该服务器域矿池域名进行通信,并且经常因用电量过高跳闸,说明该服务器上确实含有挖矿病毒,病毒进程可能被隐藏
根据经验,挖矿病毒一般会有定时任务,为了防止服务器关闭之后或者病毒程序被杀掉进程之后,挖矿程序不再运行
那么接下来可以查看服务器上的定时任务
cd /var/spool/
ls -al
查看所有的定时任务,发现在 /var/spool/cron/crontabs的定时任务有异常
sudo chmod o-t crontabs
sudo chmod 755 crontabs
cd crontabs
ls -al
查看 root 和 zyr 定时任务内容
sudo chmod 755 root
sudo chmod 755 zyr
cat root
cat zyr
另外使用如下命令也可以查看定时任务
sudo crontab -l
查看root和zyr定时任务创建时间为:20220217 10:27:33
2.1.5 根据定时任务查看对应文件或者程序的
查看 b4nd1d0 文件内容
cd /home/zyr/
cat .b4nd1d0
在 b4nd1d0 文件中 域名 eth-asia1.nanopool.org 很可疑,使用 微步 查看发现是一个公共矿池
查看 b4nd1d0 文件创建时间
stat .b4nd1d0
查看 placi 文件内容
cat placi
查看 placi 文件创建时间
stat placi
2.1.6 清除挖矿病毒和定时任务
rm -rf .b4nd1d0
rm -rf placi
sudo rm -rf root
sudo rm -rf zyr
2.1.7 重启检查一下病毒有没有清除干净
因为有的病毒会更改启动项,进行后门自启
reboot #重启服务器
重启服务器之后,检查 /var/spool/cron/crontab 目录正常,没有病毒的痕迹
但是发现 别名又都被修改了
alias
推测别名可能被永久修改,意思就是每次重启服务器,别名都被修改一遍,而永久修改别名的位置在:
/home/用户名/.bashrc
/root/.bashrc
/etc/.bashrc针对所有用户生效
~/.bashrc是针对当前用户生效
查看 /home/zyr/.bashrc 别名文件,发现可疑设置“source /var/tmp/.SQL-Unix/.SQL/.db”
查看/var/tmp/.SQL-Unix/.SQL/.db文件内容,正是修改的别名
查看 /root/.bashrc 别名文件
查看 /usr/.SQL-Unix/.SQL/.db 文件内容,正是修改的别名
2.1.8 清除被修改的别名
#删除别名文件
rm -rf /usr/.SQL-Unix/.SQL/.db
rm -rf /var/tmp/.SQL-Unix/.SQL/.db
#删除/root/.bashrc、 /home/zyr/.bashrc文件
rm -rf /usr/.SQL-Unix/.SQL/.db
rm -rf /var/tmp/.SQL-Unix/.SQL/.db
再次 reboot 重启服务器,别名没有再次出现
2.2 排查是否有遗留后门
2.2.1 查看是否有 ssh 软链接后门
netstat -anpt
没有发现可疑的端口和用户,没有ssh软链接后门
2.2.2 查看是否有增加超级用户帐号
查看特权账户,发现 sclipicibosu 账户是新增加超级用户帐号,那么此账户肯定是后门账户
awk -F: '$3==0 {print$1}' /etc/passwd
查看可以远程登录的账号信息,发现新增加了一个账户 sclipicibosu ,那么更加确定此账户肯定是后门账户
删除改后门账户
sudo userdel -rf sclipicibosu #强制删除该账户以及/home/sclipicibosu
#加上-r可以删除/home/路径下的用户文件夹,否则不能
2.2.3 查看是否有ssh公钥后门
首先查看 /home/目录下的账户,发现只有一个zyr
查看zyr是否含有ssh公钥后门
cd /home/zyr/.ssh
cat authorized_keys
发现已经被写入了ssh公钥后门
查看ssh公钥写入时间为:20220215 16:34:42
stat authorized_keys
删除ssh公钥后门
rm -f authorized_keys
2.2.4 查看是否有perl脚本SSH后门
首先正常的sshd 文件是ELF格式,而后门是纯文本脚本,使用file 命令就可以发现
cd /usr/bin
file sshd
查看发现 sshd文件已经被修改
查看sshd文件内容
虽然被修改了,但不是perl脚本SSH后门,其中rsync命令和cp命令很像,但是功能似乎更加复杂点,主要用来备份数据,无害。但已经被修改了,还是删除吧
总结:
发现后门账户 sclipicibosu,并且删除该账户
发现zyr账户被写入了ssh公钥后门,并且已删除该后门
三、溯源
1、查看root和zyr定时任务创建时间为:20220217 10:27:33
2、查看 b4nd1d0 文件创建时间为:20220217 10:29:13
stat .b4nd1d0
3、查看 placi 文件创建时间
stat placi
3、查看ssh公钥写入时间为:20220215 16:34:42
stat authorized_keys
推测入侵时间是 20220215 16:34:42,接下来排查安全日志
5、查看Ubuntu系统的安全日志:auth.log
cd /var/log
sudo gzip -d auth.log.1.gz #解压auth.log.1.gz文件
sudo gzip -d auth.log.2.gz #
sudo gzip -d auth.log.3.gz
sudo gzip -d auth.log.4.gz
统计登录失败的记录命令,共有782次的登录失败,可能遭受到了暴力破解
grep -o "Failed password" /var/log/auth* |uniq -c
查询被爆破的用户名都有哪些以及被爆破的次数
grep "Failed password" /var/log/auth*|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
发现zyr账户被爆破 445次,wxiaoge账户被爆破337次
查询 用户 最近登录情况
grep "Accepted " /var/log/auth* | awk '{print $1,$2,$3,$9,$11}'
再查看 wxiaoge账户的爆破时间段
grep "Failed password" /var/log/auth*|grep wxiaoge
查看日志发现 wxiaoge 账户从 20220215 15:46:15——20220215 15:48:38
再查看 zyr 账户的爆破时间段
grep "Failed password" /var/log/auth*|grep "zyr from"
查看日志发现 wxiaoge 账户从 20220215 15:59:08——20220215 16:04:19
再结合用户最近登录情况,wxiaoge账户在遭受爆破期间 20220215 15:46:15——20220215 15:48:38 成功登录过一次,登录时间为 20220215 15:48:37,zyr账户在遭受爆破期间 20220215 15:59:08——20220215 16:04:19 成功登录过一次,登录时间为20220215 16:04:17。由此证明,服务器是被ssh爆破出wxiaoge、zyr账户之后入侵并植入挖矿病毒与ssh公钥后门。
四、总结
服务器在 20220215 15:46:15——20220215 15:48:38、20220215 15:59:08——20220215 16:04:19 期间被 192.168.226.1进行ssh爆破,并且爆破出wxiaoge、zyr账户之后登录服务器,并且在20220215 16:34:42植入ssh公钥后门,在20220216 16:17:40植入挖矿病毒。
建议:
1、清除挖矿病毒及相关异常文件、ssh公钥后门
2、修改账户密码为复杂密码
更多资源:
1、web安全工具、渗透测试工具
2、存在漏洞的网站源码与代码审计+漏洞复现教程、
3、渗透测试学习视频、应急响应学习视频、代码审计学习视频、都是2019-2021年期间的较新视频
4、应急响应真实案例复现靶场与应急响应教程
收集整理在知识星球,可加入知识星球进行查看。也可搜索关注微信公众号:W小哥
更多推荐
所有评论(0)