Exploitation d'un double free ...

Exploitation d'un double free ... - Divers - Programmation

Marsh Posté le 18-02-2003 à 23:36:21    

Bon, voila
 
J'ai un cours d'unif qui est un séminaire d'intrusion, le but c'est d'exploiter un bug d'un serveur pour gagner des privilèges. ( Au cas ou vous ne me croiriez pas http://www.info.ucl.ac.be/notes_de_cours/Ingi2591/ ).
 
Je doit exploiter un double free. J'ai plus ou moins compris comment ca marche ( quoique pas de bol apres la glib 2.2.5, il ont changé l'implementation de malloc ... ). Mais bon j'arrive a ecrire 4 bytes de mon choix a l'addresse de mon choix. A partir de la comment je peut executer mon shell code, ca je comprend pas ???
 

Reply

Marsh Posté le 18-02-2003 à 23:36:21   

Reply

Marsh Posté le 18-02-2003 à 23:50:49    


[:blueflag]
 
désolé je sais pas mais je suis très curieux de lire la suite


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 19-02-2003 à 00:10:54    

Bah en fait faut que t'écrabouilles EIP, ce registre pointant tjrs vers la ligne de code à éxecuter, l'@ à entrer sera celle du début de ton code malveillant.. Ce dernier sera écrit je n'sais comment, c'est toi qui voit..

Reply

Marsh Posté le 19-02-2003 à 00:13:05    

moi ce que j'ai jamais compris c l'asm :D
c koi? xterm& en asm? :/


Message édité par Suri le 19-02-2003 à 00:13:37

---------------
Suri.morkitu.org : Balades au coeur de la ville...
Reply

Marsh Posté le 19-02-2003 à 02:29:48    

Oaui mais je peut pas modifier EIP comme ca ... Je peut :
 * Charger n'importe quelle donne dans la heap
 * Ecraser 4 bytes n'importe ou en memoire et y mettre ce que je veut.
 

Reply

Marsh Posté le 19-02-2003 à 12:58:32    

En passant, j'ai trouver comment faire. Il suffit que j'écrase l'adresse de retour sur la pile ( se trouve tjs +- 0xbffff??? ) avec l'addresse de bon buffer dans la heap. Quand le prog appele return, il ne retourne pas d'ou il vient mais saute vers mon shellcode.
 
Mais mon shell code se trouve dans la heap ( donc dans le segment .data ) et ne devrait pas être executable ... Pourtant, ca passe. Je suppose que il ne verifie pas pour des raison de performance ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed