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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking (Moderador: toxeek)
| | |-+  Inyección de código en procesos windows
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Inyección de código en procesos windows  (Leído 3,060 veces)
XKC

Desconectado Desconectado

Mensajes: 128



Ver Perfil
Inyección de código en procesos windows
« en: 3 Enero 2019, 23:01 pm »

Hola buenas,
Tengo una duda acerca de un concepto.
A raíz de estudiar dll injection, me he dado cuenta que se puede hacer esto también
https://www.mpgh.net/forum/showthread.php?t=986479
En realidad dll injection es inyectar el código que obliga a cargar la dll, pero a parte de ese código se puede inyectar lo que uno quiera.

La cuestión que me escama es la siguiente, ¿no os parece un fallo de windows muy gordo?, quiero decir, se esta permitiendo modificar procesos a tu antojo.
Estoy buscando info acerca de como se gestionan los privilegios, puesto que si no una escalación de privilegios seria tan sencilla como inyectar código en cualquier proceso que se ejecute como admin y voila..
Tengo un fallo de concepto aquí,
¿Porque windows permite que un proceso escriba en la memoria de otro?
¿Que requisitos se deben cumplir para que esto pueda llevarse a cabo, es decir, privilegios de sistema, etc..?


Gracias a todos por vuestro tiempo.

Un saludo
En línea

Para poder atacar y vencer con seguridad, ataca donde ellos no puedan defenderse.
Para defenderte y resistir firme, defiéndete en donde ellos no atacarán.
fary


Desconectado Desconectado

Mensajes: 1.076



Ver Perfil WWW
Re: Inyección de código en procesos windows
« Respuesta #1 en: 3 Enero 2019, 23:33 pm »

Exacto... puedes inyectar una DLL o simplemente código  :)

https://foro.elhacker.net/analisis_y_diseno_de_malware/inyecciones_de_codigo_en_memoria-t446557.0.html

Si mal no recuerdo tu aplicación se tiene que estar ejecutando como administrador... pero vamos, que eso es probar y se comprueba rápido.

saludos.
En línea

Un byte a la izquierda.
ThunderCls


Desconectado Desconectado

Mensajes: 455


Coder | Reverser | Gamer


Ver Perfil WWW
Re: Inyección de código en procesos windows
« Respuesta #2 en: 23 Enero 2019, 18:54 pm »

¿Porque windows permite que un proceso escriba en la memoria de otro?

Pues porque esto le da al SO una flexibilidad impresionante, aunque como todo en la vida puede ser usado con buenos fines pero tambien con malos fines como es el caso del malware. Pero si hay muchos "buenos usos" de la injeccion de codigo por parte de los desarrolladores y te pongo algunos ejemplos:
1- Los programas antivirus a menudo inyectan código en los procesos. Pueden usarlo para monitorear el tráfico de la red, bloquear contenido web peligroso, o usarlo en tecnicas de heuristica, por ejemplo.
2- Muchas aplicaciones de terceros pueden usar la inyeccion de codigo para agregar funcionalidad al propio sistema o a otras aplicaciones de terceros (aplicaciones de temas visuales, shortkeys, plugins, etc)
3- Los drivers graficos de NVIDIA inyectan DLLs en varios procesos para realizar tareas graficas
4- etc.....

La inyeccion DLL nunca va a ser 100% segura, es un metodo no muy limpio de lograr diferentes objetivos en el sistema, pero sin embargo ahi esta como una parte normal del SO, constantemente sucediendo sin que te des cuenta.


¿Que requisitos se deben cumplir para que esto pueda llevarse a cabo, es decir, privilegios de sistema, etc..?

La apertura de otro proceso se somete a restricciones. Desde Vista, existen algunas protecciones junto con Microsoft UAC. La protección principal para la memoria de proceso es el Control de integridad obligatorio (MIC). MIC es un método de protección para controlar el acceso a objetos en función de su "nivel de integridad". Hay 4 niveles de integridad:

    Nivel bajo para el proceso que está restringido para acceder a la mayoría del sistema (por ejemplo, Internet Explorer)
    Nivel medio es el valor predeterminado para cualquier proceso iniciado por usuarios sin privilegios y también usuarios de administrador si UAC está habilitado.
    Alto nivel para procesos en ejecución con privilegios de administrador.
    Los usuarios del SISTEMA ejecutan el nivel del sistema, generalmente el nivel de los servicios y procesos del sistema que requieren la mayor protección.

Para nuestra preocupación, eso significa que el proceso del inyector solo podrá inyectarse en un proceso que se ejecuta con un nivel de integridad inferior o igual.
Por ejemplo, si UAC está activado, incluso si la cuenta de usuario es administrador, el proceso se ejecutará en el nivel de integridad "Medio" (a menos que se ejecute específicamente como administrador).

fuente: http://blog.sevagas.com/?PE-injection-explained
En línea

-[ "…I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con la Inyeccion de procesos « 1 2 »
Programación Visual Basic
kichan 13 4,548 Último mensaje 6 Mayo 2006, 21:35 pm
por Eternal Idol
Inyeccion de procesos
Programación Visual Basic
WarGhost 2 1,594 Último mensaje 19 Julio 2006, 14:37 pm
por Kizar
Inyeccion para crashear procesos « 1 2 »
Programación Visual Basic
nhaalclkiemr 12 4,674 Último mensaje 15 Febrero 2008, 21:11 pm
por nhaalclkiemr
[SOURCE]Inyeccion DLL y control de procesos!
Programación C/C++
Debci 1 2,313 Último mensaje 18 Agosto 2010, 20:03 pm
por bizco
Mejorar codigo estructura y procesos.
Programación C/C++
BKsiragon 4 2,953 Último mensaje 30 Enero 2014, 18:33 pm
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines