从几个CTF题目学习内存取证(三)

接上篇,又是两个题目。

Memory-5

还是国荣学长的题,每天一个知识点,感觉很不错,这也让我的内存取证系列能一直更新,真不错。

文件是一个镜像和一个名为SMB的无后缀文件,还是常规分析镜像文件,先看进程。

┌──(root@kali)-[~]
└─# volatility -f memory.raw --profile=Win7SP1x64 pslist                     
Volatility Foundation Volatility Framework 2.6
Offset(V)          Name                    PID   PPID   Thds     Hnds   Sess  Wow64 Start                          Exit                          
-------------------------------------------------------------------------------------------------------------------
0xfffffa800cd36040 System                    4      0     80      489 ------      0 2020-06-10 08:37:56 UTC+0000
0xfffffa800d487b10 smss.exe                212      4      2       29 ------      0 2020-06-10 08:37:56 UTC+0000
0xfffffa800e060060 csrss.exe               296    288      9      414      0      0 2020-06-10 08:38:00 UTC+0000
0xfffffa800e2a1660 csrss.exe               348    340     11      291      1      0 2020-06-10 08:38:05 UTC+0000
0xfffffa800e367370 wininit.exe             356    288      3       80      0      0 2020-06-10 08:38:06 UTC+0000
0xfffffa800e37ba70 winlogon.exe            392    340      3      111      1      0 2020-06-10 08:38:06 UTC+0000
0xfffffa800e44f270 services.exe            452    356     10      199      0      0 2020-06-10 08:38:08 UTC+0000
0xfffffa800e45e390 lsass.exe               460    356      7      584      0      0 2020-06-10 08:38:09 UTC+0000
0xfffffa800e488b10 lsm.exe                 468    356     10      188      0      0 2020-06-10 08:38:09 UTC+0000
0xfffffa800e570900 svchost.exe             560    452      9      348      0      0 2020-06-10 08:38:20 UTC+0000
0xfffffa800e599b10 svchost.exe             624    452      9      282      0      0 2020-06-10 08:38:22 UTC+0000
0xfffffa800e5e7b10 svchost.exe             720    452     19      476      0      0 2020-06-10 08:38:22 UTC+0000
0xfffffa800d85c900 svchost.exe             764    452     11      254      0      0 2020-06-10 08:38:23 UTC+0000
0xfffffa800e67a640 svchost.exe             788    452     45      934      0      0 2020-06-10 08:38:23 UTC+0000
0xfffffa800e6be060 audiodg.exe             876    720      4      124      0      0 2020-06-10 08:38:24 UTC+0000
0xfffffa800e6de660 svchost.exe             936    452      9      477      0      0 2020-06-10 08:38:25 UTC+0000
0xfffffa800e737b10 svchost.exe            1020    452     20      537      0      0 2020-06-10 08:38:26 UTC+0000
0xfffffa800e7cb3f0 spoolsv.exe            1012    452     13      278      0      0 2020-06-10 08:38:29 UTC+0000
0xfffffa800d83fb10 svchost.exe            1072    452     19      324      0      0 2020-06-10 08:38:31 UTC+0000
0xfffffa800e228480 svchost.exe            1176    452      8       92      0      0 2020-06-10 08:38:32 UTC+0000
0xfffffa800e23a5c0 svchost.exe            1204    452     11      145      0      0 2020-06-10 08:38:32 UTC+0000
0xfffffa800e24d6b0 inetinfo.exe           1224    452      5      141      0      0 2020-06-10 08:38:32 UTC+0000
0xfffffa800e339b10 VGAuthService.         1496    452      3       85      0      0 2020-06-10 08:38:37 UTC+0000
0xfffffa800e359b10 vmtoolsd.exe           1528    452     11      303      0      0 2020-06-10 08:38:39 UTC+0000
0xfffffa800d869600 svchost.exe            1560    452     16      127      0      0 2020-06-10 08:38:41 UTC+0000
0xfffffa800e463600 dllhost.exe            1324    452     13      189      0      0 2020-06-10 08:38:47 UTC+0000
0xfffffa800e4e8b10 WmiPrvSE.exe           1164    560     10      204      0      0 2020-06-10 08:38:47 UTC+0000
0xfffffa800e2f6b10 msdtc.exe              1940    452     12      147      0      0 2020-06-10 08:38:47 UTC+0000
0xfffffa800e247710 taskhost.exe           2404    452      8      209      1      0 2020-06-10 08:39:50 UTC+0000
0xfffffa800e777b10 dwm.exe                2484    764      5      137      1      0 2020-06-10 08:39:51 UTC+0000
0xfffffa800e79f8f0 explorer.exe           2524   2472     38     1128      1      0 2020-06-10 08:39:51 UTC+0000
0xfffffa800e81a060 vm3dservice.ex         2708   2524      2       45      1      0 2020-06-10 08:39:55 UTC+0000
0xfffffa800e81b890 vmtoolsd.exe           2716   2524      8      196      1      0 2020-06-10 08:39:55 UTC+0000
0xfffffa800e8fdb10 svchost.exe             912    452     11      138      0      0 2020-06-10 08:40:19 UTC+0000
0xfffffa800e509900 TrueCryptPorta         1352   2524      5      160      1      1 2020-06-10 08:57:48 UTC+0000
0xfffffa800e9d7380 TrueCrypt.exe          1424   1352      2       91      1      1 2020-06-10 08:57:49 UTC+0000
0xfffffa800e94e5e0 cmd.exe                2772   2524      1       19      1      0 2020-06-10 08:58:04 UTC+0000
0xfffffa800e84c060 conhost.exe            1288    348      2       60      1      0 2020-06-10 08:58:04 UTC+0000
0xfffffa800e93db10 SGTool.exe             2224   2524      9      238      1      1 2020-06-10 08:59:02 UTC+0000
0xfffffa800e6f9060 DumpIt.exe             1084   2524      2       46      1      1 2020-06-10 08:59:48 UTC+0000
0xfffffa800e95eb10 conhost.exe            2592    348      2       59      1      0 2020-06-10 08:59:48 UTC+0000

三个可疑进程TrueCryptPortaTrueCryptcmd,先看了看cmd

┌──(root@kali)-[~]
└─# volatility -f memory.raw --profile=Win7SP1x64 cmdscan
Volatility Foundation Volatility Framework 2.6
**************************************************
CommandProcess: conhost.exe Pid: 1288
CommandHistory: 0x9d0c0 Application: cmd.exe Flags: Allocated, Reset
CommandCount: 3 LastAdded: 2 LastDisplayed: 2
FirstCommand: 0 CommandCountMax: 50
ProcessHandle: 0x5c
Cmd #0 @ 0xa6d70: Hello!
Cmd #1 @ 0xa6d90: NEPNEP!
Cmd #2 @ 0xa7790: Huainvren master of pwn!
**************************************************
CommandProcess: conhost.exe Pid: 2592
CommandHistory: 0xeabb0 Application: DumpIt.exe Flags: Allocated
CommandCount: 0 LastAdded: -1 LastDisplayed: -1
FirstCommand: 0 CommandCountMax: 50
ProcessHandle: 0x5c

又是这,没啥内容,dump了两个加密磁盘的进程,用EFDD去解,但是毫无收获,都是Keys not found

后来学长给了题面提示管理员账号 和 系统被日,抓了一下管理员密码,解得密码qweasd!123

┌──(root@kali)-[~]
└─# volatility -f memory.raw --profile=Win7SP1x64 hashdump
Volatility Foundation Volatility Framework 2.6
Administrator:500:aad3b435b51404eeaad3b435b51404ee:fb6241d8e3f3fa861e491c7933c5fb33:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

转头就用TrueCryptSMB挂载成本地磁盘,里面

得到一个名为《关于COVID-19的疫情通报》得文件,Windows直接报毒,拖到linux直接打开。

查了查是一个word漏洞CVE-2017-0199,里面有一大堆十六进制数,这个位置正常就是攻击代码得位置,复制下来去解密,大多是乱码,只有一串疑似base加密的数据引起了注意,跑脚本得到flag{831b5f4d1c7cd200e23e4cc3ec8538fb}

后来学长说这道题本来的计划是利用word缓冲区溢出加载payload,一个隐藏程序自启动,然后分析那个隐藏程序。后来由于时间紧张没有完善,此处插眼,万一以后考了呢。

Memory-6

今年湖湘杯的misc出了两个内存取证,考点还一样(就离谱)。。。

给的是.vmem的虚拟机镜像,分析镜像时的Suggested Profile第一个并不是正确的,第二个才是。常规看进程

┌──(root@kali)-[~]
└─# volatility -f 隐藏的秘密.vmem --profile=Win2003SP1x86 pslist                                                           1 ⨯
Volatility Foundation Volatility Framework 2.6
Offset(V)  Name                    PID   PPID   Thds     Hnds   Sess  Wow64 Start                          Exit                          
------------------------------------------------------------------------------------------------------------
0x881bf648 System                    4      0     53      329 ------      0
0x87f00720 smss.exe                296      4      3       18 ------      0 2019-12-20 14:18:07 UTC+0000
0x87b635a0 csrss.exe               444    296     11      368      0      0 2019-12-20 14:18:08 UTC+0000
0x87aea7e0 winlogon.exe            484    296     17      466      0      0 2019-12-20 14:18:09 UTC+0000
0x87b5f508 services.exe            528    484     16      288      0      0 2019-12-20 14:18:09 UTC+0000
0x87a4a770 lsass.exe               540    484     30      415      0      0 2019-12-20 14:18:09 UTC+0000
0x87cfe020 vmacthlp.exe            720    528      1       26      0      0 2019-12-20 14:18:09 UTC+0000
0x87e6b870 svchost.exe             740    528      5       92      0      0 2019-12-20 14:18:09 UTC+0000
0x877afcf8 svchost.exe             828    528     11      231      0      0 2019-12-20 14:18:09 UTC+0000
0x87add218 svchost.exe             884    528      7      116      0      0 2019-12-20 14:18:09 UTC+0000
0x8735c120 svchost.exe             912    528     13      155      0      0 2019-12-20 14:18:09 UTC+0000
0x8796e980 svchost.exe             932    528     41     1117      0      0 2019-12-20 14:18:09 UTC+0000
0x87b3e820 spoolsv.exe            1480    528     12      141      0      0 2019-12-20 14:18:27 UTC+0000
0x87356638 msdtc.exe              1508    528     13      145      0      0 2019-12-20 14:18:27 UTC+0000
0x87cf5020 svchost.exe            1588    528      2       54      0      0 2019-12-20 14:18:27 UTC+0000
0x87cfb2c0 svchost.exe            1648    528      2       37      0      0 2019-12-20 14:18:27 UTC+0000
0x87e5ea08 VGAuthService.e        1708    528      2       65      0      0 2019-12-20 14:18:27 UTC+0000
0x87966d88 vmtoolsd.exe           1756    528      7      241      0      0 2019-12-20 14:18:27 UTC+0000
0x87802d88 explorer.exe           2028   1992      9      300      0      0 2019-12-20 14:18:30 UTC+0000
0x8794a5f0 svchost.exe             976    528     14      126      0      0 2019-12-20 14:18:36 UTC+0000
0x87b24b48 vmtoolsd.exe            900   2028      6      148      0      0 2019-12-20 14:18:36 UTC+0000
0x87cd3378 ctfmon.exe             1164   2028      1       90      0      0 2019-12-20 14:18:36 UTC+0000
0x87e381f8 dllhost.exe             796    528     15      198      0      0 2019-12-20 14:18:36 UTC+0000
0x87232058 wmiprvse.exe           1372    740      8      204      0      0 2019-12-20 14:18:36 UTC+0000
0x87e24260 wuauclt.exe            3724    932      3      113      0      0 2019-12-20 14:19:35 UTC+0000
0x87f83020 wmiprvse.exe           1676    740      4      146      0      0 2019-12-20 14:19:59 UTC+0000
0x877ab578 regedit.exe             804   2028      1       46      0      0 2019-12-20 15:33:08 UTC+0000
0x87e37958 notepad.exe            2440   2028      1       47      0      0 2019-12-20 15:41:43 UTC+0000

notepad进程引人注目

┌──(root@kali)-[~]
└─# volatility -f 隐藏的秘密.vmem --profile=Win2003SP1x86 notepad
Volatility Foundation Volatility Framework 2.6
Process: 2440
Text:
?

Text:
d

Text:


Text:
?

Text:
??????????????????????????????????????????????????????????????flag?????????????md5??

???md5(???:??)

但是全问号,说明可能是中文,看看桌面截图

发现打开了名为file.txt的文件,找到并dump出来

┌──(root@kali)-[~]
└─# volatility -f 隐藏的秘密.vmem --profile=Win2003SP1x86 filescan | grep "file.txt"
Volatility Foundation Volatility Framework 2.6
0x000000000412cde0      1      0 RW-r-- \Device\HarddiskVolume1\Documents and Settings\Administrator\桌面\file.txt
0x000000000479d4a8      4      2 -W-rw- \Device\HarddiskVolume1\Documents and Settings\All Users\Application Data\VMware\VMware VGAuth\logfile.txt.0
0x00000000049e6228      1      0 RW-rw- \Device\HarddiskVolume1\Documents and Settings\Administrator\Recent\file.txt.lnk

┌──(root@kali)-[~]
└─# volatility -f 隐藏的秘密.vmem --profile=Win2003SP1x86 dumpfiles -Q 0x000000000412cde0 -D ./
Volatility Foundation Volatility Framework 2.6
DataSectionObject 0x0412cde0   None   \Device\HarddiskVolume1\Documents and Settings\Administrator\桌面\file.txt

那思路很明确了就是查看用户及密码,然鹅我还是天真了,这hashdump出来352个账户密码。。。。

┌──(root@kali)-[~]
└─# volatility -f 隐藏的秘密.vmem --profile=Win2003SP1x86 hashdump                             
Volatility Foundation Volatility Framework 2.6
Administrator:500:f0d412bd764ffe81aad3b435b51404ee:209c6174da490caeb422f3fa5a7ae634:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SUPPORT_388945a0:1001:aad3b435b51404eeaad3b435b51404ee:8d9221b8e70124641a83291d3d21f7e0:::
9w3a6J0$:1003:e761601f5cf981c136077a718ccdf409:ec9dc7d0895ad3dae1feba8ffdeacffd:::
4hiU9ZK$:1004:de5eea9d3fd12c34aad3b435b51404ee:2f2d544c53b3031f24d63402ea7fb4f9:::
...... (此处省略几百条数据) ......

这里想着查log日志之类的文件,但是找了很久都没能找到,最后比赛的时候采用了最笨的办法,逐行爆破提交flag,最后也试出来了,但是效率太低,赛后看了其他师傅的wp才知道可以dump出来注册表,再利用WRR就能查看登录记录。

┌──(root@kali)-[~]
└─# volatility -f 隐藏的秘密.vmem --profile=Win2003SP1x86 dumpregistry --dump-dir= . 
Volatility Foundation Volatility Framework 2.6
**************************************************
Writing out registry: registry.0xe12fb260.no_name.reg
**************************************************
**************************************************
Writing out registry: registry.0xe1756200.SECURITY.reg
**************************************************
**************************************************
Writing out registry: registry.0xe101d008.system.reg

Physical layer returned None for index 8000, filling with NULL
...... (此处省略大量相似无用数据) ......
Physical layer returned None for index 2c2000, filling with NULL
**************************************************
**************************************************
Writing out registry: registry.0xe2460a80.UsrClassdat.reg
**************************************************
**************************************************
Writing out registry: registry.0xe174a008.UsrClassdat.reg
**************************************************
**************************************************
Writing out registry: registry.0xe1757860.SAM.reg
**************************************************
**************************************************
Writing out registry: registry.0xe2484008.UsrClassdat.reg
**************************************************
**************************************************
Writing out registry: registry.0xe233aa80.NTUSERDAT.reg
**************************************************
**************************************************
Writing out registry: registry.0xe24560b0.NTUSERDAT.reg
**************************************************
**************************************************
Writing out registry: registry.0xe1013008.no_name.reg
**************************************************
**************************************************
Writing out registry: registry.0xe1763008.default.reg
**************************************************
**************************************************
Writing out registry: registry.0xe13c9a80.software.reg

Physical layer returned None for index a3f000, filling with NULL
...... (此处省略大量相似无用数据) ......
Physical layer returned None for index a5e000, filling with NULL
**************************************************
**************************************************
Writing out registry: registry.0xe247c008.NTUSERDAT.reg
**************************************************

WRR打开,查看各个模块信息,在registry.0xe1757860.SAM.regSAM模块发现了用户组和用户信息,查看了Administrator的信息,发现能看到Last Logon的时间,而其他废用户大多没有

挨个查找用户信息,在第172个FHREhpe$用户看到了Last Logon信息,找到目标用户,查刚才的密码表,找到密码hash值为f3cf477fc3ea6ec0b3b5887616dd4506,解密得到密码为NIAIWOMAflag即为md5(FHREhpe$:NIAIWOMA)=8cf1d5b00c27cb8284bce9ccecb09fb7

总结

六个题考点各不相同,但也有异曲同工之妙,很多次都有思路断裂的问题,这个时候就要站在出题人或者犯罪嫌疑人的角度去思考,如果是你,执行了某些敏感操作,你要怎么"毁尸灭迹",逆着思路去思考我们能够更快的获得有用的信息。

最后就是自己还是太废物了,得抽空好好了解了解注册表都有什么内容了。

最后修改:2022 年 04 月 11 日 02 : 04 PM
请作者喝杯奶茶吧~