玄机靶场 | 流量特征分析-蚂蚁爱上树
前言
玄机靶场日常刷题训练,刚好重温一下蚁剑流量分析和mimikatz用法
知识准备
蚁剑流量特征
每个请求体通常以@ini_set("display_errors", "0");@set_time_limit(0);
开头
请求体包含base64编码内容
响应包一般是明文,但也可能存在加密情况,结果通常为随机字符和返回结果
Content-Type通常为 application/x-www-form-urlencoded
,表明数据是以标准表单形式编码的
mimikatz简单用法
先用procdump抓取lsass转储文件
- 获取lsass进程id
1 | tasklist /svc | findstr lsass.exe |
- 抓取
lsass.dmp
文件
1 | procdump64.exe -accepteula -ma <LSASS_PID> lsass.dmp |
然后mimikatz解密lsass.dmp文件
- 特权提升
1 | mimikatz # privilege::debug |
- 加载dmp文件
1 | mimikatz # sekurlsa::minidump lsass.dmp |
- 凭据提取,导出其中的明文密码
1 | mimikatz # sekurlsa::logonpasswords |
索引
玄机题目
步骤#1
管理员Admin账号的密码是什么?
首先通过语法筛选出http流量并过滤掉404状态码的流量包
1 | http and !(http.response.code == 404) |
然后快速分析一遍流量,发现product2.php有问题
这里涉及到一句话木马,可以确定这个就是webshell文件,然后解码请求包的base64内容
左下解码处选择Base64,可以看到解码后的内容符合蚁剑特征,因此确定这是以蚁剑为媒介的一次攻击行为
因为蚁剑与网站是通过POST方法进行通信的,所以我们重新改进一下筛选语法,直接筛选出方法为POST且包含文件名product2.php的流量,可以缩小分析范围
1 | http.request.method == POST and http.request.uri contains "product2.php" |
逐个分析流量,解码base64数据,因为蚁剑的特性,前两位是随机值,所以开始位置调整为2,最后发现No.15190数据包有问题
执行了系统命令net user admin Password1 /add
,也就是添加一个名为admin的用户,然后密码设置为Password1,但是此时该用户并不是管理员,分析下一个数据包,可以看到
攻击者将admin用户添加进本地管理员组,从此刻起该用户admin才具有管理员权限
因此答案就是这个用户的密码
1 | flag{Password1} |
步骤#2
LSASS.exe的程序进程ID是多少?
继续分析流量,发现No.4069数据包有问题
可以看到攻击者执行了命令
1 | rundll32.exe comsvcs.dll, MiniDump 852 C:\Temp\OnlineShopBackup.zip full |
我们分析一下
rundll32.exe: 这是一个 Windows 系统程序,用于运行 DLL(动态链接库)文件中的函数。它本身不执行任何操作,而是作为调用 DLL 函数的宿主
comsvcs.dll: 这是一个系统 DLL 文件,包含了 COM+ 服务相关的函数。在这个命令中,它被用来调用其内部的
MiniDump
函数MiniDump: 这是
comsvcs.dll
中的一个函数,用于创建指定进程的内存转储。内存转储是进程在某个时间点的内存快照,通常用于调试或故障排除852: 这是要进行内存转储的进程的 PID(进程 ID)
C:\Temp\OnlineShopBackup.zip: 这是内存转储文件的输出路径和文件名。尽管文件名是
.zip
,但它实际上是一个原始的内存转储文件,并不是一个压缩文件full: 这是一个参数,指定了内存转储的类型。表示创建一个完整的内存转储,包含进程的所有内存信息。其他参数还包括
mini
(较小的转储) 或heap
(只包含堆信息) 等
简而言之,这条命令就是先找到 PID 为 852 的进程,然后创建一个该进程的完整内存快照,并将这个内存快照保存到C:\Temp\OnlineShopBackup.zip
文件中
因此LSASS.exe的程序进程ID就是852
1 | flag{852} |
步骤#3
用户WIN101的密码是什么?
要获取用户WIN101的密码,需要我们把前面提到的完整内存快照下载下来,也就是OnlineShopBackup.zip,然后用mimikatz分析
因此我们需要导出http对象
文本过滤器输入product2.php,缩小对象范围,同时按照大小降序来排列,因为dmp文件比较大
可以看到第一个文件大小为47MB,就是我们要找的dmp文件,导出到桌面,用010editor打开验证
开头显示MDMP,可以确定是dmp文件,但是前面多了e1c1709这几个字符,直接放入mimikatz解密会报错,因此需要先删掉,然后将文件后缀改为dmp,放到跟mimikatz同一个目录
记得mimikatz以管理员身份运行
运行命令获取系统密码
1 | sekurlsa::minidump product2.dmp |
然后找到用户名为win101的NTLM哈希值
得到哈希值为
1 | 282d975e35846022476068ab5a3d72df |
对NTLM的md5解密即可
1 | flag{admin#123} |
参考
玄机靶场 | 流量特征分析-蚂蚁爱上树
https://waynejoon.github.io/posts/Xuanji-CTF-AntSword-and-Mimikatz/