Meterpreter es una carga útil de varias etapas donde la primera etapa se envía primero, y luego se descarga la DLL de la segunda etapa. Hay dos cosas que debe entender aquí: qué transporte utilizará el Meterpreter para comunicarse con el manejador y si la primera etapa debe conectarse de nuevo al manejador o si el manejador debe conectarse al zócalo de escucha (inverso vs vincular).
Hay tres tipos de transportes disponibles: TCP, HTTP y HTTPS. Si está operando dentro de un entorno LAN, puede usar el transporte TCP ya que es un mecanismo de transporte confiable. Sin embargo, el transporte TCP necesita un socket establecido para comunicarse, lo que significa que si por alguna razón la sesión se acerca a la máquina del atacante y la de la víctima, no puede volver a conectarse (a menos que ya se haya logrado la persistencia). El transporte TCP no puede atravesar los servidores proxy para acceder a Internet y el transporte de primera etapa está en texto sin formato que puede activar IDS / IPS.
HTTP y HTTPS usan WinInet, lo que significa que si la víctima está detrás de un proxy HTTP, el primer indicador de la etapa podrá usar el servidor proxy y las credenciales almacenadas en caché (si es necesario) para atravesar el proxy y acceder a Internet. < br>
El transporte HTTPS tiene el beneficio adicional de transferir la DLL de la segunda etapa en un transporte SSL completo tunelizado que no puede ser detectado por IDS / IPS a menos que la sesión sea MITM-ed en el proxy.
En el caso de vinculación frente a inversa, la inversión es casi siempre el método preferido, ya que muchas veces las organizaciones tienen implementado el filtrado de ingreso de scripts, pero el filtrado de egreso no es tan estricto (aunque está cambiando).
Una última cosa que debe comprender es que, en comparación con TCP, el transporte HTTP (S) tiene un tamaño mayor, por lo que no se ajustará a todos los exploits debido al espacio limitado de carga útil que pueden transportar. Sin embargo, egy7t hizo un gran trabajo para reducir el tamaño del transporte HTTPS inverso para que la mayoría de las vulnerabilidades puedan transportarlo. Puede encontrar más detalles sobre esto en Golf de Shellcode: cada byte es sagrado .