
Déboguez rapidement le shellcode extrait lors de l'analyse de malwares
BlobRunner est un outil simple pour déboguer rapidement le shellcode extrait lors de l'analyse de logiciels malveillants.
BlobRunner alloue de la mémoire pour le fichier cible et saute à la base (ou au décalage) de la mémoire allouée. Cela permet
à un analyste de déboguer rapidement les artefacts extraits avec un minimum de surcharge et d'effort.

Pour utiliser BlobRunner, vous pouvez télécharger l'exécutable compilé depuis la page des versions ou construire le vôtre en suivant les étapes ci-dessous.
La compilation de l'exécutable est simple et relativement indolore.
Prérequis
Étapes de compilation
cl blobrunner.c
La compilation de la version x64 est pratiquement identique à ci-dessus, mais utilise simplement les outils x64.
cl /Feblobrunner64.exe /Foblobrunner64.out blobrunner.c
Pour déboguer :
BlobRunner.exe shellcode.bin
Déboguer dans le fichier à un décalage spécifique.
BlobRunner.exe shellcode.bin --offset 0x0100
Déboguer dans le fichier sans pause avant le saut. Attention : Assurez-vous d'avoir un point d'arrêt défini avant le saut.
BlobRunner.exe shellcode.bin --nopause
Le paramètre optionnel --jit peut être utilisé pour déboguer le shellcode avec le débogueur Just-In-Time (JIT) configuré.
Pour déclencher le débogueur - BlobRunner supprime l'accès en exécution de la région mémoire nouvellement allouée. Cela provoque la levée
d'une exception AccessViolation (0xC0000005) lors de la tentative d'exécution du shellcode chargé.
Les instructions pour configurer le débogueur JIT sur Windows se trouvent ici. Pour x64Dbg, voir setjit ou setjitauto.
Exemple :
BlobRunner.exe shellcode.bin --jit
Une fois le débogueur chargé, accordez l'accès en exécution à la région. En utilisant x64Dbg, vous pouvez exécuter la commande setpagerights en utilisant l'adresse retournée par BlobRunner.
setpagerights <region>, ExecuteReadWrite
L'assembleur inline n'est pas supporté par le compilateur x64, donc pour prendre en charge le débogage du shellcode x64, le chargeur crée un thread suspendu qui vous permet de placer un point d'arrêt à l'entrée du thread, avant que le thread ne soit repris.
Le processus est pratiquement identique au débogage local du shellcode - à l'exception que vous devez copier le fichier shellcode vers le système distant. Si le fichier est copié dans le même chemin d'où vous exécutez win32_remote.exe, vous devez utiliser le nom du fichier pour le paramètre. Sinon, vous devrez spécifier le chemin du fichier shellcode sur le système distant.
Vous pouvez rapidement générer des échantillons de shellcode en utilisant l'outil Metasploit msfvenom.
Génération d'une charge utile exec Windows simple.
msfvenom -a x86 --platform windows -p windows/exec cmd=calc.exe -o test2.bin