一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

admin 2023年6月16日02:39:40评论191 views字数 2980阅读9分56秒阅读模式


一、SSH协议介绍

SSH(Secure Shell)是一套协议标准,可以用来实现两台机器之间的安全登录以及安全的数据传送,其保证数据安全的原理是非对称加密。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全。

危害:
SSH口令长度太短或者复杂度不够,如仅包含数字,或仅包含字母等,容易被攻击者破解,一旦被攻击者获取,可用来直接登录系统,控制服务器所有权限。

一、事件背景

某天客户反馈:Linux服务器有异常连接,疑似被入侵。(真实案例自己搭建环境复现一下,靶场环境放在了 知识星球 中
192.168.184.145是异常 IP

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

受害服务器:Linux系统、IP:192.168.184.142、无WEB服务

二、应急响应过程

2.1 查看异常连接文件的位置

第一步:
首先使用以下命令,查看服务器所有的连接

netstat -anpt

发现有两个异常连接,都是与192.168.184.145的5555端口通信的,根据经验猜测是反弹的shell

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

第二步:
通过PID查看异常连接的进程,以及该进程正在执行的命令行命令

ps aux |grep 15011

发现是 bash 进程

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

接下来查看PID 为 15011 的父进程

cat /proc/15011/status

发现父进程 PID 是15010

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

接下来查看 PID 为 15010 的 进程,以及该进程正在执行的命令行命令

ps aux |grep 15010

发现是通过 /bin/bash 执行的 root目录下的1.sh文件 (此处为找到的第一个可疑文件)

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

接下来查看PID 为 15010 的父进程

cat /proc/15010/status

发现父进程 PID 是15009

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

接下来查看 PID 为 15009 的 进程,以及该进程正在执行的命令行命令

ps aux |grep 15009

发现是通过 /bin/bash -c 指定将命令转为一个完整命令执行

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

接下来查看PID 为 15009 的父进程

cat /proc/15009/status

发现父进程 PID 是15007

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

接下来查看 PID 为 15007 的 进程,以及该进程正在执行的命令行命令

ps aux |grep 15007

发现是 /usr/sbin/CROND -n 跟网站的定时任务相关的

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

小结:
1、查看排查过程中发现的可疑文件 /root/1.sh ,发现其内容是反弹shell的命令,正式反弹到192.168.184.145的5555端口

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

第三步:
查看定时任务

crontab -l

显示root账户没有定时文件

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

跟前面查看的 PID 为 15007 的 进程执行命令存在冲突,PID 为 15007 明明执行的是 定时任务的命令 /usr/sbin/CROND -n
那么只能去查看 root账户是否存在定时任务文件

cd /var/spool/croncat rootvi root

发现是crontab隐藏后门,只能通过 vi 命令进行查看,隐藏的很完美啊!

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

第四步:
查看 root 账户的历史命令,没有发现与有用的信息,可能部分命令已经被删除

history

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

接下里查看1.sh的详细信息

ls -l

发现1.sh 与2.sh 文件的访问时间十分接近,存在可疑

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

接下来查看2.sh文件的内容

cat 2.sh

是创建隐藏后门的命令

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

总结:
可疑文件 /root/1.sh、/root/2.sh 均为创建crontab 隐藏后门的文件
且都是 4:00-5:00 之前执行的

2.2 攻击路径溯源

第一步:
查看 1.sh、2.sh创建与修改的账户,发现都是root账户,怀疑root账户是弱口令或者被暴力破解

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

第二步:
查看root账户的登录日志
root的登录日志文件在:/root/log/secure-XXXXX

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

随便查看一个secure-20210420 文件的内容

 cat secure-20210420

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

发现很多登录失败的记录,猜测 root账户被暴力破解了

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

统计日志中所有的 登陆失败的记录命令

grep -o "Failed password" /var/log/secure* |uniq -c

发现在secure-20200601中有76条登录失败记录,在secure-20210420中有1716条登录失败记录,结合1.sh与2.sh文件的日期,猜测是在20211020日被暴力破解的

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

输出登录爆破的第一行和最后一行,确认爆破时间范围: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

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

查询有哪些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多次

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

查询被爆破的用户名都有哪些?命令:

grep "Failed password" /var/log/secure-20210420|perl -e 'while($_=<>){ /for(.*?) from/; print "$1n";}'|uniq -c|sort -nr

发现被爆破的用户名是 root 账户

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

统计登录成功的IP有哪些?命令:

grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

发现 192.168.184.1 与 192.168.184.146 都成功登录该系统

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

查询管理员最近登录情况命令:

grep "Accepted " /var/log/secure-20210420 | awk '{print $1,$2,$3,$9,$11}'

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

总结:
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、应急响应真实案例复现靶场与应急响应教程

收集整理在知识星球,可加入知识星球进行查看。

一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)


原文始发于微信公众号(W小哥):一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月16日02:39:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一次真实的应急响应案例(Linux)——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)http://cn-sec.com/archives/887777.html

发表评论

匿名网友 填写信息