Inyeccion NotePad -Asm & OllyDBG-
Bueno parecer que este post no tiene dueño xD ya que lo an visto en una pagina y el blog donde yo lo vi dicen q no se acuerda de la pagina donde lo vio asi que Creditos para esa pagina ;) y Harner por volverla hacer :D
He y llarmarlo Inyeccion, no se si la verdad lo es pero bue. me gusta como suena xD
Ahora viene el TuTo totalmente escrito por mi e editado por su servidor en la forma de explicacion :)
Este tutorial tiene fines totalmente didácticos. No me responsabilizo por cómo se pueda utilizar el mismo.IMPORTANTE:Cualquier tipo de error que encuentren el el tutorial, posteenlo. De esta manera aprendemos todos.
IMPORTANTE:El Debugger a usar es el OllyDBG.
IMPORTANTE:Algunas direcciones de Memoria vistas en este Tutorial puede ser Diferente al del lector.
IMPORTANTE:Escribir las Direcciones de Memorias en uso para su proxima utilización en este Tutorial.
Conocimientos previos básicos requeridos.Conocimiento Basico en ASM.
Conocimiento en Utilización del OllyDBG.
Software necesarioOllyDbg 1.10 (http://www.ollydbg.de/odbg110.zip)
NotePad.1 ) Para Comenzar Ejecutemos El NotePad.2 ) Abrir el OllyDBG y abrir el NotePad en el Mismo.(http://i37.tinypic.com/do8710.png)
3 ) Buscar Espacios Vacios.Ahora buscaremos espacios vacios DB 00 (en otros Casos algo que el OllyDBG no pudo analizar, y este no lo es xD),
4 ) Editar.
Hagamos lo siguiente:-Sombrear una cierta cantidad de DB 00
-Click Derecho BINARY - EDIT, o Simplemente Ctrl + E*
*Como se muestra en la imagen
(http://i38.tinypic.com/35ipzs7.png)
Escribimos Para el Titulo: "Inyeccion By Nox"
Escribimos Para el Mensaje: "Personalizacion"*
*Por supuesto hacerlo Uno por Uno, como se muestran en las imagenes:
Para el Titulo:
(http://i34.tinypic.com/j5cdwg.png)
Damos OK
Esto Aparecerá:(http://i35.tinypic.com/2gvinty.png)
--> Pues facil Hacer lo siguiente:
-Sombrear el Cod Editado
-Click Derecho ANALYSIS - ANALISYS CODE
Para el Mensaje:
(http://i36.tinypic.com/2610x1c.png)
Damos OK
--> Repetir lo Anterior
Este Es Final del Procedimiento:(http://i34.tinypic.com/2h364on.png)
5 ) Creando un MsgBox.Hacer lo siguiente*:
PUSH 0; Para el Boton OK
PUSH 30AA7EA2; Pusheamos Nuestra Direccion de memoria ( Addy ) de Nuestro ASCII ( En este caso "Personalizacion")
PUSH 30AA7E91; Pushemaos el Addy de Nuestro Mensaje
PUSH 0; Para nuestro icono, en este caso no habra xD
Call MessageBoxA; Llamar a la API de User32.dll
*Como se muestra en la imagen:
(http://i35.tinypic.com/24biu0g.png)
5 ) Llamando a Nuestra RutinaUstedes Piensan esta listo pues no! ya que como el programa ya tiene su rutina de ejecucion, no tomara la nuestra por logica u_u, lo que haremos es pues inyectar nuestra rutina en la del programa.
Hacemos lo siguiente:-Click Derecho GOTO - ORIGEN
(http://i35.tinypic.com/oabxc9.png)
Editemos Nuestra primera linea del codigo, lo que haremos es hacer un salto ( jmp ) hacia nuestra rutina ( espero que tengas las addys ya escritas y guardadas )
Hacemos lo siguiente:Un Jump hacia nuestra rutina:-Ya situados en el ORIGEN apretar SPACE
-Hacer un Jump con nuestra addy de la rutina*
*Guardar la syntaxis asta el Call visto! para su proxima utilizacion.
JMP 30AA7EB2
(http://i34.tinypic.com/5os7k4.png)
Vemos que se NOPeo el push a una addy del programa ( espero que ya lo hallan guardo ese push y sus direcciones de memoria)
(http://i37.tinypic.com/296i1k6.png)
Muy bien, hasta ahora vamos OK, ahora si borramos un par de lineas en algun codigo del programa no va a funcionar asi que hagamos lo siguiente:
6 ) Normalizar nuestra InyeccionHemos borrado dos lineas del programa:PUSH 70
PUSH 1001898
Normalicemos, Ir hacia el final de nuestra rutina del MsgBox, y
hacer lo siguiente:PUSH 70
PUSH 1001898
JMP 300019F5
(http://i36.tinypic.com/w1u4px.png)
Lo que estamos haciendo es hacer un simple JUMP hacia nuestra Rutina Restaurar el Cod del Programa y hacer otro JUMP hacia algunos de los NOP hechos al Editar El Origen, para que el programa ejecute normal pasando por Nuestro MessageBoxA. xD xD
Asi que si tracean el Programa veran esto:(http://i37.tinypic.com/6jhg1j.png)
Ahora sabemos que cuando cerremos y habramos devuelta el OllyDBG con el NotePad pues no se guardara lo que modificamos, asi que hagamos lo siguiente:
-Click Derecho COPY TO EXECUTABLE - ALL MODIFICATIONS .
-Se habre otra ventana. Click en COPY ALL
-Cerremos la siguiente.
-Finalmente Cerramos la Ventana D del OLLY ( Aparece en el Marco Superior Derecho)
-Lo Guardan con el Nombre que desean y Listo :D
Aparecera Nuestro MsgBox(http://i37.tinypic.com/6jhg1j.png)
Y despues Se abrira nuestro NotePad JuJuJuJu :D
Bueno ya esta la idea xD ahora que podran hacer con esto pues es su imaginacion, como meter ShellCodes :P ya depende de ustedes lo que sea ;)
Si este no es el Resultado revisen bien cada linea escrita por ustedes!, y les Saldra
Atte: Member UnderNixerTeam
Muchas gracias NoxOner por la colaboración.
He guardado tu tutorial. Puede resultar de mucha utilidad a gente que quiera aprender.
Un saludo
karmany
Cita de: NoxOner en 13 Octubre 2009, 16:28 PM
uhm y como hago para el EXE no lo detecte?
Pues, como te dije, SI es que el EXE lo detecta. Eso depende de cada ejecutable y el tipo de proteccion que implemente. Sólo basta con un simple CRC para que el programa se de cuenta de que ha sido modificado.
La forma mas sencilla de comprobar esto es ver el comportamiento del ejecutable antes y despues del parcheo. Si todo esta bien y funciona como es debido, es muy probable que no lo haya detectado.
En el caso del Notepad, no tiene chequeos (al parecer) por lo que el parcheo funcionará perfectamente.
Saludos!