Phishing Methodology
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Riconoscere la vittima
Selezionare il dominio della vittima.
Eseguire alcune enumerazioni web di base cercando portali di accesso utilizzati dalla vittima e decidere quale fingere.
Utilizzare alcune OSINT per trovare email.
Preparare l'ambiente
Acquistare il dominio che si intende utilizzare per la valutazione di phishing
Configurare il servizio email relativi record (SPF, DMARC, DKIM, rDNS)
Configurare il VPS con gophish
Preparare la campagna
Preparare il modello di email
Preparare la pagina web per rubare le credenziali
Lanciare la campagna!
Parola chiave: Il nome di dominio contiene una parola chiave importante del dominio originale (es., zelster.com-management.com).
sottodominio con trattino: Cambiare il punto in un trattino di un sottodominio (es., www-zelster.com).
Nuovo TLD: Stesso dominio utilizzando un nuovo TLD (es., zelster.org)
Omo-glyph: sostituisce una lettera nel nome di dominio con lettere che sembrano simili (es., zelfser.com).
Trasposizione: scambia due lettere all'interno del nome di dominio (es., zelsetr.com).
Singolarizzazione/Pluralizzazione: Aggiunge o rimuove “s” alla fine del nome di dominio (es., zeltsers.com).
Omissione: rimuove una delle lettere dal nome di dominio (es., zelser.com).
Ripetizione: ripete una delle lettere nel nome di dominio (es., zeltsser.com).
Sostituzione: Come l'omo-glyph ma meno furtivo. Sostituisce una delle lettere nel nome di dominio, forse con una lettera vicina alla lettera originale sulla tastiera (es., zektser.com).
Sottodominato: Introduce un punto all'interno del nome di dominio (es., ze.lster.com).
Inserimento: inserisce una lettera nel nome di dominio (es., zerltser.com).
Punto mancante: Aggiunge il TLD al nome di dominio. (es., zelstercom.com)
Strumenti Automatici
Siti Web
C'è una possibilità che uno dei bit memorizzati o in comunicazione possa essere automaticamente invertito a causa di vari fattori come flare solari, raggi cosmici o errori hardware.
Quando questo concetto è applicato alle richieste DNS, è possibile che il dominio ricevuto dal server DNS non sia lo stesso del dominio inizialmente richiesto.
Ad esempio, una singola modifica di bit nel dominio "windows.com" può cambiarlo in "windnws.com."
Gli attaccanti possono sfruttare questo registrando più domini a bit-flipping che sono simili al dominio della vittima. La loro intenzione è reindirizzare gli utenti legittimi alla propria infrastruttura.
Per ulteriori informazioni leggi https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/
Puoi cercare in https://www.expireddomains.net/ un dominio scaduto che potresti utilizzare. Per assicurarti che il dominio scaduto che stai per acquistare abbia già un buon SEO puoi cercare come è categorizzato in:
https://github.com/laramies/theHarvester (100% gratuito)
https://phonebook.cz/ (100% gratuito)
Per scoprire di più indirizzi email validi o verificare quelli che hai già scoperto puoi controllare se puoi forzare in modo brutale i server smtp della vittima. Scopri come verificare/scoprire indirizzi email qui. Inoltre, non dimenticare che se gli utenti utilizzano qualunque portale web per accedere alle loro email, puoi controllare se è vulnerabile a forza bruta del nome utente, ed esplorare la vulnerabilità se possibile.
Puoi scaricarlo da https://github.com/gophish/gophish/releases/tag/v0.11.0
Scarica e decomprimi all'interno di /opt/gophish
ed esegui /opt/gophish/gophish
Ti verrà fornita una password per l'utente admin sulla porta 3333 nell'output. Pertanto, accedi a quella porta e utilizza quelle credenziali per cambiare la password dell'amministratore. Potresti dover tunnelare quella porta a locale:
Configurazione del certificato TLS
Prima di questo passaggio, dovresti aver già acquistato il dominio che intendi utilizzare e deve puntare all'IP del VPS dove stai configurando gophish.
Configurazione della mail
Inizia installando: apt-get install postfix
Poi aggiungi il dominio ai seguenti file:
/etc/postfix/virtual_domains
/etc/postfix/transport
/etc/postfix/virtual_regexp
Cambia anche i valori delle seguenti variabili all'interno di /etc/postfix/main.cf
myhostname = <domain>
mydestination = $myhostname, <domain>, localhost.com, localhost
Infine modifica i file /etc/hostname
e /etc/mailname
con il tuo nome di dominio e riavvia il tuo VPS.
Ora, crea un record A DNS di mail.<domain>
che punta all'indirizzo IP del VPS e un record MX DNS che punta a mail.<domain>
Ora testiamo l'invio di un'email:
Configurazione di Gophish
Ferma l'esecuzione di gophish e configuriamolo.
Modifica /opt/gophish/config.json
come segue (nota l'uso di https):
Configura il servizio gophish
Per creare il servizio gophish in modo che possa essere avviato automaticamente e gestito come un servizio, puoi creare il file /etc/init.d/gophish
con il seguente contenuto:
Finisci di configurare il servizio e controllalo facendo:
Più un dominio è vecchio, meno è probabile che venga catturato come spam. Quindi dovresti aspettare il più a lungo possibile (almeno 1 settimana) prima della valutazione di phishing. Inoltre, se metti una pagina su un settore reputazionale, la reputazione ottenuta sarà migliore.
Nota che anche se devi aspettare una settimana, puoi finire di configurare tutto ora.
Imposta un record rDNS (PTR) che risolve l'indirizzo IP del VPS nel nome di dominio.
Devi configurare un record SPF per il nuovo dominio. Se non sai cos'è un record SPF leggi questa pagina.
Puoi usare https://www.spfwizard.net/ per generare la tua politica SPF (usa l'IP della macchina VPS)
Questo è il contenuto che deve essere impostato all'interno di un record TXT all'interno del dominio:
Devi configurare un record DMARC per il nuovo dominio. Se non sai cos'è un record DMARC leggi questa pagina.
Devi creare un nuovo record DNS TXT che punti al nome host _dmarc.<domain>
con il seguente contenuto:
Devi configurare un DKIM per il nuovo dominio. Se non sai cos'è un record DMARC leggi questa pagina.
Questo tutorial si basa su: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy
Devi concatenare entrambi i valori B64 che la chiave DKIM genera:
Puoi farlo utilizzando https://www.mail-tester.com/ Basta accedere alla pagina e inviare un'email all'indirizzo che ti forniscono:
Puoi anche controllare la tua configurazione email inviando un'email a check-auth@verifier.port25.com
e leggendo la risposta (per questo dovrai aprire la porta 25 e vedere la risposta nel file /var/mail/root se invii l'email come root).
Controlla di superare tutti i test:
Puoi anche inviare un messaggio a un Gmail sotto il tuo controllo e controllare le intestazioni dell'email nella tua casella di posta Gmail, dkim=pass
dovrebbe essere presente nel campo di intestazione Authentication-Results
.
La pagina www.mail-tester.com può indicarti se il tuo dominio è bloccato da spamhouse. Puoi richiedere la rimozione del tuo dominio/IP su: https://www.spamhaus.org/lookup/
Puoi richiedere la rimozione del tuo dominio/IP su https://sender.office.com/.
Imposta un nome per identificare il profilo del mittente
Decidi da quale account invierai le email di phishing. Suggerimenti: noreply, support, servicedesk, salesforce...
Puoi lasciare vuoti il nome utente e la password, ma assicurati di controllare Ignora Errori di Certificato
È consigliato utilizzare la funzionalità "Invia Email di Test" per verificare che tutto funzioni. Ti consiglio di inviare le email di test a indirizzi 10min per evitare di essere inserito nella blacklist durante i test.
Imposta un nome per identificare il modello
Poi scrivi un oggetto (niente di strano, solo qualcosa che ti aspetteresti di leggere in una email normale)
Assicurati di aver selezionato "Aggiungi Immagine di Tracciamento"
Scrivi il modello di email (puoi usare variabili come nel seguente esempio):
Note che per aumentare la credibilità dell'email, è consigliato utilizzare qualche firma da un'email del cliente. Suggerimenti:
Invia un'email a un indirizzo inesistente e controlla se la risposta ha qualche firma.
Cerca email pubbliche come info@ex.com o press@ex.com o public@ex.com e invia loro un'email e aspetta la risposta.
Prova a contattare qualche email valida scoperta e aspetta la risposta.
Il modello di email consente anche di allegare file da inviare. Se desideri anche rubare le sfide NTLM utilizzando alcuni file/documenti appositamente creati leggi questa pagina.
Scrivi un nome
Scrivi il codice HTML della pagina web. Nota che puoi importare pagine web.
Seleziona Cattura Dati Inviati e Cattura Passwords
Imposta un reindirizzamento
Di solito dovrai modificare il codice HTML della pagina e fare alcuni test in locale (magari usando un server Apache) fino a quando non ti piacciono i risultati. Poi, scrivi quel codice HTML nella casella. Nota che se hai bisogno di utilizzare alcune risorse statiche per l'HTML (magari alcune pagine CSS e JS) puoi salvarle in /opt/gophish/static/endpoint e poi accedervi da /static/<filename>
Per il reindirizzamento potresti reindirizzare gli utenti alla legittima pagina web principale della vittima, o reindirizzarli a /static/migration.html per esempio, mettere qualche ruota che gira (https://loading.io/) per 5 secondi e poi indicare che il processo è stato completato con successo.
Imposta un nome
Importa i dati (nota che per utilizzare il modello per l'esempio hai bisogno del nome, cognome e indirizzo email di ogni utente)
Infine, crea una campagna selezionando un nome, il modello di email, la landing page, l'URL, il profilo di invio e il gruppo. Nota che l'URL sarà il link inviato alle vittime.
Nota che il Profilo di Invio consente di inviare un'email di prova per vedere come apparirà l'email di phishing finale:
Ti consiglio di inviare le email di prova a indirizzi 10min mail per evitare di essere messo nella blacklist durante i test.
Una volta che tutto è pronto, lancia semplicemente la campagna!
Se per qualche motivo desideri clonare il sito web, controlla la seguente pagina:
In alcune valutazioni di phishing (principalmente per Red Teams) vorrai anche inviare file contenenti qualche tipo di backdoor (magari un C2 o magari solo qualcosa che attivi un'autenticazione). Controlla la seguente pagina per alcuni esempi:
L'attacco precedente è piuttosto astuto poiché stai simulando un vero sito web e raccogliendo le informazioni fornite dall'utente. Sfortunatamente, se l'utente non ha inserito la password corretta o se l'applicazione che hai simulato è configurata con 2FA, queste informazioni non ti permetteranno di impersonare l'utente ingannato.
È qui che strumenti come evilginx2, CredSniper e muraena sono utili. Questo strumento ti permetterà di generare un attacco simile a MitM. Fondamentalmente, gli attacchi funzionano nel seguente modo:
Tu impersoni il modulo di accesso della vera pagina web.
L'utente invia le sue credenziali alla tua pagina falsa e lo strumento le invia alla vera pagina web, controllando se le credenziali funzionano.
Se l'account è configurato con 2FA, la pagina MitM chiederà di inserirlo e una volta che l'utente lo introduce, lo strumento lo invierà alla vera pagina web.
Una volta che l'utente è autenticato, tu (come attaccante) avrai catturato le credenziali, il 2FA, il cookie e qualsiasi informazione di ogni interazione mentre lo strumento sta eseguendo un MitM.
E se invece di inviare la vittima a una pagina malevola con lo stesso aspetto di quella originale, la invii a una sessione VNC con un browser connesso alla vera pagina web? Sarai in grado di vedere cosa fa, rubare la password, il MFA utilizzato, i cookie... Puoi farlo con EvilnVNC
Ovviamente uno dei migliori modi per sapere se sei stato scoperto è cercare il tuo dominio all'interno delle blacklist. Se appare elencato, in qualche modo il tuo dominio è stato rilevato come sospetto. Un modo semplice per controllare se il tuo dominio appare in qualche blacklist è utilizzare https://malwareworld.com/
Tuttavia, ci sono altri modi per sapere se la vittima è attivamente alla ricerca di attività di phishing sospette nel mondo come spiegato in:
Puoi comprare un dominio con un nome molto simile a quello del dominio della vittima e/o generare un certificato per un sottodominio di un dominio controllato da te contenente la parola chiave del dominio della vittima. Se la vittima esegue qualche tipo di interazione DNS o HTTP con essi, saprai che sta attivamente cercando domini sospetti e dovrai essere molto furtivo.
Usa Phishious per valutare se la tua email finirà nella cartella spam o se verrà bloccata o avrà successo.
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)