0x01 前言
在上周我决定毅然决然的拉了一个公开课的群,师傅们也很给面子,短短半小时就进了一百人,后面陆陆续续又进了 200+人,然后在首次试水开课的时候,确实很紧张,简单聊了聊计算机网络的协议和流量分析,在昨天,也就是 2024.12.29 日,我正式开了 Windows 应急响应研判思路公开课,效果还行,对于我个人来讲,增加了互动和锻炼能力
因为当初是想以小白公开课的思路去讲解的,但是由于圈子原因,现在群里面人员画像如下:小白(百分之 30)、CTF 大佬(百分之 10)、红队大牛(百分之 10)、SRC 大佬(百分之 10)、二进制大佬(百分之 5),其余还有各厂商、公司老板负责人,以及一些行业内大佬,非常感激捧场
这是一部分最近的公开课从实施到目前的经历,然后我们言归正传本次的学习知识点
本次环境并不难,在之前同样发布过关于 Windows 应急响应研判文章,但是那个比较通俗,本次主要讲解了针对于Windows 应急响应研判时的思路:前期系统排查、Windows 日志分析、WEB 日志分析、流量包综合分析
-
本视频及文章仅为学习参考,文中所使用的工具会在学习后删除
-
如您认为本文章帮助了你,麻烦点赞转发让更多人看到
0x02 实验过程
公开课录播
本次环境及工具包
https://pan.quark.cn/s/7b67f6737eae
在线练习平台
相关环境已上架至玄机应急响应练习平台
注册码/邀请码关注州弟学安全后发送"邀请码"获取
故事背景
这是某单位正常运行的主机,但由于安全防范意识不到位,导致系统被攻击。目前已知攻击者成功接管了系统。需要通过上机排查,利用开放的服务快速识别攻击者的操作、最终攻击成功的方法以及接管成功的 IP。相关工具和全程流量数据已放置在桌面中。
日志分析概述
日志的定义和类型
示例图片:
-
Windows 系统日志示例:
-
Web 服务器访问日志示例:
-
网络流量日志示例:
-
日志是系统、应用程序或设备生成的记录信息,用于跟踪操作和事件。 -
常见日志类型包括系统日志、安全日志、应用程序日志、网络日志等。
日志分析的意义和应用场景
-
日志分析用于检测异常活动、故障排除、安全审计和合规性检查。 -
应用场景包括入侵检测、性能监控、故障诊断等。
Windows 日志分析简介
Windows 事件日志简介
-
Windows 系统日志记录系统中硬件、软件和系统问题的信息,同时监视系统中发生的事件。 -
主要有三类日志:应用程序日志、系统日志和安全日志。 -
系统日志:记录操作系统组件产生的事件。 -
应用程序日志:记录由应用程序或系统程序记录的事件。 -
安全日志:记录系统的安全审计事件,包含登录日志、对象访问日志等。
审核策略与事件查看器
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
-
Windows Server 的审核功能默认未启用,建议开启审核策略以便查看系统日志。 -
查看系统日志方法: -
在“开始”菜单上,指向“所有程序” -> “管理工具”,然后单击“事件查看器”。 -
按 "Window+R",输入 ”eventvwr.msc“ 进入“事件查看器”。
每个成功登录的事件都会标记一个登录类型,不同登录类型代表不同的方式:
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
应急响应步骤
1. 初步调查
目标: 确定是否发生了安全事件。
步骤:
-
登录到 Windows Server 2019,检查系统的基本运行状态。
-
使用任务管理器查看 CPU、内存和网络使用情况,识别异常活动。
-
检查系统状态
检查开放端口
-
打开命令提示符,输入
netstat -ano
查看当前开放的网络端口。 -
识别不常见或不应开放的以及目前开放的端口。
-
分析端口开放情况
-
通过 netstat
命令,发现 3389 端口(远程桌面)和 80/8080 端口(WEB 服务)开放。 -
这些端口的开放可能意味着系统可能被远程访问或有 WEB 服务在运行。 -
因此,我们需要进一步检查这些服务的日志,以确认是否存在异常活动。
2. 数据收集
目标: 收集相关日志和流量数据以进行详细分析。
步骤:
-
由于 80/8080 端口开放,可能存在 WEB 访问或攻击。
-
访问 PHP Study 中 Nginx 的日志文件
-
WEB 日志收集
打开日志后可以看到杂乱无章,没有一点规律,我们分析起来也没有任何头绪
为了让分析日志更合理,我们打开桌面的 cmder 工具,并前往 Nginx 日志目录
通过 awk 分析到有两个 IP 进行过攻击
awk '{print $1}' access.log | sort | uniq -c | sort
其中 127.0.0.1 是本地在安装程序的时候进行的访问,当然如果不放心可以自行排查
为了分析 192.168.18.133 这个 IP 做过的一些历史行为,我们使用 cat 命令查看以下此文件,可以看到尽管缩小了数据范围,还是杂乱无章的样子
大概通过特征看到,肯定是有扫描的,目前先过滤掉状态码为 404 的日志,再次缩小范围
awk "$9!=404" access.log #以空格为键值进行查询
通过筛选看到了没有 404 的特征,但是现在看仍然是杂乱无章,继续整理,更细分化的查看请求方式、URL,状态码
awk "$9!=404 {print $6,$7,$9}" access.log
就这样我成功看到了我想要的效果,为了更完美的显示我想表达的某一行,我继续优化命令
cat -n access.log |awk "$10!=404 {print $1,$7,$8,$10}"
接下来就可以愉快的进行分析了
首先在 60-100 行区间有频繁访问登录页面,且请求方式为 POST 的样式,此处不排除有爆破、枚举验证码的迹象,后面可以在流量包中验证
在截图范围内的 192-277 范围中,有这很多攻击 payload,这些 payload 方向不明确,有着扫描的迹象,至于不是 404 而是 403,有可能是文件存在,但没权限访问
接着在 831 行的时候,login 为最后一次出现,表明可能攻击者登录成功,我们这里没有筛选指定 IP,可以使用 grep 指定一下 IP
cat -n access.log |grep 192.168.18.133|awk "$10!=404 {print $1,$7,$8,$10}"
接着在往后一路基本上都是 200 状态码,我们着重关注除 GET 请求方式外的其它请求方式,GET 的 URL 有特殊符合除外
注意 916 行的**/dede/templets_one_add.php**,可能是添加了什么
916 行处有增加模板的迹象,938 行处有编辑模板的迹象,在 944 行处有 phpinfo 的迹象,但是为 403,也就是权限不允许,我们前往指定目录下看看这个 newfile1.php
这个是一串看不懂的东西,直接拿着去搜索
这个就是免杀木马,估计是这个漏洞不在这个版本,或者 phpstudy 做的权限限制
然后在往后就没看到这个 IP 的其它请求了,估计是放弃了,我们接着在看其它端口
-
由于 3389 端口开放,可能存在远程登录尝试。 -
打开“事件查看器”,导航到“Windows 日志” -> “安全”。
显然,这样看并不是很好排查,我们需要借助一个工具进行排查,在桌面有一个 FullEventLogView 目录
其中的 FullEventLogView.exe 已汉化,直接打开会自动加载我们电脑的所有事件日志
事件量比较大,可以自行进行筛选时间,默认是筛选当前时间的七天内
查找并导出事件 ID 4625(登录失败)和 4624(登录成功)。
这里我通过查询 4625 事件 ID 快速找到了所有登录失败的事件
然后接着筛选 4624 的事件 ID,等到 4624 的事件 ID 筛选完成后,发现事件还是很多,这样并没有办法快速追踪到 IP
这个时候就需要一些小技巧和思路了(系统存在账号->爆破->登录成功)
所以我们需要去查找一下当前系统中存在哪些账号,这里可以使用命令行和注册表的形式
至于为什么要用注册表,是因为万一有隐藏用户,这个属于应急的一部分
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList
在注册表中每个用户都有一个独立的 ID,跟进到这个 ID 下,可以看到有一个名为 ProfileImagePath 是 administrator
其它就没有再看到可疑用户了,所以只需要筛选 administrator 即可
等待筛选过后,我们可以看到在指定时间内所有 administrator 登录成功的日志
在最上面我们提到了登录类型,2 为交互式登录,一般为本地,3 为网络类型,即为远程登录
通过依次查看看到,84313 的事件 ID,远程 IP 为 192.168.18.133,用 kali 进行爆破的,在往后翻看到 192.168.18.1 这个 IP 同样进行了登录
那么此时很明朗了,我们后面可以通过流量包进行确认行为
流量数据收集
-
使用 Wireshark 捕获网络流量,保存为 PCAP 文件。
-
通过流量分析,识别潜在的攻击行为。
首先打开流量包与我们的工具 brim(Zui),将流量包导入到这些工具中
按照上方排序顺序依次排查,先看 HTTP 协议中所有状态码,然后依次查看请求的 URL
看到有 913 次扫描,但是最多只能看到 500 条,继续缩小范围
这个时候还是不太准确,继续缩小范围,在日志中看到的 IP:192.168.18.133
以上就是最准确的不包含 404 的所有 payload 了,我们可以自行找到某些 payload 进行查询,比如刚才在日志审计中看到的写入 WEBshell,筛选一下 POST 请求方式
前往 wires hark 进行过滤器筛选分析
追踪 TCP 流量以后看到,这条请求在写 phpinfo,并且回显状态码成功了
至于后面的,我们知道,执行 phpinfo 的时候 403 了,就不在看了
接着回到 ZUI 工具,看一下其它协议 count,不出意外的除了 HTTP,就是 RDP 协议
rdp 就是我们刚才审计的 3389 远程连接,已知在日志中知道了两个 IP,假如我们没有审计日志的步骤情况下怎么办呢,可以直接使用 ZUI 进行聚合次数,一条命令列出 IP
那么,已知 IP 但是不能用 ZUI 进行直接分析,因为 ZUI 是将 pcap 转为五元组日志,而不是流量类型文件,所以需要配合 wireshark 进行分析
ip.src==192.168.18.133&&tcp.dstport==3389
因为交互原因,所以看到有 10w 次流量互联等,那么先来分析一下流量
第一部分是建立连接的步骤
然后是攻击机发送给被攻击机服务连接包,我们所熟知的三次握手四次挥手的一部分
再往下它并没有成功登录,继续循环往下尝试建立连接
直到拉到最后,看到这个红色的杠杠,这个是断开会话的数据包,这一块证明攻击机登录成功并且断开的连接
在流量中还有一个可疑的 IP:192.168.18.1,我们筛选一下
非常完整的一个流量交互行为,没有爆破,全都是建立连接后进行数据交互,直到最后进行了断开连接
3. 事件响应
-
目标: 采取措施阻止攻击并修复漏洞。
-
步骤:
-
事件梳理
-
进行修改后台弱口令。3389 端口弱口令。FTP 业务加固等,并清除 WEBshell
0x03 结语
本次视频学习以下内容:Windows 主机排查、WEB 日志研研判分析、综合流量分析,主要知识点:利用任何可利用的工具进行快速应急研判,不限于命令行,视频讲的比较细,所以时长较长,请沉浸式观看,如觉得不错烦请点赞转发哦
原文始发于微信公众号(银遁安全团队):应急研判|原创最详细Windows应急响应研判思路讲解
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论