jueves, 3 de febrero de 2011

¿Como cargo mi malware de payload en un exploit?

Se puede decir que la entrada de hoy es una duda existencial que me surgió, para de esta manera evitar la utilización de los payloads que vienen de serie en la famosa suit de Metasploit. Seguramente más de un profesional en el tema, me dé una patada en las mismísimas después de leerme hoy, pues es lo primero que se me ocurrió antes de volver a la edad de piedra y reinventar la rueda.

Sabemos que los payloads que aparecen, traen de todo tipo de juguetitos como pueden ser una shell o un downloader pero ¿y si el PC donde se ejecuta no tiene internet en ese instante? El downloader quedaría inútil y no conseguiría ejecutarse mi mortífero bicho.

Primera fantástica idea, cogeré el ejecutable de mi malvado troyano y lo arrastraré a Ollydbg, así podré ver el código del ejecutable desensamblado.




Una vez llegado a las tripas, seleccionaré todo el código del ejecutable y lo copiaré como binario, así quedará bien limpio en hexadecimal.




Para seguir con mi chapuza, iré a ese software tan complejo de Microsoft, el blog de notas y pegaré todo el código en un archivo.






Ya tengo el código hexadecimal de mi malware desnudo como dios lo trajo al mundo, pero para que mi exploit lo interprete, harán falta un par de caracteres que delimitarán sus offsets, los “\x.
El carácter que se encuentra entre ellos ahora es un espacio, así que será tan simple como reemplazarlos.




¡Perfecto! ¡ya casi lo tengo! así que iré a un PDF que tengo guardado con sorpresa, este integra un payload con la función de downloader. Para leer su interior, lo más acertado será un editor hexadecimal, así que marcaré todo el payload para pegar encima el que tengo apartado en mi archivo de texto.




La parte modificada se sobrescribirá en rojo.




Aunque me temo que se nos olvida una cosa. ¿Y los saltos de linea que se crearon al copiar el código desde Ollydbg?

¡Pues nada a modificarlos también que hoy es fiesta!

Copiamos los dos offsets que corresponden al salto de línea (0D0A) por los caracteres “\x” en hexadecimal (5C78).




Rellenaré SOLO el código ejecutable del payload, ya que si lo aplicamos a todo el archivo, quedará inutilizable.




Dejaré el primer salto de linea y el último de todo el payload, para que el PDF siga su camino y pueda ejecutar nuestro malware.




Abriremos nuestro PDF envenenado y... ¡joder que tostón! ¡Ya era hora! El troyano más maligno de la historia, era una maldita prueba de un proyecto en Visual Basic, con un MsgBox en el que aparece una web de mierda.




Espero que algún valiente se atreva a decir como lo hace él. Me voy a cenar que se me está haciendo un poco tarde...

Saludos 4n4les! ;)

8 comentarios:

  1. jeje muy bueno 4n0! claramente un gran metodo para ejecutar un troyano al abrir un .pdf =P, gracias por la explicación hermano!

    ResponderEliminar
  2. Eres un autentico genio..!

    Sito

    ResponderEliminar
  3. "así que iré a un PDF que tengo guardado con sorpresa, este integra un payload con la función de downloader"
    Necesitas un pdf ya modificado?
    Entonces como prescindes de usar otro exploit?

    ResponderEliminar
  4. Gracias a todos! ;-)

    Anonimo@

    Cuando utilizas metasploit, es necesario cargar un payload cualquiera para generar el archivo final. En esta entrada anteriormente usé un exploit generado con dicha suit, para sobreescribir facilmente el codigo hexadecimal.

    Saludos!

    ResponderEliminar
  5. Uhhh perfecto para David Hasseholf...jajaja

    Saludos!..

    ResponderEliminar
  6. Ok, entonces lo que haces es inutilizar el exploit generado con metasploit, pero y si tu programa es mas grande que el generado con metasploit?
    Gracias por responder.

    ResponderEliminar
  7. Anónimo@

    No te encontrarás con ningún problema de incompatibilidad por el tamaño de archivo, ya que al ser un archivo PDF, no estás modificando ninguna parte sensible del archivo como puede ser su cabecera o en un ejecutable la PE.

    Saludos!

    ResponderEliminar