Phishing-Methodik
Reading time: 17 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Methodik
- Rekognoszieren Sie das Opfer
- Wählen Sie die Opferdomain.
- Führen Sie eine grundlegende Webenumeration durch, um nach Anmeldeportalen zu suchen, die vom Opfer verwendet werden, und entscheiden Sie, welches Sie nachahmen möchten.
- Verwenden Sie einige OSINT, um E-Mails zu finden.
- Bereiten Sie die Umgebung vor
- Kaufen Sie die Domain, die Sie für die Phishing-Bewertung verwenden möchten.
- Konfigurieren Sie die E-Mail-Dienst-bezogenen Aufzeichnungen (SPF, DMARC, DKIM, rDNS).
- Konfigurieren Sie den VPS mit gophish.
- Bereiten Sie die Kampagne vor
- Bereiten Sie die E-Mail-Vorlage vor.
- Bereiten Sie die Webseite vor, um die Anmeldeinformationen zu stehlen.
- Starten Sie die Kampagne!
Generieren Sie ähnliche Domainnamen oder kaufen Sie eine vertrauenswürdige Domain
Techniken zur Variation von Domainnamen
- Schlüsselwort: Der Domainname enthält ein wichtiges Schlüsselwort der ursprünglichen Domain (z.B. zelster.com-management.com).
- getrennter Subdomain: Ändern Sie den Punkt in einen Bindestrich einer Subdomain (z.B. www-zelster.com).
- Neue TLD: Dieselbe Domain mit einer neuen TLD (z.B. zelster.org).
- Homoglyph: Es ersetzt einen Buchstaben im Domainnamen durch Buchstaben, die ähnlich aussehen (z.B. zelfser.com).
- Transposition: Es tauscht zwei Buchstaben innerhalb des Domainnamens (z.B. zelsetr.com).
- Singularisierung/Pluralisierung: Fügt ein „s“ am Ende des Domainnamens hinzu oder entfernt es (z.B. zeltsers.com).
- Auslassung: Es entfernt einen der Buchstaben aus dem Domainnamen (z.B. zelser.com).
- Wiederholung: Es wiederholt einen der Buchstaben im Domainnamen (z.B. zeltsser.com).
- Ersetzung: Wie Homoglyph, aber weniger heimlich. Es ersetzt einen der Buchstaben im Domainnamen, möglicherweise durch einen Buchstaben in der Nähe des ursprünglichen Buchstabens auf der Tastatur (z.B. zektser.com).
- Subdominiert: Fügen Sie einen Punkt innerhalb des Domainnamens ein (z.B. ze.lster.com).
- Einfügung: Es fügt einen Buchstaben in den Domainnamen ein (z.B. zerltser.com).
- Fehlender Punkt: Hängen Sie die TLD an den Domainnamen an. (z.B. zelstercom.com)
Automatische Werkzeuge
Webseiten
- https://dnstwist.it/
- https://dnstwister.report/
- https://www.internetmarketingninjas.com/tools/free-tools/domain-typo-generator/
Bitflipping
Es besteht die Möglichkeit, dass eines der Bits, die gespeichert oder in der Kommunikation sind, automatisch umgeschaltet wird, aufgrund verschiedener Faktoren wie Sonnenstürme, kosmische Strahlen oder Hardwarefehler.
Wenn dieses Konzept auf DNS-Anfragen angewendet wird, ist es möglich, dass die Domain, die vom DNS-Server empfangen wird, nicht die gleiche ist wie die ursprünglich angeforderte Domain.
Zum Beispiel kann eine einzige Bitänderung in der Domain "windows.com" sie in "windnws.com" ändern.
Angreifer können dies ausnutzen, indem sie mehrere Bit-Flipping-Domains registrieren, die der Domain des Opfers ähnlich sind. Ihre Absicht ist es, legitime Benutzer auf ihre eigene Infrastruktur umzuleiten.
Für weitere Informationen lesen Sie https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/
Kaufen Sie eine vertrauenswürdige Domain
Sie können auf https://www.expireddomains.net/ nach einer abgelaufenen Domain suchen, die Sie verwenden könnten.
Um sicherzustellen, dass die abgelaufene Domain, die Sie kaufen möchten, bereits ein gutes SEO hat, können Sie nachsehen, wie sie kategorisiert ist in:
Entdecken von E-Mails
- https://github.com/laramies/theHarvester (100% kostenlos)
- https://phonebook.cz/ (100% kostenlos)
- https://maildb.io/
- https://hunter.io/
- https://anymailfinder.com/
Um mehr gültige E-Mail-Adressen zu entdecken oder die bereits entdeckten zu verifizieren, können Sie überprüfen, ob Sie die SMTP-Server des Opfers bruteforcen können. Erfahren Sie hier, wie Sie E-Mail-Adressen verifizieren/entdecken können.
Vergessen Sie außerdem nicht, dass, wenn die Benutzer ein beliebiges Webportal verwenden, um auf ihre E-Mails zuzugreifen, Sie überprüfen können, ob es anfällig für Benutzernamen-Bruteforce ist, und die Schwachstelle, wenn möglich, ausnutzen.
Konfigurieren von GoPhish
Installation
Sie können es von https://github.com/gophish/gophish/releases/tag/v0.11.0 herunterladen.
Laden Sie es herunter und entpacken Sie es in /opt/gophish
und führen Sie /opt/gophish/gophish
aus.
Ihnen wird ein Passwort für den Admin-Benutzer auf Port 3333 in der Ausgabe angezeigt. Greifen Sie daher auf diesen Port zu und verwenden Sie diese Anmeldeinformationen, um das Admin-Passwort zu ändern. Möglicherweise müssen Sie diesen Port zu lokal tunneln:
ssh -L 3333:127.0.0.1:3333 <user>@<ip>
Konfiguration
TLS-Zertifikat-Konfiguration
Bevor Sie diesen Schritt ausführen, sollten Sie bereits die Domain gekauft haben, die Sie verwenden möchten, und sie muss auf die IP des VPS zeigen, auf dem Sie gophish konfigurieren.
DOMAIN="<domain>"
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
sudo apt install snapd
sudo snap install core
sudo snap refresh core
sudo apt-get remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbot certonly --standalone -d "$DOMAIN"
mkdir /opt/gophish/ssl_keys
cp "/etc/letsencrypt/live/$DOMAIN/privkey.pem" /opt/gophish/ssl_keys/key.pem
cp "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" /opt/gophish/ssl_keys/key.crt
Mail-Konfiguration
Beginnen Sie mit der Installation: apt-get install postfix
Fügen Sie dann die Domain zu den folgenden Dateien hinzu:
- /etc/postfix/virtual_domains
- /etc/postfix/transport
- /etc/postfix/virtual_regexp
Ändern Sie auch die Werte der folgenden Variablen in /etc/postfix/main.cf
myhostname = <domain>
mydestination = $myhostname, <domain>, localhost.com, localhost
Schließlich ändern Sie die Dateien /etc/hostname
und /etc/mailname
in Ihren Domainnamen und starten Sie Ihren VPS neu.
Erstellen Sie nun einen DNS A-Eintrag von mail.<domain>
, der auf die IP-Adresse des VPS zeigt, und einen DNS MX-Eintrag, der auf mail.<domain>
zeigt.
Jetzt testen wir, um eine E-Mail zu senden:
apt install mailutils
echo "This is the body of the email" | mail -s "This is the subject line" test@email.com
Gophish-Konfiguration
Stoppen Sie die Ausführung von gophish und lassen Sie uns es konfigurieren.
Ändern Sie /opt/gophish/config.json
wie folgt (beachten Sie die Verwendung von https):
{
"admin_server": {
"listen_url": "127.0.0.1:3333",
"use_tls": true,
"cert_path": "gophish_admin.crt",
"key_path": "gophish_admin.key"
},
"phish_server": {
"listen_url": "0.0.0.0:443",
"use_tls": true,
"cert_path": "/opt/gophish/ssl_keys/key.crt",
"key_path": "/opt/gophish/ssl_keys/key.pem"
},
"db_name": "sqlite3",
"db_path": "gophish.db",
"migrations_prefix": "db/db_",
"contact_address": "",
"logging": {
"filename": "",
"level": ""
}
}
Gophish-Dienst konfigurieren
Um den Gophish-Dienst zu erstellen, damit er automatisch gestartet und als Dienst verwaltet werden kann, können Sie die Datei /etc/init.d/gophish
mit folgendem Inhalt erstellen:
#!/bin/bash
# /etc/init.d/gophish
# initialization file for stop/start of gophish application server
#
# chkconfig: - 64 36
# description: stops/starts gophish application server
# processname:gophish
# config:/opt/gophish/config.json
# From https://github.com/gophish/gophish/issues/586
# define script variables
processName=Gophish
process=gophish
appDirectory=/opt/gophish
logfile=/var/log/gophish/gophish.log
errfile=/var/log/gophish/gophish.error
start() {
echo 'Starting '${processName}'...'
cd ${appDirectory}
nohup ./$process >>$logfile 2>>$errfile &
sleep 1
}
stop() {
echo 'Stopping '${processName}'...'
pid=$(/bin/pidof ${process})
kill ${pid}
sleep 1
}
status() {
pid=$(/bin/pidof ${process})
if [["$pid" != ""| "$pid" != "" ]]; then
echo ${processName}' is running...'
else
echo ${processName}' is not running...'
fi
}
case $1 in
start|stop|status) "$1" ;;
esac
Den Dienst fertig konfigurieren und überprüfen, indem Sie:
mkdir /var/log/gophish
chmod +x /etc/init.d/gophish
update-rc.d gophish defaults
#Check the service
service gophish start
service gophish status
ss -l | grep "3333\|443"
service gophish stop
Konfiguration des Mailservers und der Domain
Warten & legitim sein
Je älter eine Domain ist, desto unwahrscheinlicher ist es, dass sie als Spam erkannt wird. Daher solltest du so viel Zeit wie möglich warten (mindestens 1 Woche) vor der Phishing-Bewertung. Außerdem wird die Reputation besser, wenn du eine Seite über einen reputationswürdigen Sektor erstellst.
Beachte, dass du auch, wenn du eine Woche warten musst, jetzt alles konfigurieren kannst.
Konfiguriere den Reverse DNS (rDNS) Eintrag
Setze einen rDNS (PTR) Eintrag, der die IP-Adresse des VPS auf den Domainnamen auflöst.
Sender Policy Framework (SPF) Eintrag
Du musst einen SPF-Eintrag für die neue Domain konfigurieren. Wenn du nicht weißt, was ein SPF-Eintrag ist, lies diese Seite.
Du kannst https://www.spfwizard.net/ verwenden, um deine SPF-Richtlinie zu generieren (verwende die IP der VPS-Maschine).
Dies ist der Inhalt, der in einem TXT-Eintrag innerhalb der Domain gesetzt werden muss:
v=spf1 mx a ip4:ip.ip.ip.ip ?all
Domain-based Message Authentication, Reporting & Conformance (DMARC) Record
Sie müssen einen DMARC-Eintrag für die neue Domain konfigurieren. Wenn Sie nicht wissen, was ein DMARC-Eintrag ist, lesen Sie diese Seite.
Sie müssen einen neuen DNS TXT-Eintrag erstellen, der auf den Hostnamen _dmarc.<domain>
mit folgendem Inhalt zeigt:
v=DMARC1; p=none
DomainKeys Identified Mail (DKIM)
Sie müssen ein DKIM für die neue Domain konfigurieren. Wenn Sie nicht wissen, was ein DMARC-Eintrag ist, lesen Sie diese Seite.
Dieses Tutorial basiert auf: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy
note
Sie müssen beide B64-Werte, die der DKIM-Schlüssel generiert, zusammenfügen:
v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0wPibdqPtzYk81njjQCrChIcHzxOp8a1wjbsoNtka2X9QXCZs+iXkvw++QsWDtdYu3q0Ofnr0Yd/TmG/Y2bBGoEgeE+YTUG2aEgw8Xx42NLJq2D1pB2lRQPW4IxefROnXu5HfKSm7dyzML1gZ1U0pR5X4IZCH0wOPhIq326QjxJZm79E1nTh3xj" "Y9N/Dt3+fVnIbMupzXE216TdFuifKM6Tl6O/axNsbswMS1TH812euno8xRpsdXJzFlB9q3VbMkVWig4P538mHolGzudEBg563vv66U8D7uuzGYxYT4WS8NVm3QBMg0QKPWZaKp+bADLkOSB9J2nUpk4Aj9KB5swIDAQAB
Testen Sie Ihre E-Mail-Konfigurationsbewertung
Sie können das mit https://www.mail-tester.com/ tun.
Zugreifen Sie einfach auf die Seite und senden Sie eine E-Mail an die Adresse, die sie Ihnen geben:
echo "This is the body of the email" | mail -s "This is the subject line" test-iimosa79z@srv1.mail-tester.com
Sie können auch Ihre E-Mail-Konfiguration überprüfen, indem Sie eine E-Mail an check-auth@verifier.port25.com
senden und die Antwort lesen (dafür müssen Sie den Port 25 öffnen und die Antwort in der Datei /var/mail/root sehen, wenn Sie die E-Mail als root senden).
Überprüfen Sie, ob Sie alle Tests bestehen:
==========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: neutral
DKIM check: pass
Sender-ID check: pass
SpamAssassin check: ham
Sie könnten auch eine Nachricht an ein Gmail unter Ihrer Kontrolle senden und die E-Mail-Header in Ihrem Gmail-Posteingang überprüfen. dkim=pass
sollte im Authentication-Results
Headerfeld vorhanden sein.
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of contact@example.com designates --- as permitted sender) smtp.mail=contact@example.com;
dkim=pass header.i=@example.com;
Entfernen von der Spamhaus-Blacklist
Die Seite www.mail-tester.com kann Ihnen anzeigen, ob Ihre Domain von Spamhaus blockiert wird. Sie können die Entfernung Ihrer Domain/IP anfordern unter: https://www.spamhaus.org/lookup/
Entfernen von der Microsoft-Blacklist
Sie können die Entfernung Ihrer Domain/IP anfordern unter https://sender.office.com/.
Erstellen & Starten einer GoPhish-Kampagne
Versandprofil
- Setzen Sie einen Namen zur Identifizierung des Absenderprofils
- Entscheiden Sie, von welchem Konto Sie die Phishing-E-Mails senden werden. Vorschläge: noreply, support, servicedesk, salesforce...
- Sie können den Benutzernamen und das Passwort leer lassen, aber stellen Sie sicher, dass Sie die Option "Zertifikatfehler ignorieren" aktivieren
note
Es wird empfohlen, die Funktion "Test-E-Mail senden" zu verwenden, um zu testen, ob alles funktioniert.
Ich würde empfehlen, die Test-E-Mails an 10min-Mail-Adressen zu senden, um zu vermeiden, dass Sie beim Testen auf die Blacklist gesetzt werden.
E-Mail-Vorlage
- Setzen Sie einen Namen zur Identifizierung der Vorlage
- Schreiben Sie dann einen Betreff (nichts Ungewöhnliches, nur etwas, das Sie in einer regulären E-Mail erwarten würden)
- Stellen Sie sicher, dass Sie "Tracking-Bild hinzufügen" aktiviert haben
- Schreiben Sie die E-Mail-Vorlage (Sie können Variablen wie im folgenden Beispiel verwenden):
<html>
<head>
<title></title>
</head>
<body>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black">Dear {{.FirstName}} {{.LastName}},</span></p>
<br />
Note: We require all user to login an a very suspicios page before the end of the week, thanks!<br />
<br />
Regards,</span></p>
WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY
<p>{{.Tracker}}</p>
</body>
</html>
Beachten Sie, dass um die Glaubwürdigkeit der E-Mail zu erhöhen, empfohlen wird, eine Signatur aus einer E-Mail des Kunden zu verwenden. Vorschläge:
- Senden Sie eine E-Mail an eine nicht existierende Adresse und überprüfen Sie, ob die Antwort eine Signatur enthält.
- Suchen Sie nach öffentlichen E-Mails wie info@ex.com oder press@ex.com oder public@ex.com und senden Sie ihnen eine E-Mail und warten Sie auf die Antwort.
- Versuchen Sie, eine gültige entdeckte E-Mail zu kontaktieren und warten Sie auf die Antwort.
note
Die E-Mail-Vorlage ermöglicht es auch, Dateien anzuhängen. Wenn Sie auch NTLM-Herausforderungen mit speziell gestalteten Dateien/Dokumenten stehlen möchten, lesen Sie diese Seite.
Landing Page
- Schreiben Sie einen Namen
- Schreiben Sie den HTML-Code der Webseite. Beachten Sie, dass Sie Webseiten importieren können.
- Markieren Sie Eingereichte Daten erfassen und Passwörter erfassen
- Setzen Sie eine Weiterleitung
note
Normalerweise müssen Sie den HTML-Code der Seite ändern und einige Tests lokal durchführen (vielleicht mit einem Apache-Server), bis Ihnen die Ergebnisse gefallen. Schreiben Sie dann diesen HTML-Code in das Feld.
Beachten Sie, dass Sie, wenn Sie statische Ressourcen für das HTML benötigen (vielleicht einige CSS- und JS-Seiten), diese in /opt/gophish/static/endpoint speichern können und dann von /static/<dateiname> darauf zugreifen können.
note
Für die Weiterleitung könnten Sie die Benutzer zur legitimen Hauptwebseite des Opfers umleiten oder sie beispielsweise zu /static/migration.html umleiten, eine Ladeanimation (https://loading.io/) für 5 Sekunden anzeigen und dann angeben, dass der Prozess erfolgreich war.
Benutzer & Gruppen
- Setzen Sie einen Namen
- Importieren Sie die Daten (beachten Sie, dass Sie, um die Vorlage für das Beispiel zu verwenden, den Vornamen, Nachnamen und die E-Mail-Adresse jedes Benutzers benötigen)
Kampagne
Erstellen Sie schließlich eine Kampagne, indem Sie einen Namen, die E-Mail-Vorlage, die Landing Page, die URL, das Versandprofil und die Gruppe auswählen. Beachten Sie, dass die URL der Link ist, der an die Opfer gesendet wird.
Beachten Sie, dass das Versandprofil es ermöglicht, eine Test-E-Mail zu senden, um zu sehen, wie die endgültige Phishing-E-Mail aussieht:
note
Ich würde empfehlen, die Test-E-Mails an 10min-Mail-Adressen zu senden, um zu vermeiden, dass Sie beim Testen auf eine schwarze Liste gesetzt werden.
Sobald alles bereit ist, starten Sie einfach die Kampagne!
Website-Klonen
Wenn Sie aus irgendeinem Grund die Website klonen möchten, überprüfen Sie die folgende Seite:
Hintertür-Dokumente & -Dateien
In einigen Phishing-Bewertungen (hauptsächlich für Red Teams) möchten Sie möglicherweise auch Dateien mit einer Art Hintertür senden (vielleicht ein C2 oder vielleicht nur etwas, das eine Authentifizierung auslöst).
Überprüfen Sie die folgende Seite für einige Beispiele:
Phishing MFA
Über Proxy MitM
Der vorherige Angriff ist ziemlich clever, da Sie eine echte Website fälschen und die Informationen sammeln, die der Benutzer eingibt. Leider, wenn der Benutzer das richtige Passwort nicht eingegeben hat oder wenn die gefälschte Anwendung mit 2FA konfiguriert ist, erlaubt Ihnen diese Information nicht, den getäuschten Benutzer zu impersonieren.
Hier sind Tools wie evilginx2, CredSniper und muraena nützlich. Dieses Tool ermöglicht es Ihnen, einen MitM-ähnlichen Angriff zu generieren. Grundsätzlich funktioniert der Angriff folgendermaßen:
- Sie imitieren das Anmeldeformular der echten Webseite.
- Der Benutzer sendet seine Anmeldeinformationen an Ihre gefälschte Seite und das Tool sendet diese an die echte Webseite, um zu überprüfen, ob die Anmeldeinformationen funktionieren.
- Wenn das Konto mit 2FA konfiguriert ist, wird die MitM-Seite danach fragen, und sobald der Benutzer es eingibt, sendet das Tool es an die echte Webseite.
- Sobald der Benutzer authentifiziert ist, haben Sie (als Angreifer) die Anmeldeinformationen, die 2FA, das Cookie und alle Informationen jeder Interaktion erfasst, während das Tool einen MitM durchführt.
Über VNC
Was wäre, wenn Sie anstatt den Opfer zu einer bösartigen Seite mit dem gleichen Aussehen wie die Originalseite zu senden, ihn zu einer VNC-Sitzung mit einem Browser, der mit der echten Webseite verbunden ist, senden? Sie können sehen, was er tut, das Passwort, die verwendete MFA, die Cookies stehlen...
Sie können dies mit EvilnVNC tun.
Erkennung der Erkennung
Offensichtlich ist eine der besten Möglichkeiten zu wissen, ob Sie enttarnt wurden, Ihre Domain in schwarzen Listen zu durchsuchen. Wenn sie aufgeführt ist, wurde Ihre Domain irgendwie als verdächtig erkannt.
Eine einfache Möglichkeit zu überprüfen, ob Ihre Domain in einer schwarzen Liste erscheint, ist die Verwendung von https://malwareworld.com/.
Es gibt jedoch auch andere Möglichkeiten zu wissen, ob das Opfer aktiv nach verdächtigen Phishing-Aktivitäten in der Wildnis sucht, wie in:
Sie können eine Domain mit einem sehr ähnlichen Namen zur Domain des Opfers kaufen und/oder ein Zertifikat für einen Subdomain einer von Ihnen kontrollierten Domain erzeugen, die das Schlüsselwort der Domain des Opfers enthält. Wenn das Opfer irgendeine Art von DNS- oder HTTP-Interaktion mit ihnen durchführt, wissen Sie, dass es aktiv nach verdächtigen Domains sucht und Sie sehr stealthy sein müssen.
Phishing bewerten
Verwenden Sie Phishious , um zu bewerten, ob Ihre E-Mail im Spam-Ordner landen wird oder ob sie blockiert oder erfolgreich sein wird.
Referenzen
- https://zeltser.com/domain-name-variations-in-phishing/
- https://0xpatrik.com/phishing-domains/
- https://darkbyte.net/robando-sesiones-y-bypasseando-2fa-con-evilnovnc/
- https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.