Ahora que tenemos nuestro Rogue AP, funcionando como lo dejamos en el articulo anterior vamos a darle una mano de «chapa y pintura» para hacerle pasar por un portal cautivo cualquiera, como los que usan hoteles,restaurantes y sitios cool en general.
Para ello podemos clonar la apariencia de algún portal cautivo de algún sitio cool y demás (eso lo dejo a tu eleccion), pero lo importante es lo que esta «debajo»
Tuneando
Una vez que tengas el portal, tendrás que tunearlo a tu gusto , para conseguir que tenga la apariencia que deseas y sirva para tu propósito(phising,MitM,etc..) En nuestro caso el portal es muy simple y solo registra la mac del equipo entrante, la guarda en un txt y pide que acepte un formulario. Pero todo esto lo podemos hacer todo lo sofisticado que queramos, por ejemplo añadiendo botones de validación en caralibro y demás redes privativas, para capturar credenciales etc..
Instalacion portal cautivo
Para instalar nuestro portal cautivo necesitamos tener instalado nginx y php
apt-get install nginx php5-fpm
Configuracion nginx
server { root /var/www; index index.php;
server_name localhost;
location / {
try_files $uri $uri / index.php;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/PHP5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
Portal cautivo codigo(index.php)
<?php
//Get mac address and save
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
exec("sudo arp -a |grep $REMOTE_ADDR>>/macs/mac.txt");
// Add PC to the firewall
exec("sudo iptables -t nat -I PREROUTING 1 -s $REMOTE_ADDR/32 -i LAN -p tcp --dport 80 -j REDIRECT --to-port 80");
}
nombre_sitio="Nombre que le queramos poner";
// Path to the arp command on the local server
$arp = "/usr/sbin/arp";
?>
<html>
<head><title>Bienvenido a <?php echo $nombre_sitio;?></title>
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<LINK rel="stylesheet" type="text/css" href="./style.css">
</head>
<body>
<form action="" method post>
<p>Pulsa continuar para empezar a navegar</p>
<input type="submit" value="continuar"></form>
</body>
</html>
Permisos ww-data
Para que todo esto funcione necesitamos dar permisos al usuario www-data en /etc/sudoers para que pueda manipular reglas de iptables, para ello usamos el comando visudo
visudo
y añadimos las siguientes lineas: OJo esto es peligroso, porque permite a cualquier atacante que consiga injectar codigo en el servidor manejar las iptables.
www-data ALL=NOPASSWD: /usr/sbin/arp
www-data ALL=NOPASSWD: /sbin/iptables
www-data ALL=NOPASSWD: /usr/bin/rmtrack [0-9]*.[0-9]*.[0-9]*.[0-9]*
Redireccionar a portal cautivo
Para entender lo que vamos a hacer ahora, tenemos que tener claro que los portales cautivos capturan todo el trafico http hasta que el usuario se autentica, bien a través de un formulario o vía cookie.
Ahora vamos con las reglas de enrutamiento con iptables:
iptables -t nat -A PREROUTING -s $portal -i LAN -p tcp --dport 80 -j REDIRECT --to-port 80
Con esto lo que decimos es que todo el trafico que venga por el puerto 80 sea dirigido al mismo puerto de la maquina local.
Con esto ya tendriamos nuestro portal cautivo listo
Happy Hacking ;)
Referencias:http://www.andybev.com/index.php/Using_iptables_and_PHP_to_create_a_captive_portal
Excelente, como siempre. Gracias por compartir.
Estupendo para tener controlado al ganado +999
HOYGAN que pasa que no actualizan elbinario :O