Salut ! Je suis en train d'apprendre à porter un exploit statique en python vers du Ruby pour le rendre utilisable par Metasploit de façon dynamique. (Choix de l'adresse IP, du payload etc...)
Je me base sur ce tutoriel qui m'a permis d'apprendre pour poser ma question. Le buffer overflow de l'exploit à la forme suivante : [Offset][EIP][Padding][Shellcode]. Mon problème se situe à la partie Shellcode.
Dans l'exemple du tutoriel, l'exploit en python à 338 Bytes de taille pour son shellcode. Tandis que pour l'exploit en Ruby la taille du shellcode est de 444bytes. Je ne comprends pas cette différence de taille. Dans ma logique la taille devrai être la même.
Un ami m'a suggéré que à cause de la taille réservé pour l'encodage des variables. Cette taille ne serait pas la même pour Python et Ruby.
Est-ce exact ce que m'a suggéré mon ami ?
Si oui, pouvez vous m'expliquer de manière à ce que je soit capable de retomber sur 444bytes avec le calcul adéquat ?
J'ai retourné Google et là je sèche vraiment....
Pour vous aider voici les différentes tailles des buffers :
------ Python Exploit ---- Size Shellcode / payload : 338 Bytes Offset : 230 bytes EIP -> JMP ESP : 4 bytes Padding ESP : 15 bytes Total Buffer Size : 587
------ MSF Exploit ---- Size Shellcode / Payload : 444 bytes offset : 230 bytes EIP -> JMP ESP : 4 bytes Padding ESP : 15 Bytes Total Buffer Size : 693 Bytes
En vous remerciant par avance
Je me base sur ce tutoriel qui m'a permis d'apprendre pour poser ma question. Le buffer overflow de l'exploit à la forme suivante : [Offset][EIP][Padding][Shellcode]. Mon problème se situe à la partie Shellcode.
Dans l'exemple du tutoriel, l'exploit en python à 338 Bytes de taille pour son shellcode. Tandis que pour l'exploit en Ruby la taille du shellcode est de 444bytes. Je ne comprends pas cette différence de taille. Dans ma logique la taille devrai être la même.
Un ami m'a suggéré que à cause de la taille réservé pour l'encodage des variables. Cette taille ne serait pas la même pour Python et Ruby.
Est-ce exact ce que m'a suggéré mon ami ?
Si oui, pouvez vous m'expliquer de manière à ce que je soit capable de retomber sur 444bytes avec le calcul adéquat ?
J'ai retourné Google et là je sèche vraiment....
Pour vous aider voici les différentes tailles des buffers :
------ Python Exploit ---- Size Shellcode / payload : 338 Bytes Offset : 230 bytes EIP -> JMP ESP : 4 bytes Padding ESP : 15 bytes Total Buffer Size : 587
------ MSF Exploit ---- Size Shellcode / Payload : 444 bytes offset : 230 bytes EIP -> JMP ESP : 4 bytes Padding ESP : 15 Bytes Total Buffer Size : 693 Bytes
En vous remerciant par avance
Commentaire