一、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小哥
在这里插入图片描述

Logo

更多推荐