Hoy vamos a ver el writeup del quinto reto llamado Black Tuesday, de nivel medio-difícil.
Descripción
Recibimos este volcado de memoria de nuestro cliente recientemente. Alguien accedió a su sistema cuando él no estaba y ha encontrado algunos archivos bastante extraños a los que se estaba accediendo. Encuentra esos archivos y podrían serte útiles. Cito su declaración textualmente:
Los nombres no eran legibles. Estaban compuestos de alfabetos y números, pero no pude distinguir qué era exactamente.
Además, notó que su aplicación favorita que siempre usaba fallaba cada vez que la ejecutaba. ¿Fue un virus?
Nota-1: Este reto se compone de 3 flags. Si crees que la segunda flag es el final, ¡no lo es! :P
Nota-2: Hubo un pequeño error al realizar este reto. Si encuentras alguna string que tenga "L4B_3_D0n3!!" en él, cámbialo a "L4B_5_D0n3!!" y luego procede.
Nota-3: Obtendrás la flag de la fase 2 solo cuando tengas la flag de la fase 1.
Fichero del reto: MemLabs_Lab5
$ md5sum MemoryDump_Lab5.raw
9dd6cb1134c9b018020bad44f27394db MemoryDump_Lab5.raw
Writeup
$ vol.py -f MemoryDump_Lab5.raw imageinfo
Volatility Foundation Volatility Framework 2.6.1
INFO : volatility.debug : Determining profile based on KDBG search...
Suggested Profile(s) : Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_24000, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_24000, Win7SP1x64_23418
AS Layer1 : WindowsAMD64PagedMemory (Kernel AS)
AS Layer2 : FileAddressSpace (/tools/forensic/MemLabs/MemoryDump_Lab5.raw)
PAE type : No PAE
DTB : 0x187000L
KDBG : 0xf800028460a0L
Number of Processors : 1
Image Type (Service Pack) : 1
KPCR for CPU 0 : 0xfffff80002847d00L
KUSER_SHARED_DATA : 0xfffff78000000000L
Image date and time : 2019-12-20 03:47:57 UTC+0000
Image local date and time : 2019-12-20 09:17:57 +0530
Empezamos lanzando el plugin imageinfo que nos facilitará algunos profiles que podemos usar; vayamos con Win7SP1x64 por ahora, y verifiquemos los procesos en ejecución con pstree.
$ vol.py -f MemoryDump_Lab5.raw --profile=Win7SP1x64 pstree
Volatility Foundation Volatility Framework 2.6.1
Name Pid PPid Thds Hnds Time
-------------------------------------------------- ------ ------ ------ ------ ----
0xfffffa8001c7c060:wininit.exe 428 312 3 75 2019-12-20 03:41:48 UTC+0000
. 0xfffffa8001c7bb30:services.exe 484 428 8 213 2019-12-20 03:41:50 UTC+0000
.. 0xfffffa8001f93b30:TCPSVCS.EXE 1416 484 4 97 2019-12-20 03:42:13 UTC+0000
.. 0xfffffa8001d4cb30:VBoxService.ex 656 484 13 135 2019-12-20 03:41:55 UTC+0000
.. 0xfffffa8001e6c700:svchost.exe 1044 484 16 381 2019-12-20 03:42:04 UTC+0000
.. 0xfffffa800109f060:svchost.exe 2632 484 7 82 2019-12-20 03:47:54 UTC+0000
... 0xfffffa8000efbb30:WerFault.exe 780 2632 7 160 2019-12-20 03:48:01 UTC+0000
... 0xfffffa8000ee8060:WerFault.exe 2716 2632 8 161 2019-12-20 03:47:54 UTC+0000
... 0xfffffa8000f05b30:WerFault.exe 2168 2632 7 15...4 2019-12-20 03:48:15 UTC+0000
.. 0xfffffa8001dc2b30:svchost.exe 880 484 33 983 2019-12-20 03:41:58 UTC+0000
... 0xfffffa8002117b30:taskeng.exe 1140 880 4 79 2019-12-20 03:43:19 UTC+0000
.. 0xfffffa8001dbf350:taskhost.exe 2012 484 8 189 2019-12-20 03:43:19 UTC+0000
.. 0xfffffa800222d7a0:SearchIndexer. 1800 484 13 710 2019-12-20 03:43:36 UTC+0000
... 0xfffffa8000f63060:SearchFilterHo 2608 1800 5 78 2019-12-20 03:46:41 UTC+0000
... 0xfffffa8000ea7b30:SearchProtocol 628 1800 6 270 2019-12-20 03:46:41 UTC+0000
.. 0xfffffa80022a9b30:wmpnetwk.exe 1928 484 16 510 2019-12-20 03:43:40 UTC+0000
.. 0xfffffa8001da1240:svchost.exe 820 484 23 590 2019-12-20 03:41:57 UTC+0000
... 0xfffffa8000cf5b30:audiodg.exe 968 820 6 131 2019-12-20 03:42:00 UTC+0000
.. 0xfffffa8001efbb30:svchost.exe 1272 484 19 307 2019-12-20 03:42:10 UTC+0000
.. 0xfffffa8001ce6b30:svchost.exe 588 484 10 357 2019-12-20 03:41:54 UTC+0000
... 0xfffffa8001c3e910:WmiPrvSE.exe 2572 588 6 109 2019-12-20 03:43:56 UTC+0000
... 0xfffffa8000f27b30:dllhost.exe 668 588 8 149 2019-12-20 03:46:37 UTC+0000
.. 0xfffffa8001ee1060:spoolsv.exe 1232 484 13 283 2019-12-20 03:42:09 UTC+0000
.. 0xfffffa8001d63b30:svchost.exe 724 484 8 282 2019-12-20 03:41:56 UTC+0000
.. 0xfffffa8001dba060:svchost.exe 856 484 28 535 2019-12-20 03:41:58 UTC+0000
... 0xfffffa8002170b30:dwm.exe 1172 856 5 71 2019-12-20 03:43:19 UTC+0000
... 0xfffffa8000fb34d0:dwm.exe 2360 856 5 71 2019-12-20 03:46:49 UTC+0000
.. 0xfffffa8001f775f0:svchost.exe 1372 484 22 303 2019-12-20 03:42:12 UTC+0000
.. 0xfffffa8001ec57c0:svchost.exe 2296 484 9 355 2019-12-20 03:43:45 UTC+0000
.. 0xfffffa8000fcd8e0:taskhost.exe 1968 484 9 150 2019-12-20 03:46:49 UTC+0000
.. 0xfffffa80014a6390:svchost.exe 1128 484 13 315 2019-12-20 03:44:31 UTC+0000
.. 0xfffffa8001e1cb30:svchost.exe 340 484 22 504 2019-12-20 03:42:03 UTC+0000
.. 0xfffffa800209b760:sppsvc.exe 2940 484 4 141 2019-12-20 03:44:24 UTC+0000
. 0xfffffa8001cb9880:lsass.exe 492 428 9 761 2019-12-20 03:41:50 UTC+0000
. 0xfffffa8001cbc4a0:lsm.exe 500 428 10 171 2019-12-20 03:41:50 UTC+0000
0xfffffa8000d96b30:csrss.exe 320 312 10 471 2019-12-20 03:41:45 UTC+0000
0xfffffa8000ca0040:System 4 0 80 562 2019-12-20 03:41:40 UTC+0000
. 0xfffffa80014b9040:smss.exe 248 4 3 37 2019-12-20 03:41:40 UTC+0000
.. 0xfffffa8001c6b060:psxss.exe 376 248 18 786 2019-12-20 03:41:47 UTC+0000
0xfffffa80010213d0:explorer.exe 1580 2256 40 1007 2019-12-20 03:46:49 UTC+0000
. 0xfffffa800108cb30:NOTEPAD.EXE 2724 1580 1 39 2019-12-20 03:47:53 UTC+0000
. 0xfffffa8000f02b30:NOTEPAD.EXE 2056 1580 1 226 2019-12-20 03:48:15 UTC+0000
. 0xfffffa8000eeb060:DumpIt.exe 2208 1580 2 45 2019-12-20 03:47:39 UTC+0000
. 0xfffffa800221ab30:NOTEPAD.EXE 1388 1580 1 39 2019-12-20 03:48:00 UTC+0000
. 0xfffffa800105ab30:VBoxTray.exe 2144 1580 13 138 2019-12-20 03:46:50 UTC+0000
. 0xfffffa80010b8060:notepad.exe 2744 1580 1 57 2019-12-20 03:47:21 UTC+0000
. 0xfffffa8000f97a20:WinRAR.exe 2924 1580 6 210 2019-12-20 03:47:13 UTC+0000
0xfffffa8001c775a0:winlogon.exe 416 360 3 108 2019-12-20 03:41:48 UTC+0000
0xfffffa8001c5d060:csrss.exe 368 360 8 173 2019-12-20 03:41:47 UTC+0000
0xfffffa8000f82060:winlogon.exe 2120 364 4 113 2019-12-20 03:46:42 UTC+0000
0xfffffa8000f7a630:csrss.exe 1988 364 7 219 2019-12-20 03:46:42 UTC+0000
. 0xfffffa8000eab790:conhost.exe 2612 1988 2 51 2019-12-20 03:47:40 UTC+0000
0xfffffa8002198b30:explorer.exe 1396 1180 30 758 2019-12-20 03:43:19 UTC+0000
. 0xfffffa8002206890:VBoxTray.exe 528 1396 12 139 2019-12-20 03:43:25 UTC+0000
Del listado de procesos llama la atención el uso de WinRAR. Mediante el plugin cmdline podremos ver los argumentos de la línea de comandos que se pasaron y por lo tanto el fichero que intentó descomprimirse en su momento: $ vol.py -f MemoryDump_Lab5.raw --profile=Win7SP1x64 cmdline -p 2924
Volatility Foundation Volatility Framework 2.6.1
************************************************************************
WinRAR.exe pid: 2924
Command line : "C:\Program Files\WinRAR\WinRAR.exe" "C:\Users\SmartNet\Documents\SW1wb3J0YW50.rar"
¿Será el fichero comprimido malware? Usando los complementos filescan y dumpfiles podemos extraer este archivo de la imagen de la memoria.
$ vol.py -f MemoryDump_Lab5.raw --profile=Win7SP1x64 filescan > filescan.txt
$ grep -E 'SW1wb3J0YW50.rar$' filescan.txt
0x000000003eed56f0 1 0 R--r-- \Device\HarddiskVolume2\Users\SmartNet\Documents\SW1wb3J0YW50.rar
$ vol.py -f MemoryDump_Lab5.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003eed56f0 -D . -n
Volatility Foundation Volatility Framework 2.6.1
DataSectionObject 0x3eed56f0 None \Device\HarddiskVolume2\Users\SmartNet\Documents\SW1wb3J0YW50.rar
Ahora tenemos el rar:
$ file file.None.0xfffffa80010b44f0.SW1wb3J0YW50.rar.dat
file.None.0xfffffa80010b44f0.SW1wb3J0YW50.rar.dat: RAR archive data, v5
$ unrar e file.None.0xfffffa80010b44f0.SW1wb3J0YW50.rar.dat
UNRAR 5.50 freeware Copyright (c) 1993-2017 Alexander Roshal
Extracting from file.None.0xfffffa80010b44f0.SW1wb3J0YW50.rar.dat
Enter password (will not be echoed) for Stage2.png:
The specified password is incorrect.
Pero no la contraseña, así que tendremos que encontrarla de alguna otra forma. Brujuleando con el plugin iehistory vemos que se intentaron abrir varias veces un fichero bmp con un nombre en base64:$ volatility -f MemoryDump_Lab5.raw --profile Win7SP1x64 iehistory | more
..........
**************************************************
Process: 1396 explorer.exe
Cache type "URL " at 0x28c5900
Record length: 0x100
Location: Visited: Alissa Simpson@file:///C:/Users/Alissa%20Simpson/Pictures/ZmxhZ3shIV93M0xMX2QwbjNfU3Q0ZzMtMV8wZl9MNEJfM19EMG4zXyEhfQ.bmp
Last modified: 2019-12-19 08:35:18 UTC+0000
Last accessed: 2019-12-19 08:35:18 UTC+0000
File Offset: 0x100, Data Offset: 0x0, Data Length: 0xec
**************************************************
Process: 1396 explorer.exe
Cache type "URL " at 0x28c5a00
Record length: 0x100
Location: Visited: Alissa Simpson@file:///C:/Users/Alissa%20Simpson/Pictures/ZmxhZ3shIV93M0xMX2QwbjNfU3Q0ZzMtMV8wZl9MNEJfNV9EMG4zXyEhfQ.bmp
Last modified: 2019-12-20 03:46:09 UTC+0000
Last accessed: 2019-12-20 03:46:09 UTC+0000
File Offset: 0x100, Data Offset: 0x0, Data Length: 0xec
**************************************************
Process: 1396 explorer.exe
Cache type "URL " at 0x28c5b00
Record length: 0x100
Location: Visited: Alissa Simpson@file:///C:/Users/SmartNet/SW1wb3J0YW50.rar
Last modified: 2019-12-19 08:36:16 UTC+0000
Last accessed: 2019-12-19 08:36:16 UTC+0000
File Offset: 0x100, Data Offset: 0x0, Data Length: 0xac
**************************************************
Process: 1396 explorer.exe
Cache type "URL " at 0x28c5c00
Record length: 0x100
Location: Visited: Alissa Simpson@file:///C:/Windows/AppPatch/ZmxhZ3shIV93M0xMX2QwbjNfU3Q0ZzMtMV8wZl9MNEJfNV9EMG4zXyEhfQ.bmp
Last modified: 2019-12-20 03:46:37 UTC+0000
Last accessed: 2019-12-20 03:46:37 UTC+0000
File Offset: 0x100, Data Offset: 0x0, Data Length: 0xdc
**************************************************
............
Como veis, ese base64 nos llevará a la primera flag:
$ echo ZmxhZ3shIV93M0xMX2QwbjNfU3Q0ZzMtMV8wZl9MNEJfM19EMG4zXyEhfQ | base64 -d
flag{!!_w3LL_d0n3_St4g3-1_0f_L4B_3_D0n3_!!}base64: invalid input
Que a la postre, resultará ser la password también del .rar (recordar cambiar el L4B_3 por L4B_5 tal y como se indicaba en la descripción):$ unrar e file.None.0xfffffa80010b44f0.SW1wb3J0YW50.rar.dat
UNRAR 5.50 freeware Copyright (c) 1993-2017 Alexander Roshal
Extracting from file.None.0xfffffa80010b44f0.SW1wb3J0YW50.rar.dat
Enter password (will not be echoed) for Stage2.png:
Extracting Stage2.png OK
All OK
Y ya tenemos la segunda flag.
Bonus
Otra forma de obtener el base64 era a través del plugin screenshot que, como su nombre indica, nos permite ver lo que se mostraba en el escritorio en el momento en que se realizó el volcado de memoria. Bueno, realmente las capturas de pantalla muestran las posiciones y los títulos de las ventanas sólo. Pero veréis que es suficiente:
$ vol.py -f MemoryDump_Lab5.raw --profile=Win7SP1x64 screenshot -D output/
Volatility Foundation Volatility Framework 2.6.1
Wrote output/session_0.WinSta0.Default.png
Wrote output/session_0.WinSta0.Disconnect.png
Wrote output/session_0.WinSta0.Winlogon.png
Wrote output/session_0.Service-0x0-3e7$.Default.png
Wrote output/session_0.Service-0x0-3e4$.Default.png
Wrote output/session_0.Service-0x0-3e5$.Default.png
Wrote output/session_0.msswindowstation.mssrestricteddesk.png
Wrote output/session_1.WinSta0.Default.png
Wrote output/session_1.WinSta0.Disconnect.png
Wrote output/session_1.WinSta0.Winlogon.png
Wrote output/session_2.WinSta0.Default.png
Wrote output/session_2.WinSta0.Disconnect.png
Wrote output/session_2.WinSta0.Winlogon.png
la mayoría de las imágenees están vacías, pero una (session_1.WinSta0.Default.png) nos muestra que Windows Photo Viewer estaba mostrando el archivo con el nombre de archivo base64:
Y la tercera flag?
Pues la imagen obtenida del rar decía que esa era la flag final mientras que la descripción del reto nos decía que había una tercera... Al momento de escribir este post todavía ando buscando por si acaso... ;)
Comentarios
Publicar un comentario