Identificar un AP no Autorizado y un Portal Cautivo

Beginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá los pasos fundamentales para identificar un Punto de Acceso (AP) no autorizado y un portal cautivo malicioso. Un AP no autorizado es un punto de acceso inalámbrico instalado en una red sin la autorización explícita del propietario de la red. Los atacantes a menudo los utilizan para lanzar ataques de "man-in-the-middle" (hombre en el medio) para interceptar el tráfico.

Un portal cautivo es una página web que los usuarios deben ver e interactuar con ella antes de que se les conceda acceso a una red pública. Si bien muchos puntos de acceso legítimos los utilizan, los atacantes pueden crear los suyos propios para realizar ataques de phishing (suplantación de identidad) de credenciales.

Este laboratorio simulará este escenario en un entorno seguro. Utilizará herramientas de línea de comandos para escanear redes, detectar una red sospechosa de "evil twin" (gemelo malvado) y analizar un portal cautivo falso para identificarlo como una amenaza.

Escanear Redes Wi-Fi en un Dispositivo Cliente

En este paso, simulará el escaneo de redes Wi-Fi disponibles. En un escenario del mundo real, utilizaría herramientas como nmcli, iwlist o airodump-ng. Para este laboratorio, hemos preparado un script llamado scan-wifi.sh que imita la salida de un escaneo de red. Esto nos permite realizar el laboratorio sin necesidad de hardware Wi-Fi físico.

Todos los archivos para este laboratorio se encuentran en el directorio ~/project. Ejecutemos el script para ver la lista de redes Wi-Fi simuladas.

Ejecute el siguiente comando en su terminal:

~/project/scan-wifi.sh

Debería ver una salida similar a esta, que enumera las redes disponibles, su intensidad de señal y el tipo de seguridad.

IN-USE  BSSID              SSID        MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
*       AA:BB:CC:11:22:33  CorpWifi    Infra  6     54 Mbit/s   90      ▂▄▆█  WPA2
        AA:BB:CC:44:55:66  CorpWifi    Infra  11    54 Mbit/s   95      ▂▄▆█  --
        DE:F0:12:34:56:78  GuestWifi   Infra  1     54 Mbit/s   70      ▂▄▆_  WPA2

Detectar Dos Redes con el Mismo Nombre (ESSID)

En este paso, analizará los resultados del escaneo para detectar una anomalía. El ESSID (Extended Service Set Identifier) es el nombre público de una red Wi-Fi.

Observe detenidamente la salida del paso anterior. Debería notar que dos redes diferentes comparten el mismo SSID, "CorpWifi". Este es un signo clásico de un posible ataque de "Evil Twin" (gemelo malvado). Una red es la legítima y la otra es un AP no autorizado configurado por un atacante.

La diferencia clave está en la columna SECURITY. La red legítima utiliza cifrado WPA2, mientras que la red no autorizada está abierta (indicada por --). Los atacantes a menudo crean redes abiertas porque los usuarios son más propensos a conectarse a ellas sin necesidad de una contraseña.

Para que esto sea más claro, utilizaremos el comando grep para filtrar la salida y mostrar solo las redes llamadas CorpWifi.

~/project/scan-wifi.sh | grep CorpWifi

Este comando producirá la siguiente salida, resaltando las dos redes.

*       AA:BB:CC:11:22:33  CorpWifi    Infra  6     54 Mbit/s   90      ▂▄▆█  WPA2
        AA:BB:CC:44:55:66  CorpWifi    Infra  11    54 Mbit/s   95      ▂▄▆█  --

Conectarse a la Versión Abierta (Sin Cifrar) de la Red

En este paso, simularemos la conexión a la red sospechosa y abierta "CorpWifi". En un escenario real, el sistema operativo de su dispositivo manejaría la conexión. Para nuestra simulación, "conectarse" implicará iniciar un servidor web local que actuará como el portal cautivo del AP no autorizado.

Los archivos para este portal falso se encuentran en el directorio ~/project/portal. Ejecutaremos un servidor web simple de Python desde ese directorio. Para mantener nuestra terminal libre para otros comandos, ejecutaremos el servidor como un proceso en segundo plano.

Primero, cambie su directorio actual a ~/project/portal:

cd ~/project/portal

A continuación, inicie el servidor web de Python en segundo plano utilizando el símbolo &:

python3 server.py &

Verá un ID de proceso y un mensaje de confirmación, que indica que el servidor se está ejecutando.

[1] 1234
Serving captive portal on port 8000

El servidor ahora se está ejecutando y escuchando conexiones en el puerto 8000, simulando el entorno de la red no autorizada.

Observar la Redirección Automática a una Página de Inicio de Sesión

En este paso, verá el portal cautivo en acción. Después de conectarse a una red con un portal cautivo, cualquier intento de navegar por la web se intercepta y se redirige a una página de inicio de sesión o de términos de servicio.

Simularemos esto utilizando el comando curl para intentar acceder a un sitio web. Dado que nuestro entorno de red simulado está controlado por el servidor Python que acabamos de iniciar, cualquier solicitud HTTP en localhost:8000 será "capturada" y se le servirá el archivo index.html de nuestro portal.

Utilice curl para realizar una solicitud al servidor local. Esto imita la solicitud inicial de un navegador después de conectarse a la nueva red.

curl http://localhost:8000

El comando devolverá el código fuente HTML de la página de inicio de sesión falsa. En un navegador real, este código se renderizaría como un formulario de inicio de sesión gráfico.

<!DOCTYPE html>
<html>
  <head>
    <title>CorpWifi Login</title>
    <style>
      body {
        font-family: sans-serif;
        background: #f0f2f5;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 100vh;
        margin: 0;
      }
      .login-box {
        background: white;
        padding: 20px 40px;
        border-radius: 8px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        text-align: center;
      }
      input {
        margin: 10px 0;
        padding: 8px;
        width: 200px;
        border: 1px solid #ddd;
        border-radius: 4px;
      }
      button {
        padding: 10px 20px;
        background-color: #1877f2;
        color: white;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        width: 100%;
      }
    </style>
  </head>
  <body>
    <div class="login-box">
      <h2>CorpWifi Access</h2>
      <p>Please log in to continue.</p>
      <input type="text" placeholder="Username" />
      <br />
      <input type="password" placeholder="Password" />
      <br />
      <button>Log In</button>
      <p style="font-size: 12px; color: #888; margin-top: 15px;">
        Powered by CorpWifi-Login.net
      </p>
    </div>
  </body>
</html>

Reconocer que la URL no es un Dominio Legítimo

En este paso final, realizará la verificación crucial que confirma que se trata de un portal cautivo malicioso. El objetivo de dicho portal es engañarle para que introduzca sus credenciales en una página falsa. La forma más fiable de detectar una falsificación es inspeccionar el nombre de dominio (URL).

En un navegador real, comprobaría la barra de direcciones. En nuestra simulación, podemos inspeccionar el contenido HTML en busca de pistas. Si observamos el HTML del paso anterior, podemos encontrar una línea de texto sospechosa en la parte inferior. Usemos grep para encontrarla dentro del archivo index.html.

Primero, volvamos al directorio principal del proyecto.

cd ~/project

Ahora, busque texto sospechoso dentro del archivo HTML del portal:

grep 'CorpWifi-Login.net' portal/index.html

El comando encontrará y mostrará la línea que contiene el dominio sospechoso.

    <p style="font-size: 12px; color: #888; margin-top: 15px;">Powered by CorpWifi-Login.net</p>

El dominio CorpWifi-Login.net es muy sospechoso. Los atacantes a menudo registran dominios que suenan oficiales pero que no lo son. Un portal corporativo legítimo estaría alojado en el dominio oficial de la empresa (por ejemplo, wifi.corp.com). Este descubrimiento confirma que la red abierta es un AP no autorizado, y la página de inicio de sesión es un intento de phishing.

Resumen

En este laboratorio, identificó con éxito un AP no autorizado y un portal cautivo malicioso a través de la simulación. Ha aprendido un proceso práctico paso a paso para identificar amenazas comunes de Wi-Fi.

Ha logrado lo siguiente:

  • Escaneó redes Wi-Fi e identificó un "gemelo malvado" (evil twin) sin cifrar con el mismo nombre que una red segura.
  • Simuló la conexión al AP no autorizado iniciando un servidor local.
  • Observó cómo un portal cautivo intercepta el tráfico web y presenta una página de inicio de sesión.
  • Analizó el contenido de la página de inicio de sesión para encontrar un nombre de dominio sospechoso y no legítimo, confirmando el intento de phishing.

La conclusión clave es ser siempre cauteloso con las redes Wi-Fi abiertas y examinar la URL de cualquier página de inicio de sesión antes de introducir información confidencial.

Finalmente, detengamos el proceso del servidor en segundo plano. El %1 se refiere al primer trabajo en segundo plano.

kill %1