Crear una Página de Inicio de Sesión HTML Personalizada para Fluxion

Beginner
Practicar Ahora

Introducción

Fluxion es una potente herramienta de auditoría de seguridad e investigación de ingeniería social. Una de sus características más conocidas es el ataque de Portal Cautivo (Captive Portal), que crea un punto de acceso Wi-Fi falso y una página de inicio de sesión para capturar credenciales. Si bien Fluxion viene con varias páginas de inicio de sesión preconstruidas, crear una personalizada puede hacer que sus intentos de ingeniería social sean mucho más convincentes y adaptados a un objetivo específico.

En este laboratorio, aprenderá el proceso paso a paso para crear su propia página de inicio de sesión HTML personalizada e integrarla en Fluxion. Navegará por la estructura de directorios de Fluxion, creará un nuevo sitio, escribirá un formulario de inicio de sesión HTML básico y se asegurará de que se comunique correctamente con el backend de Fluxion.

En este paso, navegará al directorio donde Fluxion almacena sus plantillas de portal cautivo. Comprender esta estructura de directorios es el primer paso para agregar su propia página personalizada. Todas las operaciones comenzarán desde el directorio ~/project.

Primero, ingresemos al directorio fluxion que se clonó para usted durante el proceso de configuración.

cd ~/project/fluxion

Ahora, navegue más profundamente en la estructura de directorios para encontrar los sitios del portal cautivo.

cd attacks/Captive\ Portal/sites/

Observe el uso de una barra invertida \ para escapar el espacio en el nombre del directorio Captive Portal.

Finalmente, liste el contenido de este directorio para ver las plantillas de portal existentes. Esto le dará una idea de cómo están organizadas.

ls -l

Debería ver una lista de directorios, cada uno representando una plantilla de página de inicio de sesión diferente.

total 80
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 ASUS_dark_desktop
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 Brand_Generic_Alternative_Login_EN
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 Brand_Generic_Login_EN
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 D-Link_EN
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 Linksys_EN
... (y muchos otros)

Ahora se encuentra en la ubicación correcta para crear su propio portal.

Crear un Nuevo Directorio para su Portal Personalizado

En este paso, creará un directorio dedicado para su nuevo portal personalizado. Fluxion identifica los portales disponibles escaneando directorios dentro de la carpeta sites. Cada directorio debe contener un archivo index.html para ser reconocido como un portal válido.

Desde su ubicación actual (~/project/fluxion/attacks/Captive Portal/sites/), use el comando mkdir para crear un nuevo directorio. Llamémoslo MyCustomPortal.

mkdir MyCustomPortal

Después de crear el directorio, puede verificar que existe listando nuevamente el contenido del directorio sites.

ls

Debería ver MyCustomPortal entre los otros directorios de portales.

ASUS_dark_desktop
Brand_Generic_Alternative_Login_EN
Brand_Generic_Login_EN
...
MyCustomPortal
...

Este nuevo directorio albergará todos los archivos de su página de inicio de sesión personalizada, comenzando con el archivo principal index.html.

Crear un archivo 'index.html' con un formulario de inicio de sesión

En este paso, creará el archivo principal de su portal: index.html. Este archivo contendrá la estructura HTML para un formulario de inicio de sesión simple que se presentará al usuario.

Primero, navegue a su directorio recién creado.

cd MyCustomPortal

Ahora, use el editor de texto nano para crear y editar el archivo index.html.

nano index.html

Dentro del editor nano, pegue el siguiente código HTML básico. Este código crea una página simple con un título, un encabezado y un formulario con un campo de contraseña y un botón de envío.

<!DOCTYPE html>
<html>
  <head>
    <title>Network Login</title>
  </head>
  <body>
    <h1>Please log in to continue</h1>
    <form>
      <p>Password:</p>
      <input type="password" name="pass" />
      <br /><br />
      <input type="submit" value="Login" />
    </form>
  </body>
</html>

Después de pegar el código, guarde el archivo y salga de nano presionando Ctrl+X, luego Y, y finalmente Enter.

Ahora ha creado la parte visual de su página de inicio de sesión. En el siguiente paso, la configurará para enviar correctamente los datos capturados a Fluxion.

Asegurar que el Formulario POSTea a '/login'

En este paso, modificará el formulario HTML para asegurar que se comunica correctamente con el backend de Fluxion. Para que Fluxion intercepte las credenciales, el formulario debe enviar sus datos a una ruta específica (/login) utilizando un método específico (POST).

Abra el archivo index.html nuevamente con nano.

nano index.html

Localice la etiqueta <form>. Necesita añadirle dos atributos: method="POST" y action="/login". El atributo method="POST" le indica al navegador que envíe los datos del formulario en el cuerpo de la solicitud HTTP, y action="/login" especifica el endpoint al que se deben enviar los datos. El servidor web de Fluxion escucha en este endpoint para capturar las credenciales.

Modifique su archivo index.html para que se vea así:

<!DOCTYPE html>
<html>
  <head>
    <title>Network Login</title>
  </head>
  <body>
    <h1>Please log in to continue</h1>
    <form method="POST" action="/login">
      <p>Password:</p>
      <input type="password" name="pass" />
      <br /><br />
      <input type="submit" value="Login" />
    </form>
  </body>
</html>

Observe los cambios en la etiqueta <form>. El atributo name="pass" en el campo de entrada también es importante, ya que es la clave que Fluxion utiliza para identificar la contraseña enviada.

Guarde el archivo y salga de nano (Ctrl+X, Y, Enter). Su portal personalizado ahora está funcionalmente completo y listo para ser utilizado por Fluxion.

Reiniciar Fluxion y Seleccionar su Portal Personalizado

En este paso final, iniciará Fluxion para confirmar que reconoce su portal personalizado recién creado.

Primero, navegue de regreso al directorio principal de fluxion.

cd ~/project/fluxion

Ahora, ejecute el script principal de Fluxion con privilegios de sudo. Se requieren derechos administrativos para las operaciones de red.

sudo ./fluxion.sh

En la primera ejecución, Fluxion puede realizar una verificación de dependencias. Si le solicita instalar herramientas faltantes, presione Enter para continuar. Una vez que las verificaciones se completen, se le presentará el menú principal.

  1. Seleccione su idioma (por ejemplo, ingrese 1 para inglés).
  2. Desde el menú de ataques, elija Captive Portal.

Fluxion escaneará entonces el directorio attacks/Captive Portal/sites/ y le presentará una lista de portales disponibles. Desplácese por esta lista y debería ver su MyCustomPortal como una de las opciones.

Puede seleccionarlo para confirmar que funciona. Dado que este es un entorno virtual sin una tarjeta inalámbrica física, no podrá completar el ataque, pero ver su portal en la lista confirma que lo ha integrado con éxito.

Puede salir de Fluxion en cualquier momento presionando Ctrl+C.

Resumen

¡Felicitaciones! Ha creado e integrado con éxito una página de inicio de sesión HTML personalizada en Fluxion.

En este laboratorio, aprendió a:

  • Navegar por la estructura de directorios interna de Fluxion para localizar los sitios del portal cautivo.
  • Crear un nuevo directorio para albergar sus archivos de portal personalizados.
  • Escribir un archivo index.html básico que contenga un formulario de inicio de sesión.
  • Configurar de manera crítica el formulario para enviar (POST) datos al endpoint /login, permitiendo a Fluxion capturar las credenciales.
  • Iniciar Fluxion y verificar que su portal personalizado es reconocido y está disponible para su uso en un ataque de Portal Cautivo.

Esta habilidad le permite crear páginas de inicio de sesión mucho más específicas y creíbles para sus evaluaciones de seguridad, aumentando significativamente la efectividad potencial de sus compromisos de ingeniería social. Puede mejorar aún más sus páginas agregando CSS para el estilo y JavaScript para contenido dinámico.