Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
frameless-bitb — Un nuovo approccio al Browser In The Browser (BITB) senza l'uso di iframe, che permette di bypassare i tradizionali framebuster implementati dalle pagine di login come Microsoft e l'utilizzo con Evilginx. | Kitploit
Strumenti/GitHubGitHub/waelmas/frameless-bitb
Strumenti di PhishingEvasione IDS/IPSSfruttamento di Applicazioni WebPhishingIngegneria SocialeApprendimento e Formazione
GitHubwaelmas/frameless-bitb

frameless-bitb

Un nuovo approccio al Browser In The Browser (BITB) senza l'uso di iframe, che permette di bypassare i tradizionali framebuster implementati dalle pagine di login come Microsoft e l'utilizzo con Evilginx.

Vedi Repository
45573452 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Frameless BITB

Un nuovo approccio al Browser In The Browser (BITB) senza l'uso di iframe, che permette di bypassare i tradizionali framebuster implementati da pagine di login come quelle di Microsoft.

Questo codice POC è realizzato per utilizzare questo nuovo BITB con Evilginx e un phishlet Enterprise Microsoft.

Frameless-BITB-DEMO-compressed

Prima di addentrarti, ti consiglio di guardare il mio talk al BSides 2023, dove ho presentato per la prima volta questo concetto insieme a dettagli importanti su come creare l'attacco di phishing "perfetto". ▶ Guarda il video

☕︎ Offrimi un caffè

Video Tutorial: 👇

Disclaimer

Questo strumento è solo per scopi didattici e di ricerca. Dimostra un metodo di Browser In The Browser (BITB) non basato su iframe. L'autore non è responsabile per qualsiasi uso improprio. Utilizza questo strumento solo legalmente ed eticamente, in ambienti controllati per test di difesa della sicurezza informatica. Utilizzando questo strumento, accetti di farlo in modo responsabile e a tuo rischio.

Storia - Il Perché

Nell'ultimo anno, ho sperimentato diversi trucchi per creare l'attacco di phishing "perfetto". I tipici "campanelli d'allarme" che le persone sono addestrate a cercare sono cose come urgenza, minacce, autorità, grammatica scorretta, ecc. La prossima cosa che le persone controllano al giorno d'oggi è il link/URL del sito web con cui interagiscono, e diventano molto consapevoli nel momento in cui viene chiesto loro di inserire credenziali sensibili come email e password.

Qui entra in gioco il Browser In The Browser (BITB). Introdotto originariamente da @mrd0x, il BITB è un concetto che consiste nel creare l'aspetto di una finestra del browser credibile all'interno della quale l'attaccante controlla il contenuto (servendo il sito web malevolo all'interno di un iframe). Tuttavia, la barra degli URL falsa della finestra del browser falsa è impostata sul sito legittimo che l'utente si aspetta. Questo, combinato con uno strumento come Evilginx, diventa la ricetta perfetta per un attacco di phishing credibile.

Il problema è che negli ultimi mesi/anni, i principali siti web come Microsoft hanno implementato vari piccoli trucchi chiamati "framebuster/framekiller" che tentano principalmente di rompere gli iframe che potrebbero essere usati per servire il sito web proxy come nel caso di Evilginx.

In breve, Evilginx + BITB per siti web come Microsoft non funziona più. Almeno non con un BITB che si basa su iframe.

Il Cosa

Un Browser In The Browser (BITB) senza alcun iframe! Semplice come sembra.

Ciò significa che possiamo ora usare BITB con Evilginx su siti web come Microsoft.

Evilginx è solo un esempio forte, ma lo stesso concetto può essere utilizzato anche per altri casi d'uso.

Il Come

I framebuster prendono di mira specificamente gli iframe, quindi l'idea è creare l'effetto BITB senza l'uso di iframe e senza disturbare la struttura/contenuto originale della pagina proxy. Ciò può essere ottenuto iniettando script e HTML accanto al contenuto originale utilizzando ricerca e sostituzione (dette anche sostituzioni), per poi affidarsi completamente a trucchi HTML/CSS/JS per creare l'effetto visivo. Usiamo anche un trucco aggiuntivo chiamato "Shadow DOM" in HTML per posizionare il contenuto della pagina di atterraggio (sfondo) in modo che non interferisca con il contenuto proxy, permettendoci di utilizzare qualsiasi pagina di atterraggio in modo flessibile con pochi script JS aggiuntivi.

Istruzioni

Video Tutorial

Thumbnail con lettore YouTube

https://youtu.be/luJjxpEwVHI

VM Locale:

Crea una VM Linux locale. (Personalmente uso Ubuntu 22 su VMWare Player o Parallels Desktop)

Aggiorna e aggiorna i pacchetti di sistema:

root@kitploit:~
sudo apt update && sudo apt upgrade -y

Configurazione Evilginx:

Opzionale:

Crea un nuovo utente evilginx e aggiungilo al gruppo sudo:

sudo su

adduser evilginx

usermod -aG sudo evilginx

Verifica che l'utente evilginx sia nel gruppo sudo:

su - evilginx

sudo ls -la /root

Vai alla home dell'utente:

cd /home/evilginx

(Puoi fare tutto anche come utente sudo, dato che eseguiamo tutto localmente)

Impostazione di Evilginx

Scarica e costruisci Evilginx: Documentazione ufficiale

Copia i file di Evilginx in /home/evilginx

Installa Go: Documentazione ufficiale

root@kitploit:~
wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz
root@kitploit:~
sudo tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz
root@kitploit:~
nano ~/.profile

AGGIUNGI: export PATH=$PATH:/usr/local/go/bin

root@kitploit:~
source ~/.profile

Controlla:

root@kitploit:~
go version

Installa make:

root@kitploit:~
sudo apt install make

Costruisci Evilginx:

root@kitploit:~
cd /home/evilginx/evilginx2
root@kitploit:~
make

Crea una nuova directory per la build di evilginx insieme a phishlet e redirector:

root@kitploit:~
mkdir /home/evilginx/evilginx

Copia build, phishlet e redirector:

root@kitploit:~
cp /home/evilginx/evilginx2/build/evilginx /home/evilginx/evilginx/evilginx

cp -r /home/evilginx/evilginx2/redirectors /home/evilginx/evilginx/redirectors

cp -r /home/evilginx/evilginx2/phishlets /home/evilginx/evilginx/phishlets

Correzione rapida del firewall di Ubuntu (grazie a @kgretzky)

root@kitploit:~
sudo setcap CAP_NET_BIND_SERVICE=+eip /home/evilginx/evilginx/evilginx

Su Ubuntu, se ottieni l'errore Failed to start nameserver on: :53, prova a modificare questo file:

root@kitploit:~
sudo nano /etc/systemd/resolved.conf

modifica/aggiungi DNSStubListener a no > DNSStubListener=no

poi

root@kitploit:~
sudo systemctl restart systemd-resolved

Modifica delle configurazioni di Evilginx:

Poiché useremo Apache2 davanti a Evilginx, dobbiamo far ascoltare Evilginx su una porta diversa dalla 443.

root@kitploit:~
nano ~/.evilginx/config.json

CAMBIA https_port da 443 a 8443

Installa Apache2 e Abilita i Moduli:

Installa Apache2:

root@kitploit:~
sudo apt install apache2 -y

Abilita i moduli Apache2 che verranno utilizzati: (Stiamo anche disabilitando il modulo access_compat poiché a volte causa problemi)

root@kitploit:~
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
sudo a2enmod env
sudo a2enmod include
sudo a2enmod setenvif
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo a2enmod cache
sudo a2enmod substitute
sudo a2enmod headers
sudo a2enmod rewrite
sudo a2dismod access_compat

Avvia e abilita Apache:

root@kitploit:~
sudo systemctl start apache2
root@kitploit:~
sudo systemctl enable apache2

Prova se Apache e la rete della VM funzionano visitando l'IP della VM da un browser sulla macchina host.

Clona questo Repository:

Installa git se non è già disponibile:

root@kitploit:~
sudo apt -y install git

Clona questo repository:

root@kitploit:~
git clone https://github.com/waelmas/frameless-bitb
root@kitploit:~
cd frameless-bitb

Pagine Personalizzate di Apache:

Crea le directory per le pagine che serviremo:

  • home: (Opzionale) Homepage (al dominio base)
  • primary: Pagina di atterraggio (sfondo)
  • secondary: Finestra BITB (primo piano)
root@kitploit:~
sudo mkdir /var/www/home
sudo mkdir /var/www/primary
sudo mkdir /var/www/secondary

Copia le directory per ogni pagina:

root@kitploit:~
sudo cp -r ./pages/home/ /var/www/

sudo cp -r ./pages/primary/ /var/www/

sudo cp -r ./pages/secondary/ /var/www/

Opzionale: Rimuovi la pagina predefinita di Apache (non utilizzata):

root@kitploit:~
sudo rm -r /var/www/html/

Copia il phishlet O365 nella directory dei phishlet:

root@kitploit:~
sudo cp ./O365.yaml /home/evilginx/evilginx/phishlets/O365.yaml

Opzionale: Per impostare il widget Calendly in modo che utilizzi il tuo account invece di quello predefinito che ho inserito, vai in pages/primary/script.js e modifica CALENDLY_PAGE_NAME e CALENDLY_EVENT_TYPE.

Nota sull'offuscamento demo: Come spiego nel video della guida, ho incluso un offuscamento minimo per contenuti testuali come URL e titoli del BITB. Puoi aprire l'offuscatore demo aprendo demo-obfuscator.html nel tuo browser. In uno scenario reale, ti consiglio vivamente di offuscare porzioni più grandi del codice HTML iniettato o di utilizzare trucchi JS per evitare di essere rilevato e segnalato. La versione avanzata a cui sto lavorando utilizzerà una combinazione di trucchi avanzati per rendere quasi impossibile agli scanner rilevare/identificare il codice BITB, quindi resta sintonizzato.

Certificati SSL autofirmati:

Poiché eseguiamo tutto in locale, dobbiamo generare certificati SSL autofirmati che verranno utilizzati da Apache. Evilginx non avrà bisogno dei certificati poiché lo eseguiremo in modalità sviluppatore.

Utilizzeremo il dominio fake.com che punterà alla nostra VM locale. Se vuoi usare un dominio diverso, assicurati di cambiare il dominio in tutti i file (file di configurazione di Apache, file JS, ecc.)

Crea la directory e le directory padre se non esistono:

root@kitploit:~
sudo mkdir -p /etc/ssl/localcerts/fake.com/

Genera i certificati SSL usando il file di configurazione OpenSSL:

root@kitploit:~
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/localcerts/fake.com/privkey.pem -out /etc/ssl/localcerts/fake.com/fullchain.pem \
-config openssl-local.cnf

Modifica i permessi della chiave privata:

root@kitploit:~
sudo chmod 600 /etc/ssl/localcerts/fake.com/privkey.pem

Configurazioni Personalizzate di Apache:

Copia i file di sostituzione personalizzati (il cuore del nostro approccio):

root@kitploit:~
sudo cp -r ./custom-subs /etc/apache2/custom-subs

Nota importante: In questo repository ho incluso 2 configurazioni di sostituzione per BITB di Chrome su Mac e Chrome su Windows. Entrambe hanno il rilevamento automatico e lo stile per la modalità chiara/scura e dovrebbero fungere da modelli di base per ottenere lo stesso risultato per altre combinazioni browser/OS. Poiché non ho incluso il rilevamento automatico della combinazione browser/OS utilizzata per visitare la nostra pagina di phishing, dovrai usarne una delle due o implementare la tua logica per il passaggio automatico.

Entrambi i file di configurazione sotto /apache-configs/ sono uguali, solo con una direttiva Include diversa utilizzata per il file di sostituzione che verrà incluso. (ci sono 2 riferimenti per ogni file)

root@kitploit:~
# Decommenta quello che desideri e ricordati di riavviare Apache dopo ogni modifica:
#Include /etc/apache2/custom-subs/win-chrome.conf
Include /etc/apache2/custom-subs/mac-chrome.conf

Per semplificare, ho incluso entrambe le versioni come file separati per questo prossimo passaggio.

BITB Windows/Chrome:

root@kitploit:~
sudo cp ./apache-configs/win-chrome-bitb.conf /etc/apache2/sites-enabled/000-default.conf

BITB Mac/Chrome:

root@kitploit:~
sudo cp ./apache-configs/mac-chrome-bitb.conf /etc/apache2/sites-enabled/000-default.conf

Testa le configurazioni di Apache per assicurarti che non ci siano errori:

root@kitploit:~
sudo apache2ctl configtest

Riavvia Apache per applicare le modifiche:

root@kitploit:~
sudo systemctl restart apache2

Modifica del file hosts:

Ottieni l'IP della VM usando ifconfig e annotalo per il passaggio successivo.

Dobbiamo ora aggiungere nuove voci al nostro file hosts, per puntare il dominio utilizzato in questa demo fake.com e tutti i sottodomini utilizzati alla nostra VM su cui sono in esecuzione Apache ed Evilginx.

Su Windows:

Apri Blocco note come amministratore (Cerca > Blocco note > Tasto destro > Esegui come amministratore)

Fai clic sull'opzione File (in alto a sinistra) e nella barra degli indirizzi di Esplora file, copia e incolla quanto segue:

C:\Windows\System32\drivers\etc\

Cambia il tipo di file (in basso a destra) su "Tutti i file".

Fai doppio clic sul file denominato hosts

Su Mac:

Apri un terminale ed esegui quanto segue:

root@kitploit:~
sudo nano /private/etc/hosts

Ora modifica i seguenti record (sostituisci [IP] con l'IP della tua VM) e incollali alla fine del file hosts:

root@kitploit:~
# Configurazione Apache ed Evilginx locale
[IP] login.fake.com
[IP] account.fake.com
[IP] sso.fake.com
[IP] www.fake.com
[IP] portal.fake.com
[IP] fake.com
# Fine sezione

Salva ed esci.

Ora riavvia il browser prima di passare al passaggio successivo.

Nota: Su Mac, utilizza il seguente comando per svuotare la cache DNS:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Nota importante:

Questa demo è realizzata con il phishlet Office 365 Enterprise fornito. Per ottenere le voci host che devi aggiungere per un phishlet diverso, usa phishlet get-hosts [NOME_PHISHLET] ma ricorda di sostituire 127.0.0.1 con l'IP locale effettivo della tua VM.

Fidarsi dei certificati SSL autofirmati:

Poiché stiamo usando certificati SSL autofirmati, il nostro browser ci avviserà ogni volta che proviamo a visitare fake.com, quindi dobbiamo fare in modo che la macchina host si fidi dell'autorità di certificazione che ha firmato i certificati SSL.

Per questo passaggio, è più semplice seguire le istruzioni video, ma ecco comunque il succo.

Apri https://fake.com/ nel tuo browser Chrome.

Ignora l'avviso di sito non sicuro e procedi alla pagina.

Fai clic sull'icona SSL > Dettagli > Esporta certificato IMPORTANTE: Quando salvi, il nome DEVE terminare con .crt affinché Windows lo apra correttamente.

Fai doppio clic su di esso > installa per l'utente corrente. NON selezionare automatico, invece posiziona il certificato in un archivio specifico: seleziona "Autorità di certificazione radice attendibili".

Su Mac: per installare solo per l'utente corrente > seleziona "Portachiavi: login" E fai clic su "Visualizza certificati" > dettagli > attendibilità > "Fidati sempre"

Ora RIAVVIA il tuo Browser

Dovresti essere in grado di visitare https://fake.com ora e vedere la homepage senza avvisi SSL.

Avvio di Evilginx:

A questo punto, tutto dovrebbe essere pronto, quindi possiamo avviare Evilginx, impostare il phishlet, creare il nostro lure e testarlo.

Opzionale: Installa tmux (per mantenere evilginx in esecuzione anche se la sessione del terminale viene chiusa. Utile principalmente quando si esegue su una VM remota.)

root@kitploit:~
sudo apt install tmux -y

Avvia Evilginx in modalità sviluppatore (usando tmux per evitare di perdere la sessione):

root@kitploit:~
tmux new-session -s evilginx
root@kitploit:~
cd ~/evilginx/
root@kitploit:~
./evilginx -developer

(Per riattaccare la sessione tmux usa tmux attach-session -t evilginx)

Configurazione di Evilginx:

root@kitploit:~
config domain fake.com
root@kitploit:~
config ipv4 127.0.0.1

IMPORTANTE: Imposta la modalità Blacklist di Evilginx su NoAdd per evitare di mettere in blacklist Apache, poiché tutte le richieste arriveranno da Apache e non dall'IP del visitatore effettivo.

root@kitploit:~
blacklist noadd

Imposta Phishlet e Lure:

root@kitploit:~
phishlets hostname O365 fake.com
root@kitploit:~
phishlets enable O365
root@kitploit:~
lures create O365
root@kitploit:~
lures get-url 0

Copia l'URL del lure e visitarlo dal tuo browser (usa un utente ospite su Chrome per evitare di dover eliminare tutti i dati salvati/nella cache tra un test e l'altro).

Risorse Utili

BITB originale basato su iframe by @mrd0x: https://github.com/mrd0x/BITB

Corso Evilginx Mastery del creatore di Evilginx @kgretzky: https://academy.breakdev.org/evilginx-mastery

Il mio talk a BSides 2023: https://www.youtube.com/watch?v=p1opa2wnRvg

Come proteggere Evilginx usando Cloudflare e offuscamento HTML: https://www.jackphilipbutton.com/post/how-to-protect-evilginx-using-cloudflare-and-html-obfuscation

Risorse Evilginx per Microsoft 365 by @BakkerJan: https://janbakker.tech/evilginx-resources-for-microsoft-365/

TODO

  • Creare script per automatizzare la maggior parte dei passaggi
Scarica lo strumento