Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 12/12/2012, à 18:44

compte supprimé

[Résolu] Simulation d'un débordement de tampon sur moi-même.

Bonsoir à tous,

Comme le suggère si bien le titre du sujet, j'essaie de tester un débordement de tampon en allouant de la mémoire dans un petit programme.

Sauf que, grand classique tant attendu, j'obtiens:

Segmentation fault (core dumped)

On s'y serait attendu étant donné que je fais exprès d'écrire après la limite de mon allocation.
Je fais comment pour désactiver cette sécurité?
Déjà à la compilation avec gcc, j'utilise l'option: -fno-stack-protector.

Merci.

Dernière modification par ChrisLeturc (Le 14/12/2012, à 12:59)

#2 Le 12/12/2012, à 19:38

Spitfire 95

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

C'est pas le kernel qui bloque les buffer overflows ?


Trisquel GNU/Linux 6.0 / Fedora 19 & rawhide.
joueur ryzom et wesnoth
Développeur livewallpaper
Membre déserteur et traître de la brigade des S.

Hors ligne

#3 Le 12/12/2012, à 20:02

compte supprimé

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

En effet, ce serait plus cohérent et beaucoup plus sûr.. ^^
J'me sens plus rassuré.

Mais.. des suggestions pour le contourner? (sans avoir à passer en root bien sûr. tongue)
C'est le petit défi de la soirée.

Une des solutions serait de trouver une faille dans le kernel, non?
Y en a forcément, non? Je suis actuellement à la 12.04..

Dernière modification par ChrisLeturc (Le 12/12/2012, à 20:06)

#4 Le 12/12/2012, à 20:42

Spitfire 95

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

Il y en a probablement quelques unes, regarde les rapports de bug sur le noyau, il y en a peut-être concernant la sécurité pouvant t’intéresser. Les failles connues sont rapidement corrigées généralement.
Même en lançant l'appli avec le malloc en root ça va bloquer.


Trisquel GNU/Linux 6.0 / Fedora 19 & rawhide.
joueur ryzom et wesnoth
Développeur livewallpaper
Membre déserteur et traître de la brigade des S.

Hors ligne

#5 Le 12/12/2012, à 23:21

ssdg

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

Oh lalalala....

Le kernel empêche surtout un programme de faire des écritures en mémoire en dehors de l'espace qui lui est réservé. Mais rien n'empeche de faire des dépassements de tempons. (tant qu'ils ne sont pas trop grands)

C'est au programme de ne pas faire de lectures plus grandes que l'espace mémoire qui est réservé à la donnée lue. Autrement la donnée lue "dépasse" et peut aller écraser une autre variable du programme ou remplacer du code executable (encore que là, il faut que le programme fasse des choses particulières si je me souvient bien)

Qu'un programme soit lancé en root ou non ne change pas grand chose si je me souvient bien, un programme même lancé en root ne peux sortir de son espace mémoire (sauf à aller lire le fichier correspondant à la mémoire dans /dev je crois)

Si tu veux faire un dépassement de mémoire "simple", tu peux allouer une structure comprenant un tableau de caractères d'une taille N et quelques entiers, booléens, etc... (dans cet ordre) et faire permettre une saisie au clavier dans ce tableau. Si tu ne protège pas ta lecture avec une taille max, alors lorsque tu saisira plus que la taille du tableau, tes saisies iront dans la suite de la structure.

Autrement, j'imagine qu'il va falloir commencer à charger des librairies dynamiquement ou jouer avec des pointeurs de fonction... (mais là, mes compétences en C commencent à faiblir)


s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.

Hors ligne

#6 Le 12/12/2012, à 23:38

telliam

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

le plus simple est de faire un tableau en pile et d'écrire dedans en espérant corrompre une zone mémoire qui est utilisé comme adresse de code.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

En ligne

#7 Le 13/12/2012, à 15:00

compte supprimé

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

Merci pour ces réponses.

J'irai consulter ces rapports de bugs.
Si j'ai des soucis, je sais o`u les poster. ^^

Dernière modification par ChrisLeturc (Le 13/12/2012, à 15:57)

#8 Le 13/12/2012, à 15:11

alphascorpii

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

Moi j'utiliserai le sirop de grenadine ou de fraise et des fringues qui craignent pas. lol lol lol

Bon j'étais passage seulement hein ! Maintenant je m'en vais.


Desktop (perso) : Ubuntu 12.04  sur montage personnel/intel P8600/Ram 4Go/Nvidia 9600GT, 1 SSD, 2 DD

Hors ligne

#9 Le 13/12/2012, à 19:51

grim7reaper

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

Comme déjà dit, c’est un comportement normal (le SIGSEGV).
Si tu veux simuler juste un buffer overflow, bravo tu a réussi. Fin de l’histoire.

Si, comme je le pense, tu veux comprendre comment les gens exploitent les buffer overflow pour gagner des droits sur un système ou faire une attaque, alors il va falloir te documenter un peu car c’est pas si simple ^^
S’il suffisait de faire uniquement un buffer overflow n’importe comment, au pif comme un bourrin ça se saurait tongue
Non, il y a un minimum de logique derrière (c’est quoi la pile d’appel ? Comment ça fonctionne une fonction en assembleur ? etc) et une fois que tu comprends ça, avec un peu de technique (écriture de shellcode) tu peux en reproduire (sur des petits programmes que tu écris toi-même par exemple).
Pour avoir un peu d’explication sur le sujet tu peux lire ça ou ça.

Une fois que tu as compris ça et que tu trouves une faille, il « suffit » que tu aies suffisamment de créativité (et de connaissances pratiques et théoriques) pour écrire un exploit.

Hors ligne

#10 Le 13/12/2012, à 23:02

alphascorpii

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

Je sens que celui-là va être grand !


Desktop (perso) : Ubuntu 12.04  sur montage personnel/intel P8600/Ram 4Go/Nvidia 9600GT, 1 SSD, 2 DD

Hors ligne

#11 Le 14/12/2012, à 12:11

compte supprimé

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

J'ai appris le NASM(pour la famille des process x86 d'Intel) après j'ai regardé pour la syntaxe des autres langages assembleurs et c'est sensiblement la même.(je passe le TASM, MASM, AT&T, etc.)

Faudrait que j'apprenne à écrire les shellcodes.
Dans mon programme, j'ai justement copié-collé un shellcode d'un bouquin et je l'ai injecté dans mon débordement de tampon. Pas n'importe comment, bien sûr. ^^
J'utilise des NOP pour choper l'adresse de retour. (en à peu près mais théoriquement, ça devait marcher! Sauf que, y a cette sécurité qui m'en empêche et je sais pas comment la contourner.)

Mais pour le shellcode c'est pas très compliqué, ce sont mes instructions que j'écrirais en ASM mais à la place je les écris en binaire.
Y aurait pas justement un dico des équivalents: instruction ASM<=>instruction écrite en binaire?
En gros ça revient simplement à obtenir la notice d'un compilateur d'un langage assembleur?


PS: merci pour les liens, grim7reaper!
Je vais lire tout ça, avec un sirop de grenadine et des fringues qui craignent pas trop.. promis. (alphascorpii,  j'ai très bien compris le "foutage de gueule" mais  si tu pouvais m'apprendre quelque chose de plus intéressant, je suis preneur! wink )

Dernière modification par ChrisLeturc (Le 14/12/2012, à 12:23)

#12 Le 14/12/2012, à 12:26

alphascorpii

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

dans les années 1970, sur un plateau de télévision, le chanteur/guitariste Frank Zappa se faisait interroger par un vétéran de la Seconde Guerre mondiale,
doté d’une jambe de bois, et assez agressif.
Celui-ci interpella Zappa :
– Si j’en juge par vos cheveux longs, vous êtes une fille ?
Et Zappa de répondre :
– Si j’en juge par votre jambe de bois,vous êtes une table ?


Desktop (perso) : Ubuntu 12.04  sur montage personnel/intel P8600/Ram 4Go/Nvidia 9600GT, 1 SSD, 2 DD

Hors ligne

#13 Le 14/12/2012, à 12:50

grim7reaper

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

@alphascorpii : je ne sais pas trop ce que tu cherches, mais si tu tiens à faire du hors-sujet à chaque message, tu devrais faire ce que tu dis. À savoir :

alphascorpii a écrit :

Maintenant je m'en vais.

Hors ligne

#14 Le 14/12/2012, à 12:51

compte supprimé

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

-.-'

Sinon c'est pile ce qu'il me fallait..
Encore merci.

Dernière modification par ChrisLeturc (Le 14/12/2012, à 12:53)

#15 Le 14/12/2012, à 12:52

grim7reaper

Re : [Résolu] Simulation d'un débordement de tampon sur moi-même.

De rien smile
Si tout est Ok, tu pourras passer ton topic en résolu pour aider les futures recherches wink

Hors ligne

Haut de page ↑