Tengo tanto tiempo libre... como cuando tenía 17 años.
Sé lo que estáis pensando… “El mamarracho este, viene a mi
RSS a reírse de mí, en mi cara y… ¡yo sigo leyéndolo!”
Bueno, posiblemente no con 17 años tuviese tanto tiempo libre…
la play, el deporte, las mujeres, los estudios para aquellos que estudiaron,
las mujeres, ¿he dicho mujeres?.
Pero lo que son los 24, ¡menudo
regalo de Dios!. En vacaciones, despertándome a las 2 de la tarde, de
resaca, la novia trabajando, sin hijos… ¡oye!
¡Qué hay tiempo de sobra para frikear!
Y nada mejor como volver a la juventud informática, desde
mis inicios en
aquel colegio de curas del que no quieren saber nada de mí, hasta las
modificaciones de malware que a duras penas salían en indetectables, a golpe de
martillo en algunos casos.
Hablando de modificaciones, la que vengo a contar hoy, es
una de tantas técnicas utilizadas para conseguir esquivar, firmas antivirus de
una sola estocada. Ya que actualmente funciona y la técnica, es más bien a
cincel que a martillo, vengo a esculpiros.
El Entry Point, es la dirección de memoria, en la que se
inicializa el código de una aplicación, siendo el punto de partida de
ejecución. Si somos capaces de llevar a cabo la migración, de la dirección de memoria
donde se encuentra el EIP, junto a sus instrucciones, a otro lugar, estaremos modificando físicamente la
cabecera PE de una forma correcta y dando lugar a la posibilidad de eludir
firmas antivirus, que hayan sido colocadas en este tipo de zonas estratégicas
para evitar que una simple modificación en hexadecimal, pueda romper la firma.
Yo he elegido el famoso Crypter BPC, por ser una de mis
primeras modificaciones de hace unos años, para extraer el Stub de esta
herramienta, necesitaremos un editor de recursos como puede ser Resource Hacker, para poder modificar el ejecutable con firmas, a nuestro antojo. En
primer lugar, nos armaremos de Olly.
Una vez arrastrado nuestro stub.exe a Olly, podremos ver
marcado en negro el Entry Point, detrás del a dirección de memoria 004010C4.
Copiaremos las dos primeras instrucciones ensambladas, que
más tarde introduciremos en otra posición de memoria.
Y rellenaremos de NOPS, para por ejemplo, aplicar saltos con
método RIT más adelante.
Bajaremos hasta la zona de la memoria donde no se encuentren
instrucciones, en la cual podremos introducir nuestro código sin romper el
ejecutable.
Seguidamente, introduciremos las dos instrucciones copiadas
del antiguo Entry Point junto con una instrucción de retorno (RETN), la cual
puede ser sustituida con un JMP como hicimos con el método RIT. Guardaremos el número de la izquierda marcado en rojo, donde
se indica la nueva dirección de memoria, desde la cual partirá la ejecución de
la aplicación.
Nos dirigiremos a "Copy to executable > All modifications",
para guardar nuestro nuevo Stub.
Con todo esto realizado, tan solo nos queda utilizar un
editor de cabeceras PE, como LordPE
para realizar el cambio a la dirección del nuevo Entry Point. Incluiremos los
últimos 4 dígitos de la dirección, generaremos el nuevo Checksum del archivo y
guardaremos los cambios.
Podemos comprobar que la migración se hizo correctamente,
introduciendo de nuevo el Stub en Olly.
Tan solo faltaría introducir el Stub, dentro del Crypter de
nuevo utilizando Resource Hacker, reemplazando el original CUSTOM/101 por el
nuestro. La zona marcada en negro, son las dos instrucciones migradas y C3 el RETN.
Comparando con un editor hexadecimal el Crypter BPC original,
con el nuestro, encontraremos el cambio justo en la zona donde introducimos las
instrucciones.
Con lo que ya estará preparado para pasar desapercibido a unos
pocos.
Saludos 4n4les! ;)
Buena !, es una de la tantas formas pero innteresante como se puede aplicar algo sencillo para pasar desapercibido , estaria bueno e interesante mostar en un pequeño escrito sobre los metodos que usan los antivirus para buscar firmas .. saludos
ResponderEliminarGracias Alex! está muy chulo tu blog también! tienes buenas investigaciones!
EliminarSaludos! :)
Esta es vijea ANO, sorprendenos como en los viejos tiempos!
ResponderEliminarHola Anónimo, les dejo el relevo! ;)
EliminarGracias Germán!
EliminarHey Germán enhorabuena por tu blog aunque lo abandones un poquillo de vez en cuando... ;) ¿Podrías subir el crypter BPC a algún servidor estilo 4shared y publicar el enlace? Gracias de antemano
ResponderEliminarSeria bueno que publicaras el archivo de ejemplo
ResponderEliminar