6 oct 2012

Flu a lo jabalí – ¿Qué es un Payload?

Buenas a todos, la semana en Seguridad a lo Jabalí ha sido muy completa con muchos artículos recomendables pero hay uno que nos ha gustado especialmente ¿Qué es un Payload? y que completa el artículo ¿Qué es un exploit? que publicaron la pasada semana. Una lectura imprescindible si estás comenzando en el mundo del exploiting y quieres entender como funcionan los exploits a bajo nivel de una manera sencilla y amigable. Os dejamos con su genial post:

Flu a lo jabalí presenta… ¿Qué es un Payload?

La semana pasada publicamos un artículo definiendo de forma sencilla ¿Qué es Exploit?, bueno hoy vamos a continuar un poco más allá explicando un término estrechamente relacionado con exploit, el archiconocido Payload.
Hablábamos de que las vulnerabilidades o errores presentes en cualquier software pueden ser aprovechadas para producir efectos inesperados en los equipos, una vez descubierto ese fallo se desarrollaban pequeños programas (exploits) para forzar de forma específica ese error en el sistema, ¿y ahora qué?
Además de conseguir que el software produzca ese error lo ideal sería poder aprovecharlo para que el equipo realice las funciones que yo desee.
Esa parte del software que nos brinda una función ante un error es el Payload, la ventaja de este planteamiento es que el mismo payload puede ser utilizado por distintos exploits y un mismo exploit puede utilizar varios payloads, una programación modular fantástica, je, je.
Un ejemplo…
Se publica una vulnerabilidad conocida en un servidor web muy utilizado, ...“cuando una petición malformada chuchugua, chuchugua llama a la función de php no se qué… que provoca que se pueda X, y permite la ejecución de código en la maquina del server”.
La comunidad (incluidos los malos) se ponen a trabajar y desarrollan el software (exploit) normalmente con lenguajes de programación rápidos ruby, perl o phyton para provocar ese error, además desarrollan o diseñan ese software para que el fallo permita sacar “ventaja”, brindarnos una Shell, screenshot, etc. En muchas ocasiones se utilizan Payloads ya creados para otros exploits, otras veces hay que diseñarlos específicamente para ese exploit. 
Navegando un poco por la red no hay mucha información sobre este tema, una de las definiciones más precisa y además de una forma muy sencilla de comprender es la que encontramos en el blog de Eset:
 
Si queréis profundizar un poco más a nivel técnico sobre este tema hay unos artículos increíbles de la mano de @DarkOperator en Hacknode.

1 comentario:

  1. Tengo una duda, creo tener una idea entonces de lo que es metasploit y meterpreter, pero quisiera que ustedes me lo aclararan: hasta ahora he entendido en cierta forma que meterpreter es como una enorme DB con muchos payloads disponibles (como el reverse_tcp), listos para ser incluidos en cualquier exploit compatible. Ahora, lo que hace metasploit es tener separados los exploits y los payloads, y al escanear un sitio y encontrar una vulnerabilidad, se selecciona el exploit correspondiente, y es entonces donde se elije tambien el payload que queremos cargar... muchos agarran los payloads de meterpreter por su fama y por ser muy efectivos por lo que he notado... entonces metasploit en cierta forma ensambla el payload en el exploit, y lo ejecuta en el equipo que tenemos seleccionado para atacar. Diganme si he comprendido bien este asunto, y si estoy mal en algun punto, les agradeceré mucho que me corrijan, saludos!

    ResponderEliminar