Convertissez les fichiers ELF standard en codes shellons autonomes. Veuillez lire la documentation suivante et consulter les exemples pour que ce projet fonctionne correctement
Github
PYPI
pip install py_shelfLa bibliothèque Python analyse l'elfe et crée un format de fichier relocable simple appelé shelf (shellcode elfe).
Le Mini chargeur est inséré comme point d'entrée pour l'étagère.
Le mini chargeur chargera et déplacera l'étagère, puis il l'exécutera. Il n'y a pas d'exigences particulières, la bibliothèque contienne les mini chargeurs et ressources compilés.
Le diagramme ci-dessous explique le format (fonctionne uniquement dans les navigateurs)
diagramme de classe
Shellcodeentrypoint - |> Miniloader
ShellCodeEntryPoint: shellcode contenant une logique de chargeur pré-mini
Miniloader - |> Table de relocalisation
Miniloader: contenir toute la logique pour analyser la table de relocalisation
Miniloader: entièrement indépendant du système d'exploitation
Table de relocalisation - |> crochets en option
Tableau de relocalisation: contenir la table requise pour la relocalisation d'exécution de ShellCode
Crochets facultatifs - |> étagère
Crochets facultatifs: en savoir plus sur les crochets dans la documentation ci-dessous
Crochets facultatifs: cette section est facultative et n'existe que si les crochets sont utilisés
Étagère: elfe shellcode - c'est le binaire compilé que nous convertissons en shellcode
Étagère: ce binaire est dépouillé dans uniquement des opcodes
Étagère: entièrement relocable à l'aide du tableau de relocalisation
Ce projet est destiné à convertir ELF en codes de shell indépendants du système d'exploitation. Par conséquent, le chargeur n'a jamais alloué la mémoire et le format shellcode n'est pas emballé. Vous pouvez simplement l'exécuter, par exemple ...
(( void ( * )()) shellcode )();Suivez les exemples ci-dessous
Certains drapeaux de compilation sont nécessaires pour que cela fonctionne correctement. Vous devez compiler le binaire avec -fpie et -statique jetez un œil aux exemples fournis ci-dessous (MakeFile).
ShellCode est un binaire dépouillé sans symboles et aucune information ELF, uniquement Opcodes, afin de faire du ShellCode Shellcode, cette bibliothèque nécessite un binaire avec des informations ELF. Alors assurez-vous que vous ne dépouillez pas le binaire avant d'utiliser cette bibliothèque
Simplified faire la commande de MIPS Big Endian
gcc example . c - fno - stack - protector - fPIE - fpic - static - nostartfiles -- entry = main - o binary . out
python - m shelf -- input binary . out Makefile
Exemple.c
Vous pouvez utiliser le chargeur Shellcode fourni pour tester vos codes shell
qemu-mips ./shellcode_loader ./myshellcode.outIl est conseillé d'utiliser la bibliothèque de chargeur d'étagère pour tester votre shellcode ici, vous pouvez en savoir plus à ce sujet: Documentation du chargeur d'étagère
Pour les liens suivants, fonctionne uniquement sur la page GitHub