shell inversa HTTP a través de proxy corporativo

0

Me gustaría probar un escenario en el que el usuario recibe un archivo adjunto malicioso en un correo electrónico de phishing. El adjunto está destinado a abrir un shell inverso HTTP o HTTPS para el atacante que se encuentra fuera de la red corporativa. La topología de la red se ve así:

Atacante --- Internet --- Cortafuegos --- Proxy --- Víctima

El firewall bloquea todo el tráfico saliente, excepto la navegación web a través de solicitudes de proxy y DNS. El proxy utiliza la autenticación.

Dado que he publicado numerosos posts en este tema, tengo la impresión de que una shell básica de meter metros http invertido de metasploit funcionaría en este entorno, pero tengo curiosidad por saber cómo podría pasar la shell inversa a través de ¿apoderado? En primer lugar, ¿cómo detecta que hay un proxy y cuál es su dirección?

Es quizás una especie de pregunta noob. Mi única idea es que si la configuración del proxy se establece en el registro, Windows enruta todo el tráfico HTTP y HTTPS hacia el proxy de forma transparente.

    
pregunta Richard Leonard Kirner 17.12.2016 - 02:32
fuente

1 respuesta

3

¿Cómo detecta el shell qué es el proxy y su dirección?

Lo hace de la misma manera que cualquier otra aplicación en su sistema operativo. En Windows, una aplicación puede verificar configuración de registro para el proxy de IE y obtener la configuración de proxy relevante de otros navegadores. O puede usar Wininet API, que manejaría proxies automáticamente (incluyendo cosas como la autenticación NTLM).

En Linux puede verificar las variables env como "http_proxy".

Una forma menos típica, pero aún así posible sería realizar una exploración de puertos (el proxy normalmente escucha en 3128 u 8080), o ver el tráfico en busca de solicitudes de conexión de proxy.

¿Cómo ejecuta las órdenes la shell inversa?

Hay varias maneras. Por ejemplo, un script / binario de shell inverso puede hacer HTTP GET example.org/cmd.html, pasar todo a un shell / powershell / Python, guardar la salida del shell ejecutado en un archivo y enviarlo por correo a example.org/output - esas solicitudes son solicitudes HTTP válidas y pasarán a través del proxy HTTP. Esto no funcionará para shell interactivo (por ejemplo, usando vi), pero no es realmente necesario para un ataque.

Para construir sobre eso, los comandos y las respuestas se pueden cifrar con una clave simétrica (lo que hace que las detecciones basadas en firmas sean imposibles), o se podrían incrustar en el tráfico regular (por ejemplo, en la etiqueta EXIF de una imagen). / p>

Sin embargo, si el proxy admite el proxy HTTPS a través del comando CONECTAR, es mucho más simple. A continuación, un shell inverso emite CONNECT example.org:443 y tiene una conexión TCP directa a través del proxy, que se podría usar para un acceso directo al shell (incluido el shell interactivo).

    
respondido por el George Y. 17.12.2016 - 05:51
fuente

Lea otras preguntas en las etiquetas