Metasploit: Tipos de Payloads en metasploit.

Metasploit

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, se le denomina programación modular. Anteriormente vimos los tipos de exploits presentes en metasploit, su manera de configurarlos y su uso. Hoy vamos a hablar sobre los tipos de Payloads.

Payloads en Metasploit.

Allí hay tres tipos principales de Payloads en Metasploit: Singles, Stagers y Stages. Estos diferentes tipos de payloads ofrecen una gran versatilidad y pueden ser útiles en muchos escenarios. Si un Payload es o no staged, viene determinado por el carácter "/" en el nombre del Payload. Por ejemplo: "windows/shell_bind_tcp" es un payload único, sin nada más. "windows/shell/bind_tcp" consiste en un stager (bind_tcp) y un stage (shell).

  • Singles. Los singles son payloads únicos y completamente independientes. Un payload single puede ser algo tan simple como agregar un usuario al sistema de destino o ejecutar calc.exe. Este tipo de payloads son autónomos, por lo que pueden ser usados sin manejadores de payload cómo metasploit, por ejemplo con netcat.
     
  • Stagers. Los Stagers configuran una conexión de red entre el atacante y la víctima y están diseñados para ser pequeños y confiables. Es difícil hacer ambas cosas bien siempre, por lo que el resultado es varios stagers similares. Metasploit usará el mejor cuando sea posible y recurrirá a uno menos preferido cuando sea necesario.
     
  • Stages. Los Stages son componentes de los payloads, que se descargan por los módulos Stagers. Las diversas variedades de payloads proporcionan funciones avanzadas sin límites de tamaño, cómo Meterpreter, Inyección VNC e iPhone 'ipwn' Shell.

Tipos de Payloads.

Brevemente cubrimos los tres tipos principales de payloads: singles, stagers y stages. Metasploit contiene muchos tipos diferentes de payloadss, cada una de las cuales cumple un rol único dentro del marco. Echaremos un vistazo breve a los diversos tipos de payloads disponibles para tener una idea de cuándo se debe usar cada tipo.

  • Inline (No staged). Es un payload que contiene el exploit y el código de shell completo para la tarea seleccionada. Los payloads Inline son, por diseño, más estables que sus contrapartes porque contienen todo, todo en uno. Sin embargo, algunos exploits no admiten el tamaño resultante de estos payloads.
     
  • Stager. Las payloads Stager funcionan junto con los payloads Stage para realizar una tarea específica. Un stager establece un canal de comunicación entre el atacante y la víctima y se coloca en un payload tipo staged para ejecutarse en el host remoto.
     
  • Meterpreter. Meterpreter, la forma abreviada de Meta-Interpreter, es un payload avanzado y multifacético que opera mediante inyección dll. El Meterpreter reside completamente en la memoria del host remoto y no deja rastros en el disco duro, por lo que es muy difícil de detectar con técnicas forenses convencionales. Los scripts y complementos se pueden cargar y descargar dinámicamente según sea necesario y el desarrollo de Meterpreter es muy potente y está en constante evolución.
     
  • PassiveX. PassiveX es un payload que puede ayudar a eludir los firewalls de salida restrictivos. Lo hace mediante el uso de un control ActiveX para crear una instancia oculta de Internet Explorer. Usando el nuevo control ActiveX, se comunica con el atacante a través de solicitudes y respuestas HTTP.
     
  • NoNX. El bit NX (No eXecute) es una característica incorporada en algunas CPU para evitar que el código se ejecute en ciertas áreas de la memoria. En Windows, NX se implementa como Prevención de ejecución de datos (DEP). Los payloads Metasploit NoNX están diseñadas para eludir el DEP.
     
  • Ord. Los payloads ordinarios (Ord) son payloads basados en etapas de Windows que tienen distintas ventajas y desventajas. Las ventajas son que funciona en todos los sabores y el lenguaje de Windows que se remonta a Windows 9x sin la definición explícita de una dirección de retorno. También son extremadamente pequeños. Sin embargo, dos desventajas muy específicas hacen que no sean la opción predeterminada. La primera es que se basa en el hecho de que ws2_32.dll se carga en el proceso que se está explotando antes de la explotación. El segundo es que es un poco menos estable que los otros stagers.
     
  • IPv6. Cómo su nombre lo indica, están diseñados para funcionar en redes que use el protocolo IPv6.
     
  • Reflective DLL injection. Reflective DLL Injection es una técnica mediante la cual se inyecta un payload staged en un proceso del host comprometido que se ejecuta en la memoria, sin tocar nunca el disco duro del host. Los payloads VNC y Meterpreter utilizan inyecciones reflectivas DLL. Puede leer más sobre esto de Stephen Fewer, el creador del método de inyección reflectiva DLL. Con esto finalizamos el post sobre los tipos de payloads, en el próximo post continuaremos con la generación de Payloads.

Autor: Edu4rdSHL

Síguenos en FacebookTwitterunete a nuestra charla en Riotúnete a IRC o únete a Telegram y no olvides compartirnos en las redes sociales. También puede hacernos una donación..

Acerca del autor

Fredy Yesid Avila - Ingeniero de Sistemas, CEH - ECSA.

@fredyavila