Utilizar la opción 'Without a Spoofer' de SSL Stripping

Beginner
Practicar Ahora

Introducción

El SSL stripping es un tipo de ataque Man-in-the-Middle (MITM) que obliga a un navegador web a conectarse a un sitio web a través de una conexión HTTP no cifrada, incluso si el usuario tenía la intención de conectarse de forma segura a través de HTTPS. Esto permite a un atacante interceptar y leer todo el tráfico entre el usuario y el sitio web.

En este laboratorio, utilizará la herramienta Wifiphisher para realizar un ataque de SSL stripping. Específicamente, explorará la opción 'Without a spoofer' (Sin suplantador), que se basa en interceptar y modificar el tráfico sin utilizar un certificado SSL falso. Este ejercicio práctico le ayudará a comprender la mecánica de este ataque en un entorno controlado y seguro.

Lanzar el Ataque de Portal Cautivo

En este paso, lanzará la herramienta Wifiphisher para crear un Punto de Acceso (AP) falso e iniciar un ataque de portal cautivo. Dado que el entorno virtual de LabEx no tiene una tarjeta inalámbrica física, utilizaremos opciones específicas para simular el ataque.

Primero, abra una terminal. Ejecutaremos wifiphisher con sudo porque necesita privilegios elevados para administrar interfaces de red y servicios. Usaremos la opción --nojamming para evitar que intente interferir con redes WiFi reales y --essid "Free WiFi" para nombrar nuestra red falsa. También necesitamos especificar un escenario de portal cautivo; usaremos firmware-upgrade.

Ejecute el siguiente comando en su terminal:

sudo wifiphisher --nojamming --essid "Free WiFi" -p firmware-upgrade

Después de ejecutar el comando, Wifiphisher se iniciará. Detectará automáticamente sus interfaces de red. Es posible que se le pida que seleccione la interfaz para el AP y la interfaz para NAT. Para ambas solicitudes, normalmente puede presionar Enter para aceptar la opción predeterminada, que suele ser eth0.

Verá una salida similar a esta mientras la herramienta se inicializa:

[*] Starting Wifiphisher 1.4GIT ( https://wifiphisher.org ) at 2023-10-27 10:00
[+] Timezone detected. Setting channel hopping to the appropriate regulatory domain.
[+] Selecting eth0 for the AP interface.
[+] Selecting eth0 for the Internet-connected interface.
...

Al ser consultado sobre SSL, seleccione la opción 'Without a spoofer'

En este paso, configurará el método de SSL stripping para el ataque. Después de la configuración inicial, Wifiphisher le preguntará cómo desea manejar el tráfico protegido por SSL/TLS. Esta es una elección crítica que determina la naturaleza del ataque man-in-the-middle.

Wifiphisher presentará una solicitud con dos opciones principales:

  1. With a spoofer (Con suplantador): Este método genera un certificado SSL falso sobre la marcha y se lo presenta al cliente. Esto a menudo desencadena una advertencia de seguridad en el navegador del cliente.
  2. Without a spoofer (Sin suplantador): Este método intenta degradar la conexión a HTTP plano sin usar ningún certificado. Se basa en que el navegador del cliente no imponga una conexión segura.

Verá una solicitud como esta en su terminal:

[?] How do you want to handle SSL/TLS-protected traffic?
1. With a spoofer (Generate a fake cert on the fly and spoof the domain)
2. Without a spoofer (Downgrade to HTTP)
[1/2]:

Para este laboratorio, estamos explorando la segunda opción. Escriba 2 y presione Enter.

2

Después de que haga su selección, Wifiphisher finalizará la configuración del AP falso y el portal cautivo. Luego estará listo para aceptar conexiones de clientes. La terminal mostrará mensajes indicando que los servidores proxy HTTP y HTTPS están en funcionamiento.

[*] Starting the HTTP and HTTPS proxy servers...
[*] Starting AP...

En este paso, discutiremos el mecanismo detrás de la opción de SSL stripping 'Without a spoofer'. No hay comandos que ejecutar aquí; esta sección es para su comprensión conceptual.

El método 'Without a spoofer' es una forma de ataque más sutil. Así es como funciona:

  1. Solicitud Inicial: Una víctima se conecta a su red falsa "Free WiFi". Abre su navegador e intenta navegar a un sitio seguro, por ejemplo, https://example.com.
  2. Intercepción: Wifiphisher, actuando como la puerta de enlace, intercepta esta solicitud antes de que llegue a Internet.
  3. Degradación: En lugar de intentar suplantar example.com con un certificado falso, Wifiphisher hace algo diferente. Reenvía la solicitud del usuario al https://example.com real, pero sirve el contenido de vuelta a la víctima a través de una conexión http:// simple.
  4. Reescritura de Contenido: De manera crucial, Wifiphisher escanea el contenido HTML que recibe del servidor real y reescribe todos los enlaces. Cualquier enlace que era https://... se cambia a http://.... Esto mantiene al usuario dentro de la sesión no cifrada durante el mayor tiempo posible.

El éxito de este ataque depende de dos factores principales:

  • Que el usuario no note la ausencia del icono de candado en el navegador.
  • Que el sitio web objetivo no utilice HTTP Strict Transport Security (HSTS). HSTS es una política de seguridad que los servidores web pueden usar para indicar a los navegadores que solo deben comunicarse a través de HTTPS. Si un navegador ha recibido previamente una cabecera HSTS de un sitio, se negará a conectarse a través de HTTP, frustrando este ataque.

En este paso, simulará la conexión de un cliente al AP falso e intentará acceder a un sitio web seguro. En un escenario del mundo real, una víctima conectaría su dispositivo a la red "Free WiFi". Aquí, simularemos esto usando el comando curl en una nueva terminal.

Primero, abra una nueva pestaña de terminal. Puede hacer esto haciendo clic en el icono + en el panel de terminal. Esta nueva terminal actuará como nuestro "cliente víctima".

En esta nueva terminal, usaremos curl para intentar acceder a un sitio HTTPS. Usaremos httpforever.com, un sitio diseñado para fines de prueba que no impone HSTS. La bandera -v (verbose) nos mostrará información detallada sobre el proceso de conexión.

Ejecute el siguiente comando en la nueva terminal:

curl -v https://httpforever.com

Debido a que Wifiphisher está controlando la red, esta solicitud será interceptada. En lugar de llegar al httpforever.com real, será manejada por nuestra herramienta de ataque.

Observe si la conexión se degrada a HTTP

En este paso, observará los resultados del ataque tanto en la terminal del cliente como en la del atacante para confirmar que la conexión se degradó con éxito.

Primero, observe la salida en su terminal de cliente (donde ejecutó curl). La salida detallada mostrará que su solicitud a https://httpforever.com resultó en una redirección. Verá un código de estado 302 Found y una cabecera Location que apunta a una dirección HTTP, que es la página del portal cautivo.

La salida se verá algo así:

*   Trying 10.0.0.1:443...
* Connected to httpforever.com (10.0.0.1) port 443 (#0)
...
< HTTP/1.1 302 Found
< Location: http://10.0.0.2:8080/
< Content-Length: 0
< Date: Fri, 27 Oct 2023 10:05:00 GMT
< Server: Python/3.10 aiohttp/3.8.5
...

Observe que la cabecera Location lo redirige a una dirección http://. Esto confirma la degradación.

A continuación, vuelva a su primera terminal donde se está ejecutando wifiphisher. Verá nuevas entradas de registro que muestran que un cliente se ha conectado y que sus solicitudes están siendo manejadas. Registrará la solicitud GET HTTP del cliente simulado.

[+] 192.168.1.100 victim-device connected to Free WiFi
[*] Sent a captive portal page to 192.168.1.100
[+] GET 192.168.1.100: http://httpforever.com/

Esto confirma que el atacante está interceptando con éxito el tráfico en texto plano.

Para finalizar el laboratorio, detenga la herramienta Wifiphisher cambiando a su terminal y presionando Ctrl+C.

Resumen

En este laboratorio, demostró con éxito un ataque de SSL stripping utilizando la opción 'Without a spoofer' (Sin suplantador) en Wifiphisher.

Aprendió a:

  • Lanzar Wifiphisher para crear un AP falso para un ataque de portal cautivo.
  • Seleccionar el método de SSL stripping 'Without a spoofer'.
  • Simular la conexión de un cliente usando curl en una terminal separada.
  • Observar la evidencia de la degradación de la conexión de HTTPS a HTTP analizando la salida tanto del cliente como de la herramienta del atacante.

Este ejercicio resalta la importancia de mecanismos de seguridad como HSTS para protegerse contra este tipo de ataques de degradación. ¡Felicitaciones por completar este laboratorio!