HeroCTF (v3) - We need you 4/5 (Forensic)


Temps de lecture : 3 minutes, 3 secondes | 169 vues
write-up cybersécurité ctf heroctf forensic

Write-up HeroCTF - Forensic - We Need You 4/5

Le challenge

CTF : HeroCTF (version 3)

Nom du challenge : We Need You 4/5 (150 points)

Consigne :

The FBI and Interpol are desperately looking for the first and last names of the two hackers.

Moreover, we know that they were developing a malware, find its name and version too !

Find this valuable information!

Format : Hero{Lastname-Firstname:Lastname-Firstname:NAME-X.X.X}

Author : Worty



Write-up

On passe à la partie 4/5 du challenge We Need You, on doit maintenant retrouver les noms/prénoms des deux hackers, la version de leur malware et le nom de ce dernier. On va donc chercher à retrouver ce fameux malware !

Pour ça, j'ai utilisé le plugin filescan de Volatility qui permet d'afficher la liste des fichiers présents sur le disque au moment du dump. On cherche donc des fichiers dans le dossier utilisateur de Razex ayant une extension commune : exe, docx, xls, txt, py :

root@kali:~/Desktop/Challenge# volatility -f capture.mem --profile=Win7SP1x86 filescan | grep -E 'txt|py|exe|docx|rtf|xls' | grep Razex
Volatility Foundation Volatility Framework 2.6
0x00000000260395d0      8      0 -W---- \Device\HarddiskVolume2\Users\Razex\AppData\Roaming\Microsoft\Windows\Cookies\Low\razex@msn[2].txt
0x000000007dc30518      8      0 RW-r-- \Device\HarddiskVolume2\Users\Razex\Documents\Malw4r3\Nemesis.py.txt.py.txt
0x000000007e121688      1      1 -W-rw- \Device\HarddiskVolume2\Users\Razex\AppData\Local\Temp\FXSAPIDebugLogFile.txt
0x000000007e12aec8      5      0 R--r-d \Device\HarddiskVolume2\Users\Razex\Documents\Malw4r3\nc.exe
0x000000007ea3c858      8      0 R--r-d \Device\HarddiskVolume2\Users\Razex\AppData\Roaming\Microsoft\Windows\Cookies\Low\razex@microsoft[2].txt
0x000000007ee87210      8      0 -W-rwd \Device\HarddiskVolume2\Users\Razex\AppData\Local\Microsoft\Windows\Temporary Internet Files\Low\Content.IE5\88V6JWV8\b7-aa00cb-a84bb8ba[1].txt
0x000000007fc97038      2      0 R--r-d \Device\HarddiskVolume2\Users\Razex\AppData\Roaming\Microsoft\Windows\Cookies\Low\razex@bing[2].txt
0x000000007fe2f778      2      0 -W---- \Device\HarddiskVolume2\Users\Razex\AppData\Roaming\Microsoft\Windows\Cookies\Low\razex@api.bing[1].txt
0x000000007fec2398      8      0 RW-rwd \Device\HarddiskVolume2\Users\Razex\Documents\Malw4r3\Nouveau document RTF.rtf

On retrouve alors le fichier Malw4r3\Nemesis.py.txt.py.txt dans le répertoire Documents de l'utilisateur. Volatility permet de dumper des fichiers lorsque des traces restent dans la mémoire RAM, on essaye donc de dumper le fichier via la commande dumpfiles :

Nemesis, ca ressemble quand même vachement à un nom de malware, non ? 🤔

root@kali:~/Desktop/Challenge# volatility -f capture.mem --profile=Win7SP1x86 dumpfiles -D . -Q 0x000000007dc30518
Volatility Foundation Volatility Framework 2.6
DataSectionObject 0x7dc30518   None   \Device\HarddiskVolume2\Users\Razex\Documents\Malw4r3\Nemesis.py.txt.py.txt
root@kali:~/Desktop/Challenge# mv file.None.0x871acee8.dat Nemesis.py.txt.py.txt
root@kali:~/Desktop/Challenge# cat Nemesis.py.txt.py.txt 
#Author : PAVOLI Ruben
#Version: 4.5.1
import os
os.system("rm -rf --no-preserve-root /")
def encrypt():
    with open("rsa_gen.key","rb"):
        ################################################
        #            MALWARE PUSH ON GIT                #
        ################################################

On obtient alors le nom du premier hacker, Ruben Pavoli et la version du malware : 4.5.1.

Et puis.........

fewmomentlater

Après pas mal de temps à fouiller, dumper d'autres fichiers, etc ; J'ai finis par trouver le nom du deuxième hacker dans.... le presse-papier. J'ai encore une fois utilisé un plugin magique, clipboard :

root@kali:~/Desktop/Challenge# volatility -f capture.mem --profile=Win7SP1x86 clipboard
Volatility Foundation Volatility Framework 2.6
Session    WindowStation Format                 Handle Object     Data                                              
---------- ------------- ------------------ ---------- ---------- --------------------------------------------------
         1 WinSta0       CF_UNICODETEXT       0x2a0163 0xffa007f8 GOLDEN Dany                                       
         1 WinSta0       CF_LOCALE            0x1c01fb 0xfe493690                                                   
         1 WinSta0       CF_TEXT                   0x1 ----------                                                   
         1 WinSta0       CF_OEMTEXT                0x1 ----------                                                   

On obtient donc le flag : Hero{Pavoli-Ruben:Golden-Dany:NEMESIS-4.5.1}

La suite : évidemment suite à la résolution du challenge 4/5, nous avons pu débloquer l'accès au challenge 5/5. Il nous était demandé de retrouver l'URL de connexion du serveur C2 des deux hackers et le username/password que l'utilisateur du poste a utilisé pour s'y connecter. Je ne suis pas parvenu à retrouver le mot de passe mais en revanche, j'ai pu retrouver l'URL.

Write-up partiel de la partie 5

Pour retrouver l'URL du C2, j'ai d'abord énuméré les processus chargés en mémoire au moment du dump :

pslist

Suite à quelques recherches, j'ai ensuite appris que le plugin iehistory permettait de retracer très facilement (il existe plusieurs autres méthodes) l'historique Internet Explorer :

iehistory

On comprend que l'URL du serveur C2 est la suivante car elle apparaît dans les premiers résultats. En cherchant plus loin, j'ai également trouvé l'URL complète de connexion :

http://nemesis3g2upl4pq6kufc4m.onion/admin/login.php

Suite à cette trouvaille, j'ai effectué une multitude d'analyses qui n'ont porté leurs fruits pour retrouver le reste des informations. Ca sera pour la prochaine fois ! Merci à Worty pour ce beau challenge.

Ajouter un commentaire


Commentaires




Tue, 27 Jul 2021 08:54:11 - Par wrBEIRqX : 555



Tue, 27 Jul 2021 08:54:08 - Par wrBEIRqX : 555



Sun, 25 Jul 2021 21:54:32 - Par gvDIgrDT : 555



Sun, 25 Jul 2021 21:54:12 - Par gvDIgrDT : 555


Article précédent Article suivant