一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)
一、SSH协议介绍SSH(Secure Shell)是一套协议标准,可以用来实现两台机器之间的安全登录以及安全的数据传送,其保证数据安全的原理是非对称加密。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全。危害:SSH口令长度太短或者复杂度不够,如仅包含数字,或仅包含字母等,容易被攻击者破解,一旦被攻击者获取,可用来直接登
一、SSH协议介绍
SSH(Secure Shell)是一套协议标准,可以用来实现两台机器之间的安全登录以及安全的数据传送,其保证数据安全的原理是非对称加密。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全。
危害:
SSH口令长度太短或者复杂度不够,如仅包含数字,或仅包含字母等,容易被攻击者破解,一旦被攻击者获取,可用来直接登录系统,控制服务器所有权限。
一、事件背景
某天客户反馈:Linux服务器有异常连接,疑似被入侵。(真实案例自己搭建环境复现一下,靶场环境放在了 知识星球 和 我的资源 中)
192.168.184.145是异常 IP
受害服务器:Linux系统、IP:192.168.184.142、无WEB服务
二、应急响应过程
2.1 查看异常连接文件的位置
第一步:
首先使用以下命令,查看服务器所有的连接
netstat -anpt
发现有两个异常连接,都是与192.168.184.145的5555端口通信的,根据经验猜测是反弹的shell
第二步:
通过PID查看异常连接的进程,以及该进程正在执行的命令行命令
ps aux |grep 15011
发现是 bash 进程
接下来查看PID 为 15011 的父进程
cat /proc/15011/status
发现父进程 PID 是15010
接下来查看 PID 为 15010 的 进程,以及该进程正在执行的命令行命令
ps aux |grep 15010
发现是通过 /bin/bash 执行的 root目录下的1.sh文件 (此处为找到的第一个可疑文件)
接下来查看PID 为 15010 的父进程
cat /proc/15010/status
发现父进程 PID 是15009
接下来查看 PID 为 15009 的 进程,以及该进程正在执行的命令行命令
ps aux |grep 15009
发现是通过 /bin/bash -c 指定将命令转为一个完整命令执行
接下来查看PID 为 15009 的父进程
cat /proc/15009/status
发现父进程 PID 是15007
接下来查看 PID 为 15007 的 进程,以及该进程正在执行的命令行命令
ps aux |grep 15007
发现是 /usr/sbin/CROND -n 跟网站的定时任务相关的
小结:
1、查看排查过程中发现的可疑文件 /root/1.sh ,发现其内容是反弹shell的命令,正式反弹到192.168.184.145的5555端口
第三步:
查看定时任务
crontab -l
显示root账户没有定时文件
跟前面查看的 PID 为 15007 的 进程执行命令存在冲突,PID 为 15007 明明执行的是 定时任务的命令 /usr/sbin/CROND -n
那么只能去查看 root账户是否存在定时任务文件
cd /var/spool/cron
cat root
vi root
发现是crontab隐藏后门,只能通过 vi 命令进行查看,隐藏的很完美啊!
第四步:
查看 root 账户的历史命令,没有发现与有用的信息,可能部分命令已经被删除
history
接下里查看1.sh的详细信息
ls -l
发现1.sh 与2.sh 文件的访问时间十分接近,存在可疑
接下来查看2.sh文件的内容
cat 2.sh
是创建隐藏后门的命令
总结:
可疑文件 /root/1.sh、/root/2.sh 均为创建crontab 隐藏后门的文件
且都是 4:00-5:00 之前执行的
2.2 攻击路径溯源
第一步:
查看 1.sh、2.sh创建与修改的账户,发现都是root账户,怀疑root账户是弱口令或者被暴力破解
第二步:
查看root账户的登录日志
root的登录日志文件在: /root/log/secure-XXXXX
随便查看一个secure-20210420 文件的内容
cat secure-20210420
发现很多登录失败的记录,猜测 root账户被暴力破解了
统计日志中所有的 登陆失败的记录命令
grep -o "Failed password" /var/log/secure* |uniq -c
发现在secure-20200601中有76条登录失败记录,在secure-20210420中有1716条登录失败记录,结合1.sh与2.sh文件的日期,猜测是在20211020日被暴力破解的
输出登录爆破的第一行和最后一行,确认爆破时间范围:20210420 03:28:39-03:43:24
第一行命令: grep "Failed password" /var/log/secure-20210420|head -1
最后一行命令:grep "Failed password" /var/log/secure-20210420|tail -1
查询有哪些IP在爆破命令:
grep "Failed password" /var/log/secure-20210420|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
发现192.168.184.1爆破数量在1000多次,192.168.184.146 在100多次
查询被爆破的用户名都有哪些?命令:
grep "Failed password" /var/log/secure-20210420|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
发现被爆破的用户名是 root 账户
统计登录成功的IP有哪些?命令:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
发现 192.168.184.1 与 192.168.184.146 都成功登录该系统
查询管理员最近登录情况命令:
grep "Accepted " /var/log/secure-20210420 | awk '{print $1,$2,$3,$9,$11}'
总结:
1、爆破时间范围:20210420 03:28:39-03:43:24
2、爆破的账户:root
3、在爆破期间成功爆破出root账户的密码IP:192.168.184.1、192.168.184.146
可疑IP 192.168.184.1、192.168.184.146 成功爆破出系统192.168.184.142的 root账户的密码,并且留crontab隐藏后门 与 两个文件 /root/1.sh、/root/2.sh
更多资源:
1、web安全工具、渗透测试工具
2、存在漏洞的网站源码与代码审计+漏洞复现教程、
3、渗透测试学习视频、应急响应学习视频、代码审计学习视频、都是2019-2021年期间的较新视频
4、应急响应真实案例复现靶场与应急响应教程
收集整理在知识星球,可加入知识星球进行查看。也可搜索关注微信公众号:W小哥
更多推荐
所有评论(0)