BZHCTF 2022 - Des Deux Cotes 1/2
Voici le write-up du challenge “Des Deux Côtés 1/2” en catégorie Forensic que j’ai pu first blood lors du Breizh CTF.
Énoncé
Voir les deux côtés de quelque chose, c’est toujours bon non ?
Vous êtes une APT et un de vos collègues a volé une machine chez une entreprise du CAC40, malheureusement, celle-ci ne veut plus démarrer.. Votre collègue étant un hacker en herbe, il a pensé à faire un dump mémoire avant que la machine rende l’âme !
Retrouvez le fichier qui contient des données confidentielles dans ce dump mémoire !
Auteur: Worty
Format: BZHCTF{}
Solution
Pour ce challenge, on se retrouve face à un dump mémoire classique. On check rapidement le profil volatility, la machine est un windows 7, pas besoin de créer de profil custom, parfait :)
La méthodo classique est de check les process avec pslist pour nous donner une idée de ce qui tournait sur la machine au moment du dump :
$ python2 /opt/Cyber/forensic/volatility/vol.py --profile=Win7SP1x86_23418 -f ./memory.dmp pslist
Offset(V) Name PID PPID Thds Hnds Sess Wow64 Start Exit
---------- -------------------- ------ ------ ------ -------- ------ ------ ------------------------------ ------------------------------
0x84133270 System 4 0 77 511 ------ 0 2022-02-23 18:09:02 UTC+0000
0x854f4020 smss.exe 224 4 2 29 ------ 0 2022-02-23 18:09:02 UTC+0000
0x85748030 csrss.exe 304 296 9 338 0 0 2022-02-23 18:09:03 UTC+0000
0x85b9bd40 wininit.exe 340 296 3 75 0 0 2022-02-23 18:09:03 UTC+0000
0x85b9c578 csrss.exe 352 332 9 209 1 0 2022-02-23 18:09:03 UTC+0000
0x85c23d40 winlogon.exe 392 332 5 130 1 0 2022-02-23 18:09:04 UTC+0000
0x85cac030 services.exe 444 340 7 196 0 0 2022-02-23 18:09:04 UTC+0000
0x85cba2d8 lsass.exe 452 340 6 558 0 0 2022-02-23 18:09:04 UTC+0000
0x85cbc620 lsm.exe 468 340 9 141 0 0 2022-02-23 18:09:04 UTC+0000
0x85f2bc08 svchost.exe 576 444 9 353 0 0 2022-02-23 18:09:04 UTC+0000
0x85f3d030 svchost.exe 636 444 7 250 0 0 2022-02-23 18:09:05 UTC+0000
0x854f3668 sppsvc.exe 860 444 4 147 0 0 2022-02-24 03:09:07 UTC+0000
0x84c07030 svchost.exe 900 444 14 314 0 0 2022-02-24 03:09:08 UTC+0000
0x84c08800 svchost.exe 924 444 40 1256 0 0 2022-02-24 03:09:08 UTC+0000
0x84c8d030 svchost.exe 972 444 19 450 0 0 2022-02-24 03:09:08 UTC+0000
0x84cc6030 audiodg.exe 1004 972 4 121 0 0 2022-02-24 03:09:08 UTC+0000
0x85aa6810 svchost.exe 1044 444 10 265 0 0 2022-02-24 03:09:09 UTC+0000
0x84cd8410 svchost.exe 1068 444 19 490 0 0 2022-02-24 03:09:09 UTC+0000
0x84d04d40 TrustedInstall 1180 444 6 261 0 0 2022-02-24 03:09:10 UTC+0000
0x85f9b030 spoolsv.exe 1340 444 12 293 0 0 2022-02-24 03:09:10 UTC+0000
0x85fe0030 svchost.exe 1380 444 19 315 0 0 2022-02-24 03:09:10 UTC+0000
0x85550718 svchost.exe 1692 444 6 94 0 0 2022-02-24 03:09:11 UTC+0000
0x84e3e4d0 taskhost.exe 772 444 8 208 1 0 2022-02-24 03:09:17 UTC+0000
0x84c7ac88 dwm.exe 848 900 3 71 1 0 2022-02-24 03:09:17 UTC+0000
0x84c7f9d8 explorer.exe 880 756 32 881 1 0 2022-02-24 03:09:17 UTC+0000
0x84e79508 regsvr32.exe 1864 880 0 -------- 1 0 2022-02-24 03:10:06 UTC+0000 2022-02-24 03:10:07 UTC+0000
0x85fc0030 svchost.exe 1868 444 11 144 0 0 2022-02-24 03:11:11 UTC+0000
0x84dde0b0 svchost.exe 1724 444 9 311 0 0 2022-02-24 03:11:11 UTC+0000
0x8430dc38 msiexec.exe 3820 444 6 305 0 0 2022-02-23 19:18:52 UTC+0000
0x8545d368 armsvc.exe 2660 444 6 244 0 0 2022-02-23 19:19:17 UTC+0000
0x842a3168 SearchIndexer. 3268 444 11 522 0 0 2022-02-23 19:19:24 UTC+0000
0x84356ca8 AdobeARMHelper 2484 2660 0 -------- 0 0 2022-02-23 19:20:53 UTC+0000 2022-02-23 19:20:54 UTC+0000
0x85ee3d40 firefox.exe 2360 816 0 -------- 1 0 2022-02-23 19:24:17 UTC+0000 2022-02-23 19:24:39 UTC+0000
0x84e17570 RH-Appli-Conne 3936 880 1 36 1 0 2022-02-23 19:24:45 UTC+0000
0x843485b0 RH-Appli-Conne 1668 880 3 94 1 0 2022-02-23 19:25:07 UTC+0000
0x84273030 cmd.exe 1472 1668 0 -------- 1 0 2022-02-23 19:25:24 UTC+0000 2022-02-23 19:25:27 UTC+0000
0x8549b108 WMIADAP.exe 1152 924 5 86 0 0 2022-02-23 19:27:21 UTC+0000
0x84283830 WmiPrvSE.exe 3072 576 8 115 0 0 2022-02-23 19:27:21 UTC+0000
0x84f7e630 notepad.exe 3232 880 1 63 1 0 2022-02-23 19:27:43 UTC+0000
0x86081218 notepad.exe 3732 880 1 63 1 0 2022-02-23 19:27:46 UTC+0000
0x84f3cd40 RH-Appli-Conne 3540 880 1 20 1 0 2022-02-23 19:27:54 UTC+0000
0x842ef7e0 RH-Appli-Conne 3504 880 5 99 1 0 2022-02-23 19:28:06 UTC+0000
0x84da8938 cmd.exe 2404 3504 0 -------- 1 0 2022-02-23 19:28:10 UTC+0000 2022-02-23 19:28:12 UTC+0000
On se réfère à notre objectif, lire le contenu d’un fichier avec des données confidentielles. Les process notepad.exe sont donc intéressants.
Deuxième plugin intéressant à regarder est cmdline
il va nous donner les commandes réalisées.
WmiPrvSE.exe pid: 3072
Command line : C:\Windows\system32\wbem\wmiprvse.exe
************************************************************************
notepad.exe pid: 3232
Command line : "C:\Windows\system32\NOTEPAD.EXE" C:\Users\Daniel\Documents\RH-Documents\Confidential\Resultat Entretien 2021.txt
************************************************************************
notepad.exe pid: 3732
Command line : "C:\Windows\system32\NOTEPAD.EXE" C:\Users\Daniel\Documents\RH-Documents\Confidential\Employe Secret.txt
************************************************************************
RH-Appli-Conne pid: 3540
Command line : "C:\Users\Daniel\Downloads\RH-Appli-Connect.exe"
************************************************************************
RH-Appli-Conne pid: 3504
Command line : "C:\Users\Daniel\Downloads\RH-Appli-Connect.exe"
************************************************************************
cmd.exe pid: 2404
On voit donc le fichier “Employe Secret.txt”, ouvert avec notepad, cela semble être le fichier que nous cherchons. Il nous reste donc à trouver le flag dans son contenu. Lors du CTF je n’ai même pas eu le réflexe de dump le fichier avec le plugin dumpfiles, et au final tant mieux, car le fichier n’était pas dumpable à cause d’une sorcellerie de Worty qui a fait exprès (:
On part donc directement sur un strings et grep avec le titre du document et ça passe nickel, on peux aussi dump la mémoire du process notepad ça fonctionne aussi. on n’oublie pas l’option -el avec strings pour l’UTF16 :)
$ strings -el memory.dmp > resulsts_cmd/strings.16.txt
$ cat resulsts_cmd/strings.16.txt| grep -C 4 -i Secret.txt
...
...
m.delkique@vulncorp.fr/MatthieuVulnCorp123!
Attenion
bien lui fournir sa signature :
QlpIQ1RGe2ZyMzNfY3IzZDNudGk0bHN9Cg==
...
Cette string ressemble fortement à du base64 ;) -> Flag : BZHCTF{fr33_cr3d3nti4ls}
Toujours aller au plus simple et avoir la bonne méthodo face à un dump mémoire.