
evilginx3 + gophish

Combinazione di evilginx3 e GoPhish.
Questa è la versione pubblica e gratuita del repository, NON È L'ULTIMA VERSIONE. Mantengo intenzionalmente questa versione pubblica del repository indietro rispetto alla mia versione per le persone che mi sponsorizzano tramite GitHub Sponsors. Ciò significa che questa versione potrebbe mancare di correzioni di bug o funzionalità e non ci si devono aspettare correzioni di bug, aggiunte di funzionalità o supporto qui. Diventa uno sponsor per accedere all'ultima versione.
Prima di iniziare, tengo a precisare che non intendo in alcun modo criticare Kuba Gretzky e il suo lavoro. Lo ringrazio personalmente per aver rilasciato evilginx3 al pubblico. Senza il suo lavoro, questo lavoro non esisterebbe. Devo anche ringraziare Jordan Wright per aver sviluppato/mantenuto l'incredibile toolkit GoPhish. Anche il fork di Gophish di Kuba è stato utilizzato come ispirazione per alcune parti di questo progetto dopo aver creato la propria integrazione.
Dovresti avere una conoscenza di base su come usare GoPhish e evilginx3.
Non sarò responsabile per alcun uso improprio o illegittimo di questo software. Questo software deve essere utilizzato solo in test di penetrazione autorizzati o impegni di red team in cui l'operatore ha ricevuto esplicita autorizzazione scritta per condurre social engineering.
In qualità di penetration tester o red teamer, potresti aver sentito parlare di evilginx3 come framework proxy man-in-the-middle in grado di bypassare l'autenticazione a due fattori/multifattore. Questo è allettante, per usare un eufemismo, ma quando si cerca di usarlo per impegni di social engineering, ci sono alcuni punti critici.
Mancanza di tracciamento - evilginx3 non fornisce statistiche di tracciamento univoche per vittima (ad es. email aperta, link cliccato, ecc.), il che è problematico per i clienti che vogliono/hanno bisogno/pagano per queste statistiche quando si iscrivono a un impegno di social engineering.
Non è un toolkit completo di social engineering - evilginx3 fornisce solo capacità proxy man-in-the-middle, non offre tutte le funzionalità necessarie per una campagna di social engineering via email/SMS. Ad esempio, non invia email ai target né fornisce questa funzionalità.
Nessuna GUI - abbiamo davvero bisogno di spiegarlo ulteriormente? Amiamo tutti le nostre GUI e la rappresentazione visiva dei dati per una campagna di social engineering è inestimabile. Gli operatori possono davvero comprendere a fondo il successo delle loro campagne di social engineering potendo visualizzare una rappresentazione grafica dei dati.
In questa configurazione, GoPhish viene utilizzato per inviare email e fornire una dashboard per le statistiche delle campagne di evilginx3, ma non viene utilizzato per alcuna landing page. I tuoi link di phishing inviati da GoPhish punteranno a un percorso lure di evilginx3 e evilginx3 verrà utilizzato per le landing page. Ciò offre la possibilità di bypassare comunque il 2FA/MFA con evilginx3, senza perdere quelle preziose statistiche. Le notifiche degli eventi della campagna in tempo reale sono state fornite con un server websocket/http locale che ho sviluppato e le stringhe JSON complete e utilizzabili contenenti token/cookie da evilginx3 vengono visualizzate direttamente nella GUI di GoPhish (e nel feed):


evilginx3 ascolterà su un indirizzo accessibile esternamente sulla porta 443 (o qualsiasi porta tu scelga nella configurazione di evilginx3)GoPhish ascolterà localmente sulle porte 8080 e 3333 (il server di phishing sulla porta 8080 non viene utilizzato)Cloudflare Turnstile ascolterà localmente sulla porta 80setup.sh è stato fornito per automatizzare le configurazioni necessarie. Una volta eseguito questo script e forniti i valori corretti, dovresti essere pronto per iniziare. Di seguito l'aiuto per la configurazione:
Usage:
./setup <root domain> <subdomain(s)> <root domain bool> <feed bool> <rid replacement>
- root domain - il dominio radice da utilizzare per la campagna
- subdomains - una lista separata da spazi di sottodomini evilginx3, può essere uno solo
- root domain bool - true o false per proxyare il dominio radice verso evilginx3
- feed bool - true o false se intendi utilizzare il feed live
- rid replacement - sostituisce il valore predefinito "rid" di gophish negli URL di phishing con questo valore
Esempio:
./setup.sh example.com "accounts myaccount" false true user_id
L'integrazione di Cloudflare Turnstile ha sostituito le regole di reindirizzamento e una blacklist IP con Apache2. L'approccio Apache2 si basava su un elenco predefinito di regole di reindirizzamento e una blacklist IP. Potremmo non rilevare determinati user agent, host o indirizzi IP che finiscono per rilevare la nostra infrastruttura. Questo di solito viene fatto da bot e software automatizzato che scansiona l'infrastruttura di phishing. La tecnologia Cloudflare Turnstile è una delle migliori difese contro i bot al momento della scrittura e verifica che un utente reale stia accedendo al tuo sito.
Turnstile nella dashboardevilginx3/templates/forbidden.html e evilginx3/templates/turnstile.html con le tue modificheevilginx3, includi le chiavi pubbliche/private con il flag turnstile separate da :. Per esempio:./evilginx3 -feed -g ../gophish/gophish.db -turnstile <PUBLIC_KEY>:<PRIVATE_KEY>
Post sul blog qui.
Se includessi una pagina HTML statica per la funzionalità Cloudflare Turnstile, l'infrastruttura di phishing di tutti avrebbe la stessa pagina e ciò porterebbe a rilevamenti di codice HTML statico. Entrano in gioco i template Go HTML. Ho incluso un template iniziale in evilginx3/templates/turnstile.html come linea guida DEVI CAMBIARLO. Ecco le regole su come è impostato il codice del template; la mancata osservanza di queste regole probabilmente romperà la funzionalità Cloudflare Turnstile:
{{.FormActionURL}}, {{.ErrorMessage}} e {{.TurnstilePublicKey}}Turnstile deve essere la variabile di template {{.FormActionURL}}data-sitekey per la classe div cf-turnstile deve essere la variabile di template {{.TurnstilePublicKey}}evilginx3/templates/turnstile.htmlbuttonNel caso in cui tu abbia eseguito setup.sh una volta e hai già sostituito il valore predefinito RId in tutto il progetto, replace_rid.sh è stato creato per sostituire nuovamente il valore RId.
Usage:
./replace_rid <previous rid> <new rid>
- previous rid - il precedente valore rid che è stato sostituito
- new rid - il nuovo valore rid per sostituire il precedente
Esempio:
./replace_rid.sh user_id client_id
Una volta eseguito setup.sh, i passaggi successivi sono:
GoPhish e configura il template email, il profilo di invio email e i gruppievilginx3 e configura phishlet e lure (devi specificare il percorso completo del database sqlite3 di GoPhish con il flag -g)GoPhish e imposta l'URL di destinazione come percorso lure per il phishlet di evilginx3La funzione Generatore di codici QR ti permette di generare codici QR per implementare campagne di social engineering tramite codici QR. Ecco i passaggi per utilizzarla:
{{.QR}}:


Nota che questa funzione è attualmente supportata solo per campagne email e template email HTML
Post sul blog qui.
È stata effettuata una rielaborazione completa di GoPhish per fornire supporto alle campagne SMS con Twilio. La tua nuova dashboard evilgophish sarà simile a quella qui sotto:

Una volta eseguito setup.sh, i passaggi successivi sono:
SMS. Utilizzerai solo Testo quando crei un template di messaggio SMS e non dovresti includere un link di tracciamento poiché apparirà nel messaggio SMS. Lascia vuoti Envelope Sender e Subject come di seguito:
Profilo di invio SMS. Inserisci il tuo numero di telefono da Twilio, Account SID e Auth Token:
CSV sono stati mantenuti uguali per compatibilità, quindi mantieni gli stessi nomi di colonna CSV e inserisci i numeri di telefono dei target nella colonna Email. Nota che Twilio accetta i seguenti formati di numeri di telefono, quindi devono essere in uno di questi tre:
evilginx3 e configura phishlet e lure (devi specificare il percorso completo del database sqlite3 di GoPhish con il flag -g)GoPhish e imposta l'URL di destinazione come percorso lure per il phishlet di evilginx3Post sul blog qui.
Le notifiche degli eventi della campagna in tempo reale sono gestite da un server websocket/http locale e da un'app feed live. Per configurare:
Seleziona true per feed bool quando esegui setup.sh
cd nella directory evilfeed e avvia l'app con ./evilfeed
Quando avvii evilginx3, fornisci il flag -feed per abilitare il feed. Per esempio:
./evilginx3 -feed -g /opt/evilgophish/gophish/gophish.db
http://localhost:1337/. La dashboard del feed sarà simile a quella qui sotto:
NOTE IMPORTANTI
JavaScript e NON è necessario aggiornare la pagina. Se aggiorni la pagina, PERDERAI tutti gli eventi fino a quel punto.Aggiungerò phishlet a questo repository a mia discrezione. Non ci si deve aspettare che io crei phishlet come parte di questo repository, sei tu a dover creare i tuoi. NON APRIRE ISSUE IN QUESTO REPOSITORY PER I PHISHLET
Il 10 maggio 2023 Kuba Gretzky ha aggiornato evilginx dalla versione 2.4.0 alla versione 3.0.0. Puoi trovare un post dettagliato sul blog sulle modifiche allo strumento qui: evilginx3+mastery. In particolare, le modifiche al formato del file phishlet molto probabilmente romperanno i phishlet precedenti alla versione 3.0.0 e dovranno essere riscritti. Sebbene possa essere un lavoro riscriverli, ci sono vantaggi aggiuntivi con il nuovo formato del file phishlet. La documentazione sul formato phishlet per la versione 3.0.0 si trova qui: Phishlet Format v3.0.0. I Phishlet in formato legacy saranno comunque conservati in questo repository nella cartella evilginx3/legacy_phishlets. I compatibili con la versione saranno memorizzati in . Non tutti i legacy sono ancora stati convertiti al formato , continuerò ad aggiornarli appena possibile!
Lo script di installazione è stato testato su Ubuntu Focal/Jammy e installa l'ultima versione di Go dal sorgente. I binari potrebbero non essere compilati correttamente a seconda del tuo ambiente Go e di ciò che hai installato, ad esempio installando le versioni originali di questi progetti e poi provando a installare questa versione. Apporta anche modifiche al DNS in modo che evilginx3 possa prenderne il controllo. Dovresti comprendere le implicazioni di ciò e rivederle. Si consiglia un ambiente pulito e altri sistemi operativi non sono stati testati.
Non è raro testare il tracciamento di una campagna prima di lanciarla e ti incoraggio a farlo, ma ti lascio solo un avvertimento. evilginx3 creerà un cookie e stabilirà una sessione per ogni nuovo browser della vittima. Se continui a testare più campagne e più link di phishing nello stesso browser, confonderai il processo di tracciamento poiché il valore RId viene estratto dalle richieste e impostato all'inizio di una nuova sessione. Se stai facendo questo, non stai simulando veramente una vittima, poiché una vittima non avrebbe mai accesso a un altro link di phishing oltre al proprio, inutile dirlo che questo non accadrà mai durante una campagna reale. Questo per avvertirti onestamente di non aprire un issue per questo, poiché non stai usando lo strumento nel modo previsto. Se desideri simulare una nuova vittima, puoi testare il processo di tracciamento utilizzando un nuovo browser/scheda in modalità incognito.
GoPhish non viene mai utilizzato in nessuna delle tue pagine di phishing effettive e le intestazioni delle email sono state rimosse, quindi non c'è bisogno di preoccuparsi di IOCs al suo interno.
rid predefinita negli URL di phishing viene scelta dall'operatore in setup.shSMSSessione catturata per le sessioni/token catturati di evilginx3Vedi il file CHANGELOG.md per le modifiche apportate dal rilascio iniziale.
Non ci si deve aspettare che io risponda ai problemi in questa versione pubblica del repository. Non mi stai sponsorizzando né finanziando lo sviluppo del progetto, quindi non ci si devono aspettare supporto. Sponsorizzami per un supporto maggiore.
evilginx 3.x.xMi piacerebbe vedere questo progetto migliorare e crescere nel tempo. Se hai idee per miglioramenti, nuove regole di reindirizzamento, nuovi indirizzi IP/blocchi da blacklistare, phishlet o suggerimenti, per favore apri una pull request.
Phishlet3.0.0evilginx3/phishletsphishlet3.x.x