J'ai reçu plusieurs questions sur comment je trouvais les codes de déverrouillages de certains MBRLock (un type de rançongiciel qui modifie le MBR de l'ordinateur afin qu'il affiche une note de rançon avant le démarrage de Windows.)
L'idée ici et de faire un tutoriel pour savoir comment récupérer son MBR pour ensuite pouvoir le déboguer.
le MBRlock dont je parle dans ce tutoriel vise la Russie et ressemble à ça:
En traduit ça donnerait:
C'est juste une tactique pour faire peur et que l'utilisateur téléphone, le programme ne supprime rien du tout.
Tout d'abord, ça paraît ridicule de dire ça, mais si vous déboguer un malware, faites-le dans une machine virtuelle (VM), ça tient du bon sens.
Ensuite, dans le cas de cette campagne de MBRLock russe, vous avez deux options: parcourir un faux site p.o.r.n.o et obtenir le fichier EXE hostile de cette manière en cliquant sur n'importe quel lien:
Ou bien visiter un site web infecté qui conduit à l'exploitation d'une vulnérabilité dans votre navigateur.
Par exemple ici en voici un qui exploite la CVE-2010-1885. (Help Center URL Validation Vulnerability) Une vulnérabilité qui permet d'exécuter des commandes arbitraires via une URL hcp:// malformé.
Le fichier xxxvideo.avi.exe a généralement une taille d'environ 61 Ko et utilise la plupart du temps une couche d'obfuscation en VB6 qui crée une nouvelle copie du processus, déchiffre les données, les écrit dans le nouveau processus, puis il lance le thread principal du nouveau processus. Un moyen rapide d'obtenire l'unpack est de définir des breakpoints sur CreateProcess/WriteProcessMemory, mais ici l'unpacking de la couche de VB6 n'est pas vraiment importante. (nous voulons juste le MBR).
Pour cela, la méthode facile dans olly c'est de poser un breakpoint sur tous les CreateFileA et de lancer l'exécution.
La routine d'écriture dans mon cas ressemble à ça:
Après avoir écrit la MBR il s'autosupprime, redémarre la machine puis fait un ExitProcess:
Un moyen rapide pour éviter de redémarrer suite a une mauvaise manipulation et d'utiliser HideToolz par Fyyre et d'activer la protection contre le redémarrage dans les options. HideToolz bloquera tout les appels système de ExitWindowsEx.
Pour faire un dump personnellement, je connais deux voies: Hiew et HDHacker. bien sûr, on aurait plus dumper la MBR depuis olly au moment ou il faisait le CreateFile, mais j'avais envie de vous présenter des outils.
Donc on va commencer par le premier: HDHacker qui est simple/léger et pratique pour dumper ça MBR en 2,3 clicks:
Le second programme s'appelle 'Hiew' c'est un éditeur hexadécimal qui s'utilise en console.
Pour visualiser ça MBR avec Hiew, démarrez-le comme ceci: hiew32 \\.\PhysicalDrive0
Ensuite, en mode hexadécimal, appuyez sur * (astérisque) pour entrer en mode sélection, puis sélectionnez le bloc infecté et appuyez à nouveau sur * pour sortir du mode sélection.
Puis appuyez sur F2 pour enregistrer le bloc hexadécimal sélectionné quelque part.
Sa taille doit être de 512 octets. Nous avons maintenant une copie de notre MBR infecté.
Pour le déboguer, nous utiliserons IDA, mais avant cela, vous avez d'abord besoin d'installer des packages additionnels pour celui-ci.
- Bochs (émulateur de CPU.)
- Python 2.6 (pour IDAPython.)
- IDAPython (pour pouvoir faire communiquer Bochs avec IDA.)
- Package MBR d'Elias (Pour créer son image bochs à charger dans IDA.)
Installez-les tous, puis créez votre fichier image avec mbr.py dans le Package d'Elias.
Ou ouvrez simplement l'invite de commande, assurez-vous que IDA est dans le chemin Set path=%path%;"C:\Program Files\IDA 6" par exemple et exécutez ida.bat du Package d'Elias, le fichier bat s'occupera du reste.
Glissez et déposez votre fichier bochsrc dans IDA, et vous pouvez commencer le débogage, si tout se charge correctement
Voilà, vous déboguez maintenant un MBR!
Voici une identification rapide de ce qu'il se passe au niveau de ma MBR hostile sur la vue en graph d'IDA:
Notre serial entré est comparé contre la valeur: M103917D
Si l'on essaye ce serial: le système d'exploitation se lance.
Voilà, c'est déjà la fin!
Copyright (C)- xtx Team (2021)