Meterpreter y cargas útiles por etapas

1

Comenzando con lo básico, un exploit es el medio utilizado para obtener acceso a un sistema vulnerable y una carga útil es el programa / shellcode real utilizado para cumplir las intenciones del atacante

Una carga útil en etapas crea una conexión a la máquina de la víctima utilizando una plataforma, que es una pequeña carga útil inicial que crea una conexión con la víctima (creando un zócalo) y luego pasa la ejecución a la siguiente etapa, que será la carga útil principal - en este caso meterpreter.

En este contexto, meterpreter es una carga útil que se cargará a través del zócalo de prueba y permitirá inyectar dlls en la memoria de las máquinas víctimas (servidor meterpreter) ...

He investigado un poco y para que entienda las cosas, trato de ponerlas en mis propias palabras y términos tanto como sea posible. Este es mi entendimiento básico de cómo funcionan las cargas útiles por etapas y el medidor de velocidad, así que puede aclarar. que mi entendimiento es realmente correcto?

    
pregunta l30n1d45 24.03.2015 - 00:26
fuente

2 respuestas

1

Sí, básicamente necesitas una vulnerabilidad para explotar para dirigir la ejecución del código a tu shellcode o carga útil, que puede ser cualquier cosa, desde hacer cálculos hasta un contador de comandos o un shell de comandos. Este enlace es una gran referencia para metasploit en general y específicamente sobre algunos de los puntos sobre las cargas útiles en los que parece que está interesado.

enlace

    
respondido por el tyh 24.03.2015 - 00:44
fuente
1

La idea básica es correcta. Solo quiero explicar cuál es el propósito de las cargas útiles por etapas. Cada exploit tiene un espacio limitado a través del cual puede llevar código de usuario. Meterpreter DLL es de alrededor de 900 KB, lo que no encaja en ninguna de las vulnerabilidades comunes de desbordamiento de búfer. Ese es el tamaño de la única DLL del medidor de hueso. Cuando se carga con extensiones (stdlib, sniffer, etc.), el tamaño es en múltiples megabytes. Es por eso que el stager se usa como el código de shell inicial que contacta con el manejador, asigna la memoria RWX apropiada en el proceso de destino y carga la DLL a través de inyección reflexiva de DLL .

    
respondido por el void_in 24.03.2015 - 07:51
fuente

Lea otras preguntas en las etiquetas