Starten einer Phishing-Simulation für Lernzwecke auf einem Microsoft 365 Tenant mit Gophish

Mein Ziel

Um die Nutzer des von mir verwendeten Microsoft 365 zu sensibilisieren, habe ich nach Möglichkeiten gesucht, eine Phishing-Kampagne zu erstellen, um sie „einzufangen“ und eine Schulung zu diesem Thema auszulösen.

Präventionsbotschaften und digitale Hygienekampagnen reichen nicht aus, es bedarf konkreter Fakten, um das Bewusstsein zu schärfen.

Disclaimer

Auf die Gefahr hin, mich zu wiederholen, ist es nicht mein Ziel, eine Direktwerbung oder Phishing-Kampagne zu starten, sondern ein pädagogischer Zweck.

Bitte beachten Sie, dass die unten erläuterten Elemente nicht funktionieren, wenn Sie kein Administrator des angreifenden Tenants sind, da die IP von GoPhish ohne diese Genehmigung genehmigt werden muss, da die Phishing-Kampagne von den Sicherheitssystemen von Microsoft blockiert wird (Danke!!)


Verwendete Werkzeuge

  • Offensichtlich verwende ich den Microsoft 365-Händler, bei dem ich beantragen werde, die IP-Adresse für den Versand meiner Kampagne sowie den berühmten 5321.MailFrom (oder den Absender des Umschlags) zu autorisieren.

  • GoPhish in der Version 0.12.1 am Tag des Schreibens dieses RetEx

  • Die AWS-Plattform von Amazon und insbesondere EC2-Instances

Ich erstelle ein Amazon AWS-Konto 

Überspringen Sie die 5 Schritte und dann:

Ich erstelle eine Instanz auf EC2

Alles, was ich über diesen Teil erkläre, ist völlig kostenlos, man kann davon profitieren Angebot 1 Jahr, Das reicht für meinen Bedarf.


Sie müssen ein Konto bei AWS erstellt haben und dann auf Amazon EC2

Oben rechts, überprüfen Sie, ob Sie sich in der Region Europa/Paris befinden.

dann


Ich lade die schlüsseldatei herunter, achten sie darauf, eine ppk-datei und nicht pem zu nehmen.

Sobald alles installiert und gestartet ist, habe ich alles im grünen Bereich:

Ich konfiguriere die Sicherheitsgruppe meiner Instanz

Aus Sicherheitsgründen habe ich bereits den SSH-Zugriff auf meine einzige IP-Adresse über den Assistenten zur Einrichtung der Instanz reserviert. Nun muss ich die Ports konfigurieren, die von GoPhish verwendet werden sollen.

Ich gehe zu Netzwerk und Sicherheit dann Sicherheitsgruppen, ich wähle die Gruppe launch-wizard, eingehende Regeln, Ändern der eingehenden Regeln

Ich füge einen benutzerdefinierten TCP-Eintrag mit einer anderen Portnummer als 3333 hinzu, die die Portnummer sein wird, die ich für GoPhish verwenden werde, z. B. 8531.

Ich verwende eine Elastic IP-Adresse (optional)

Um immer dieselbe IP-Adresse zu haben, verwende ich diese Funktion.

Beachten Sie, dass elastische IP-Adressen kostenpflichtig sind, wenn sie keiner laufenden Instanz zugeordnet sind. Das bedeutet, dass Ihnen eine Gebühr in Rechnung gestellt wird, wenn Sie eine elastische IP-Adresse buchen, diese aber nicht verwenden. Sobald jedoch eine elastische IP-Adresse mit einer laufenden Instance verknüpft ist, werden Ihnen keine Gebühren berechnet, solange die Instance ausgeführt wird und die IP-Adresse mit dieser Instance verknüpft ist. Wenn die Instanz beendet oder beendet wird, können Sie weiterhin für die Verwendung der elastischen IP-Adresse in Rechnung gestellt werden, es sei denn, Sie trennen sie von der Instanz oder geben sie frei.

Ich installiere Putty 

Putty ermöglicht es mir, mich über SSH mit meiner EC2-Instance zu verbinden, und zwar auf sichere Weise mit einem Schlüsselsatz (privat/öffentlich).

Ich muss die Verbindungseinstellungen auf der Instanz abrufen.

Dazu klicke ich mit der rechten Maustaste auf die Instanz und dann auf „Anmelden“ / SSH-Client.

Ich notiere das öffentliche DNS, das mir gegeben wurde, es wird mir für Puttys Host dienen

Ich starte Putty und füge den Host hinzu:

dann gebe ich die oben erstellte private Schlüsseldatei an:

Um es einfacher zu machen, füge ich den user ubuntu als Auto-login in Connection/Data hinzu

Ich starte die Verbindung, es ist in Ordnung, ich habe die Befehlszeile von Ubuntu.

Ich installiere GoPhish

Ich werde nach der neuesten Version suchen, die auf der heruntergeladen werden muss Offizielles Github-Depot.

Am Tag der Erstellung dieses RetEx ist die neueste Version hier:
https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip

Auf der Ubuntu-Befehlszeile lade ich die ZIP-Datei hoch und entpacke sie in opt/:

wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip sudo apt install unzip unzip gophish-v0.12.1-linux-64bit.zip -d ./gophish rm gophish-v0.12.1-linux-64bit.zip sudo chmod +x ./gophish/gophish


Ich muss die IP-Adresse von gophish und ihren Port konfigurieren.
Dazu ändere ich die Datei config.json

cd gophish vim config.json

Ich ersetze 127.0.0.1:3333 durch 0.0.0.0:8531 in der Zeile listen_url

Ich starte gophish

./gophish

Ich erhalte eine Fehlermeldung, wahrscheinlich eine Sicherheit beim Abhören von Port 80 durch einen Nicht-Root-Benutzer, ich habe schnell versucht, dies mit ipfw zu beheben, aber es ist nicht auf meinem Computer und mit iptables hatte ich nichts zufriedenstellenderes. Es ist ziemlich hässlich und nicht ratsam, aber da meine Ec2-Instanz nicht im Amt bleiben wird, schlage ich eine vor:

sudo ./gophish

Es ist okay, mein GoPhish ist gestartet 

im Befehlszeilentext erhalte ich das Passwort, das mir in der Zeile gegeben wurde

Please login with the username admin and the password xxx

Ich möchte Gophish verwenden, ohne mein SSH-Fenster offen zu halten (optional)

Ich füge diesen Absatz hier hinzu, um die Kohärenz zu verbessern, aber er kann später ausgeführt werden, wenn Gophish manuell funktioniert.

Ich erlaube den Start von Gophish, ohne root (sudo) zu sein.

So vermeiden Sie die Verwendung eines Befehls sudo um Gophish zu starten, werde ich den Nutzer autorisieren Ubuntu Der Port 80 ist ein privilegierter Port. In der Tat die Bestellung cap_net_bind_service ermöglicht es dieser ausführbaren Datei (gophish), Netzwerk-Sockets mit Ports zu verknüpfen, deren Nummer kleiner oder gleich 1024 ist, auch wenn sie nicht als root-Benutzer ausgeführt wird.

sudo setcap 'cap_net_bind_service=+ep' /home/ubuntu/gophish/gophish

Von nun an ist es nicht mehr erforderlich, sudo einzugeben, um gophish zu starten, der Befehl kann also sein:

./gophish


Fehlermeldung open gophish_admin.key: Denied-Genehmigung

Wenn diese Fehlermeldung angezeigt wird, müssen die Berechtigungen der Datei gophish_admin.key geändert werden.

Hier sind die Befehle:

cd ~/gophish ls -l gophish_admin.key sudo chmod 644 gophish_admin.key sudo chown ubuntu:ubuntu gophish_admin.key ls -l gophish_admin.key ./gophish

 

Ich erkläre gophish als service

Ich werde eine Datei hinzufügen gophish.service in /etc/systemd/system/gophish.service

[Unit] Description=GoPhish Service After=network.target [Service] ExecStart=/home/ubuntu/gophish/gophish Type=simple PIDFile=/var/run/gophish User=ubuntu WorkingDirectory=/home/ubuntu/gophish [Install] WantedBy=default.target

Um nicht alles eingeben zu müssen, habe ich dies auf eine Gist gesetzt, um es direkt abzurufen:

sudo wget https://gist.githubusercontent.com/sigalou/267349eada979e07c99dc5944253169c/raw/e5d8769bb86b40e15ad0c4631629d575e440199a/gophish.service -O /etc/systemd/system/gophish.service

Dies kann geprüft werden durch:

sudo systemctl daemon-reload sudo systemctl enable gophish sudo systemctl start gophish sudo systemctl status gophish

Ich wiederhole meine Instanz, es ist okay, Gophish startet automatisch.

Ich starte GoPhish

Zurück in meinem Browser stelle ich die elastische oder öffentliche ip der Instanz fest, füge diese Adresse ein, gefolgt von:8531, was der oben definierte Port ist

So gehe ich zum Beispiel auf https://13.36.81.72:8531

Hier wird also "admin" und das Passwort verwendet, das zum Zeitpunkt des Starts auf der Befehlszeile angegeben wurde. Sofort bittet GoPhish, das Passwort zu ändern und so ist man bei GoPhish eingeloggt.

Ich füge dem Tenant 365 einen „Fänger“ hinzu.

Wenn ich mich als Administrator einlogge, der berechtigt ist, Nutzer zu verwalten, füge ich einen neuen Nutzer hinzu.

Ich habe mich dafür entschieden, einen benutzer zu verwenden, den ich so verwende, als wäre es ein offizielles microsoft-konto für die kontoverwaltung.

Ich habe ihr sogar ein schönes Logo gegeben, das es ernst meint.

Offensichtlich weise ich ihm eine Lizenz zu, die es ihm ermöglicht, ein E-Mail-Konto zu haben, und gehe dann auf die Registerkarte E-Mail-Adresse von diesem Benutzer und dann E-Mail-Software und ich werde das Kästchen mindestens ankreuzen SMTP authentifiziert.

(Optional) Um mir das Leben zu erleichtern und diese Box nicht dem Brief hinzufügen zu müssen, habe ich alle auf dieser Box erhaltenen E-Mails in Mail/Postweiterleitung an meine E-Mail-Adresse weitergeleitet.

Ich richte Microsoft Defender ein, um GoPhish zu autorisieren

Microsoft hat alles geplant. Sie haben darüber nachgedacht, auf einer kostenpflichtigen Lizenz eine pädagogische Phishing-Kampagne (Defender Plan 2-Lizenz) anzubieten, aber sie haben auch über silberne Hacks nachgedacht, indem sie dies manuell zulassen.

Ich werfe Microsoft Defender.

Dann Strategien und Regeln

Dann Bedrohungsstrategien / Erweiterte Rabatte

Und schließlich Registerkarte Phishing-Simulation

Danke Sigalou!!! Diesen Tab musste man finden. 

Als nächstes müssen Sie die Bereich und IP.

Die Domain ist die Adresse der Domain, die die E-Mail senden wird, dies entspricht der Domain von SMTP From, die ich in GoPhish angeben werde.

Die IP ist die elastische oder öffentliche IP der Instanz.

Ich konfiguriere das SMTP von GoPhish

Zurück in GoPhish gehe ich in Sending Profiles und ich werde ein Profil für den Versand von Nachrichten erstellen:

Dank des Knopfes Send Test E-Mail, ich kann überprüfen, ob alles einwandfrei funktioniert, ich erhalte eine Nachricht

An diesem Punkt ist es bereits ein sehr schöner persönlicher Sieg, ich habe es verstanden, eine virtuelle Maschine einzurichten, GoPhish darauf zu installieren, es einzurichten, herauszufinden, wie man nicht von den Microsoft-Sicherheiten eingeklemmt wird, indem ich diese Manipulation und diesen Sieg zulasse… die Test-E-Mail kommt !!! Für diejenigen, die meine RetEx entdecken, stellen Sie sich nicht vor, dass es an der Zeit war, diese Seite zu schreiben, es sind Stunden des Manipulierens (und Lernens).

Ich werde alle Benutzer von Microsoft 365 Tenant wiederherstellen

Es gibt zwei Möglichkeiten, Benutzer wiederherzustellen, die einfachste mit der grafischen Benutzeroberfläche des Verwaltungszentrums von M365; andernfalls kann dies mit einem Powershell-Befehl erfolgen.

Ich werde diesen zweiten Weg nicht erklären, Florian erläuterte sie in ihrem Ausgezeichnetes Tuto.

Ich nehme die einfachste Formel, gehe in das Admin-Panel und dann Aktive Nutzer dann Benutzer exportieren.

Der Export läuft gut, ich arbeite ein wenig an der Datei in Excel, um unnötige Spalten und Zeilen zu entfernen, die keine Benutzer sind. Ich habe also eine perfekte Excel-Datei mit 4 Spalten, ich starte einen CSV-Datensatz mit einem Komma als Trennzeichen, um den Import in GoPhish durchführen zu können.

Ich injizierte Benutzer in eine GoPhish-Gruppe

Ich füge eine neue Gruppe hinzu und starte den Import meiner CSV-Datei.

Ich habe jetzt eine neue Gruppe bereit!

Ich richte die Phishing-E-Mail ein

Dies ist die E-Mail, die die Empfänger der Kampagne erhalten werden.

Zu diesem Zweck habe ich Microsoft gebeten, mir eine Nachricht zu senden, sodass ich das Format der Nachricht beibehalten habe. Letztendlich ergibt dies:

Ich erinnere daran, dass es pädagogischer Natur ist, fragen Sie mich nicht nach dem HTML-Code der Seite, ich denke, es liegt an jedem, die Arbeit zu erledigen.

Ich richte die Phishing-Seite ein

Diese sogenannte Landing Page ist die Seite, auf der der Nutzer landen wird, wenn er auf den Link klickt, der ihm in der erhaltenen E-Mail angeboten wird.

Ich suchte nach Modellen, um heißes Wasser nicht neu zu erfinden (danke Souleiman)

Hier ist der beste Link, der mir geholfen hat, die M365-Anmeldeseite so realistisch wie möglich zu gestalten.

Ich denke an das Ende der Landingpage-Konfiguration, um die Wiederherstellung von E-Mail und Passwort anzukreuzen. Ich habe die Idee, bei der Schulung/Sensibilisierung der Nutzer z. B. die ersten beiden Zeichen und das letzte der „gestohlenen“ Passwörter anzeigen zu können. Beachten Sie, dass die wiederhergestellten Passwörter im Klartext angegeben werden, so dass ich einige Tage nach der pädagogischen Phishing-Kampagne eine Änderung aller Passwörter aller Benutzer auslösen werde.

Wenn der Nutzer auf den Link klickt wieder verbinden oder auf dem blauen Knopf Wiedereinloggen landet er auf:

Fragen Sie mich nicht mehr nach dem HTML-Code dieser Seite.

Ich starte die Phishing-Kampagne

Zusammenfassend lässt sich sagen, dass ich eine Nutzergruppe, eine E-Mail-Vorlage und eine Phishing-Seite erstellt habe, sodass ich zu Kampagnen gehen kann, um die Kampagne zu starten.

Wenn ich auf Launch Campaign drücke, gehen die E-Mails weg…

 

Ich komme in einer Weile zurück, um Neuigkeiten über die Kampagne hier zu geben…

Bibliographie