Ce programme est conçu pour charger du shellcode 32 bits ou 64 bits et permettre l'exécution ou le débogage. De plus, il peut produire des fichiers PE exécutables basés sur le shellcode souhaité. Cela peut faciliter les tests car le binaire de sortie peut être utilisé par des outils d'ingénierie inverse standard (c'est-à-dire IDA Pro (même gratuit) et des débogueurs).
Les binaires de version sont disponibles. Vous pouvez voir une démo de cet outil sur YouTube
Ce programme propose plusieurs options pour travailler avec votre shellcode, organisées en fonction de leur utilisation.
Arguments mondiaux
Shellcode de débogage
Création d'un fichier PE
Le seul argument obligatoire est de fournir le chemin d’accès au fichier contenant votre shellcode. Pour ce faire, utilisez l'argument -f
. Celui-ci sera copié en mémoire et exécuté. De plus, vous pouvez utiliser l'argument -ep
pour ajuster le point d'entrée de X octets. Cela permet d'utiliser un shellcode qui ne commence pas l'exécution au début du blob binaire. Enfin, -bp
détermine si un point d'arrêt doit être inséré avant le shellcode. Cela se fera via un octet 0xCC
, qui est un INT3. Cela vous permet d'exécuter le programme sous un débogueur, en définissant les arguments de ligne de commande de manière appropriée. L'insertion d'un point d'arrêt permettra au débogueur d'interrompre l'exécution avant l'exécution du shellcode. Si vous n'exécutez pas sous un débogueur, n'insérez pas de point d'arrêt car cela entraînerait le blocage du programme.
Vous pouvez utiliser l'argument -pe
pour produire un fichier PE qui encapsule essentiellement le shellcode. Le shellcode est placé dans la section .text
. Le point d'entrée est défini comme le début de la section, sauf si l'argument -ep
est utilisé. Cet argument définira un décalage par rapport au début de la section et sera utilisé pour mettre à jour le point d'entrée des fichiers PE (c'est-à-dire le champ AddressOfEntry). De plus, l'argument -64
peut être utilisé pour générer un fichier PE 64 bits, probablement pour un shellcode 64 bits. Le fichier PE résultant peut être analysé via des outils d'ingénierie inverse courants tels que IDA Pro, Ghidra ou un débogueur tel que x32dbg/WinDbg/etc.
Si l'argument -d est utilisé, SCLauncher créera une nouvelle section nommée .content et copiera le contenu du fichier dans cette section. Cette section suivra la section .text .
Si vous disposez d'un shellcode qui n'est pas déjà dans un état binaire, vous pouvez utiliser CyberChef pour convertir ce shellcode et le télécharger sous forme de fichier.
Voici un exemple de shellcode d'Exploit-DB qui a été converti en contenu binaire sur CyberChef.
Ce programme est destiné à être compilé avec le compilateur C/C++ de Microsoft. Vous pouvez utiliser l' Developer Command Prompt
après avoir installé la version gratuite/communautaire pour compiler à l'aide cl
. Un exemple de cette commande serait :
cl sclauncher.c
Cela produira l'exécutable sclauncher.exe
.