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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C++] Socket + DLL Injection
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C++] Socket + DLL Injection  (Leído 2,976 veces)
carbon1

Desconectado Desconectado

Mensajes: 12


Ver Perfil
[C++] Socket + DLL Injection
« en: 26 Mayo 2012, 02:34 am »

Hola a todos, los comento a continuación mi tema:
Tengo un proceso el cual crea un socket que se conecta a un servidor, e inyecto una dll. Quisiera saber (si es posible) utilizar algún método para que desde mi DLL puedan enviarse paquetes al servidor que está conectado el proceso (sabiendo el IP y puerto) desde ese mismo socket, que no cree otro mi DLL.

Gracias desde ya.


En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: [C++] Socket + DLL Injection
« Respuesta #1 en: 26 Mayo 2012, 02:48 am »

Si, si la DLL la inyectas en tu mismo proceso es sencillo, simplemente tienes que pasarle el handle del socket a la DLL.

Si la DLL la inyectas en otro proceso con pasar el handle creo que no sirve, puedes utilizar DuplicateHandle :


Código:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724251(v=vs.85).aspx

La utilicé para una cosa hace tiempo que al final no sirvió, pero no porque la API no funcionara, debería de ir sin problemas :P .

Ahora que leí la información de la msdn vi que no sirve para duplicar el handle de un socket, o al menos no está listado ese uso ahí. Encontré este hilo, seguro te sirve para orientarte si lo que quieres hacer es compartir el socket de tu exe y la dll y estos pertenecen a distintos procesos:

Código:
http://social.msdn.microsoft.com/Forums/zh/vcgeneral/thread/c04bd359-5653-4729-a26a-ce0bec2c091e
Código:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms741565(v=vs.85).aspx

Saludos


« Última modificación: 26 Mayo 2012, 02:56 am por [Zero] » En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
carbon1

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: [C++] Socket + DLL Injection
« Respuesta #2 en: 26 Mayo 2012, 16:11 pm »

Gracias por la respuesta. Mira, por si no quedó claro, a un proceso el cual crea un socket, inyecto una dll con la idea de que esa dll use el mismo socket del proceso al cual se inyecta para enviar paquetes al servidor.
Ahora, por lo que tu me dices, primero debería saber el handle del socket del proceso, como podría hacer esto?

Gracias nuevamente.

P.D: Es winsock.
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: [C++] Socket + DLL Injection
« Respuesta #3 en: 26 Mayo 2012, 17:49 pm »

Si el proceso no es tuyo (osea, si no programaste la aplicación en la que te inyectas) la forma más fácil de obtener el handle creo que es hookear alguna API que use ese handle, como send o recv. Hookeas una API de esas, y obtienes fácil el handle del socket, ya que es uno de los argumentos que se le pasan.

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
carbon1

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: [C++] Socket + DLL Injection
« Respuesta #4 en: 27 Mayo 2012, 21:54 pm »

Te agradecería si me dejaras un ejemplo, ya que todos los que he encontrado están usando el compilador de microsoft y vs, yo uso mingw.

Gracias nuevamente.
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: [C++] Socket + DLL Injection
« Respuesta #5 en: 29 Mayo 2012, 14:10 pm »

Aquí el paper de MazarD sobre API Hooking:
Código:
http://docs.rtfm.us/IT/Uncategorised/apihooking.pdf

Aquí tienes un ejemplo de cómo hookear a recv() y a send():
Código:
http://foro.elhacker.net/analisis_y_diseno_de_malware/source_code_msnnightmare-t145854.0.html

Es para VC pero no creo que puedas tener problemas portándolo, sinó, piensa en usar VC, es el mejor compilador para estas cosas.

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
carbon1

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: [C++] Socket + DLL Injection
« Respuesta #6 en: 31 Mayo 2012, 02:15 am »

Muchas gracias! Intentaré con todo lo que me has brindado y comento luego.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No-Ip Y socket
Programación Visual Basic
n3ts4mura1 0 1,257 Último mensaje 15 Agosto 2006, 20:20 pm
por n3ts4mura1
Raw socket
Programación Visual Basic
yeikos 3 2,449 Último mensaje 28 Agosto 2007, 15:53 pm
por elmaro
CAST EXEC en sql injection(Automated Sql Injection)
Nivel Web
EvilGoblin 2 5,023 Último mensaje 11 Julio 2010, 22:25 pm
por EvilGoblin
Multithread Socket (Thread per Socket)not Complete « 1 2 »
Programación Visual Basic
ntaryl 12 8,927 Último mensaje 10 Febrero 2012, 18:42 pm
por ntaryl
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines