Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: daryo en 21 Junio 2014, 22:06 pm



Título: ¿que usos tiene la inyeccion dll?
Publicado por: daryo en 21 Junio 2014, 22:06 pm
acabo de aprender sobre como hacer esto y hasta ahora conozco dos usos:
-saltar firewall
-bypass uac

pero que mas se puede hacer :P


Título: Re: ¿que usos tiene la inyeccion dll?
Publicado por: x64core en 24 Junio 2014, 03:56 am
acabo de aprender sobre como hacer esto y hasta ahora conozco dos usos:
-saltar firewall
-bypass uac

pero que mas se puede hacer :P
Esto no realmente significa que injectando una dll se puede saltar la UAC,Firewall,etc. Si se habla
de inyección de DLL en general viene casí ser lo mismo que ¿Porqué el uso de una DLL? simplemente tener
poder ejecutar tu código en el proceso remoto de una manera más modular.


Título: Re: ¿que usos tiene la inyeccion dll?
Publicado por: daryo en 24 Junio 2014, 04:11 am
Esto no realmente significa que injectando una dll se puede saltar la UAC,Firewall,etc. Si se habla
de inyección de DLL en general viene casí ser lo mismo que ¿Porqué el uso de una DLL? simplemente tener
poder ejecutar tu código en el proceso remoto de una manera más modular.

gracias por la respuesta

 hare mi pregunta un poco mas especifica , ¿puedo inyectando codigo en un programa de esta forma cambiar su funcionamiento y registrar lo que sucede en este?

¿que tendria que hacer para poder hacer esto?


Título: Re: ¿que usos tiene la inyeccion dll?
Publicado por: engel lex en 24 Junio 2014, 04:16 am
wow! es un cambio de pregunta drastico! XD

si esperabas que se entendiera eso desde el inicio ibas muy mal XD


Título: Re: ¿que usos tiene la inyeccion dll?
Publicado por: x64core en 24 Junio 2014, 04:33 am
gracias por la respuesta

 hare mi pregunta un poco mas especifica , ¿puedo inyectando codigo en un programa de esta forma cambiar su funcionamiento y registrar lo que sucede en este?
Es posible.

¿que tendria que hacer para poder hacer esto?
Analizar el programa, todo depende de qué es lo que se quiera interceptar del programa. Talvez siendo más especifico
de qué es lo que quieres interceptar o algo, no creo que alguien se le resuelva la duda con esa respuesta pero debido
a que las posibilidades son miles no podria considerar todo.


Título: Re: ¿que usos tiene la inyeccion dll?
Publicado por: daryo en 24 Junio 2014, 04:58 am
wow! es un cambio de pregunta drastico! XD

si esperabas que se entendiera eso desde el inicio ibas muy mal XD


si lo iba a encaminar por ahi xD!

Citar
Analizar el programa, todo depende de qué es lo que se quiera interceptar del programa. Talvez siendo más especifico
de qué es lo que quieres interceptar o algo, no creo que alguien se le resuelva la duda con esa respuesta pero debido
a que las posibilidades son miles no podria considerar todo.

por ejemplo las teclas que se presionen sin necesidad de usar apis como getasinkeystate


Título: Re: ¿que usos tiene la inyeccion dll?
Publicado por: Vaagish en 24 Junio 2014, 05:34 am
Creo que para empezar, podrías probar con SetWindowsHookEx.. luego, con practica harás tus métodos mas originales  :P

Yo tengo una pregunta también que siempre me quedo pendiente sobre el tema inyección dll,, al inyectar una dll estamos en el mismo espacio de memoria que el código inyectado, verdad? Como puedo ver el contenido de una variable? O sea, la variable no es mas que un sector en la ram,, como se cual sector es una variable y cual sector es código ejecutable??

Saludos!


Título: Re:
Publicado por: kub0x en 24 Junio 2014, 16:28 pm
Implementando inline Hooking o IAT puedes interceptar las llamadas a las funciones que tu quieras yo lo conseguí en Firefox e IE para ver el contenido de las peticiones SSL (HTTPS) antes de que los datos se cifraran, y bueno muchas mas cosillas. Para leer direcciones de memoria tendras que hacer reversing pero para ello no necesitas estar en el mismo espacio de memoria del proceso victima por ejemplo ReadProcessMemory utiliza el Process Handle para situarse en el espacio de memoria del proceso destino. Eso si cuidado con ASLR.

Saludos


Título: Re: ¿que usos tiene la inyeccion dll?
Publicado por: Vaagish en 24 Junio 2014, 17:29 pm
Citar
Para leer direcciones de memoria tendras que hacer reversing pero para ello no necesitas estar en el mismo espacio de memoria del proceso victima por ejemplo ReadProcessMemory utiliza el Process Handle para situarse en el espacio de memoria del proceso destino. Eso si cuidado con ASLR.
O sea que leeria un esacio de memoria X que resolvi mediante reversing.. no es que exista una funcion que lo haga,, tenemos si o si que saber donde esta esa variable.. por ejemplo, si es una variable entera (entera de int) leeria 4 bytes de la posicion X de memoria donde cominza?

Greacias! Saludos!


Título: Re: ¿que usos tiene la inyeccion dll?
Publicado por: daryo en 24 Junio 2014, 20:40 pm
ya tengo mas claro :)


Citar
O sea que leeria un esacio de memoria X que resolvi mediante reversing.. no es que exista una funcion que lo haga,, tenemos si o si que saber donde esta esa variable.. por ejemplo, si es una variable entera (entera de int) leeria 4 bytes de la posicion X de memoria donde cominza?

Greacias! Saludos!

al parecer dejo un video del proceso usando cheat engine para encontrar las variables y luego pasandolo a c++
I0zPwg4iUDk


Título: Re: ¿que usos tiene la inyeccion dll?
Publicado por: Vaagish en 24 Junio 2014, 21:13 pm
Nunca use Cheat Engine, pero siempre me dio la impresión que se podía usar no solo en juegos.. muy útil..

Saludos! Gracias!

PD: Justo revisando el foro hay un tuto nuevo de CheatEngine..
Citar
http://foro.elhacker.net/ingenieria_inversa/tutorial_cheat_engine_nivel_avanzado_tutorial_completo-t413372.0.html


Título: Re: Re: ¿que usos tiene la inyeccion dll?
Publicado por: kub0x en 25 Junio 2014, 00:00 am
Cheat Engine es perfecto para encontrar punteros a las funciones o bien las direcciones reales en el mejor de los casos (estas últimas están marcadas en verde).

 Si quieres leer un integer de x memory address utilizaras la API ReadProcessMemory pasandole el Process Handle del juego, especificando la dirección de memoria donde empiezas a leer y el número de bytes a leer (offsetting). Más info aquí es una función muy simple y fácil de usar así como divertida ;)

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