Avant de créer ce post j'ai essayé et lu tous les précédents Q & A mais ils ne semblent pas répondre à ma question exacte .J'ai pointé EIP à l'adresse ESP et mis mon shellcode dans ESP avec succès, mais je reçois un défaut SIGSEGV, Segmentation
Je fais aussi référence au guide sur le lien ci-dessous, mais il me manque quelque chose de crucial.
https://www.corelan.be/index.php/2009/07/19/exploit-writing-tutorial-part-1-stack-based-overflows/
Voici ce que je l'ai fait jusqu'à présent, il y a un dépassement de mémoire tampon dans le programme et j'ai compris l'offset (à l'aide des outils) pour EIP msf et EBP. Il est 267 et 263 respectivement.
Le programme me demande d'entrer "42" comme première entrée, puis il demande une autre question où je peux donner A * 264 pour déborder le tampon. Ci-dessous la charge utile que j'utilise, elle comprend la chaîne 42, un tas de chariots NOP (263 précisément), préservant la valeur EBP, le décalage mémoire ESP (0xbffff480) à écraser sur EIP et mon shellcode.
Après avoir exercerai ci-dessus, dans gdb quand je vois les valeurs de l'ESP et EIP sont les mêmes à savoir 0xbffff480
C'est là que je l'ai mis mon shellcode et EIP pointe cela. Mais, pourquoi mon shellcode n'est-il pas exécuté? Il échoue avec "Program received signal SIGSEGV, Segmentation fault".
Je ne sais pas où je vais mal. Donc, mon idée de pointage/écrasement EIP à la valeur ESP est faux? Ou quelque chose à faire avec mon shellcode? Comment puis-je écrire un simple shellcode/payload qui imprime quelque chose par exemple ou simplement vérifier si l'exécution est en cours?
Mise à jour:
J'ai utilisé le script checksec.sh pour vérifier si le binaire a NX activé et ci-dessous est la sortie que je suis arrivé.
RELRO STACK CANARY NX PIE RPATH RUNPATH FILE
Partial RELRO No canary found NX enabled No PIE No RPATH No RUNPATH output
Est-ce que cela signifie que je ne peux pas exécuter mon shellcode? Je dois juste me concentrer sur l'évitement/contournement de NX? - Le RELRO partiel fait-il une différence?
Le binaire est-il activé par DEP ou ASLR? – drum
Etes-vous sûr d'avoir un shellcode fonctionnel? – drum
Merci pour la réponse rapide @drum. Comment puis-je vérifier si elles sont activées? Aussi, comment puis-je tester mon shellcode, j'ai utilisé msfpayload pour en générer un et je suppose que cela fonctionne. 'code'msfpayload linux/x86/exec CMD =/bin/sh R | msfencode -b \ x00 \ xff -t c> shellcode – h4xorhead