O365-Doppelganger
O365-Doppelganger ist KEIN Ersatz für harte Phishing-Aktivitäten. Es gibt mehrere andere Tools, die OAuth- und OTA-Erfassung durchführen, was nicht das Ziel von O365-Doppelganger ist.
O365-Doppelganger ist ein schnelles, praktisches Skript, um während Red Teams Anmeldeinformationen eines Benutzers zu sammeln. Dieses Repository ist ein schneller Hack eines meiner alten Red-Team-Engagement-Skripte, das ich mehrfach verwendet habe, um Anmeldeinformationen zu erfassen und sie zur Erstellung von Windows-Zugriffstoken für laterale Bewegungen zu nutzen. Dieses Code-Repository führt im Wesentlichen die folgenden Aufgaben aus:
- Der GO-Code:
- hostet das O365-Portal (kann durch alles in der index.html ersetzt werden). Es wird empfohlen, ein gültiges Zertifikat und einen Schlüssel (LetsEncrypt?) anstelle des im Verzeichnis bereitgestellten zu verwenden.
- protokolliert alle Benutzeraktivitäten auf dem Webportal in einer separaten Logdatei auf dem Server.
- protokolliert die erfassten Anmeldeinformationen in einer separaten Logdatei auf dem Server.
- kann auch verwendet werden, um dem Benutzer nach der Erfassung der Anmeldeinformationen eine gültige Datei zurückzugeben. Dies kann erreicht werden, indem die Datei namens
MacroFile.doc im aktuellen Verzeichnis ersetzt und durch eine HTA/ISO/MSI oder irgendetwas anderes ersetzt wird, das der Phisher möchte. Es gibt auch einen kleinen Code im GO-Code, der geändert werden müsste, um den Dateinamen des Benutzers festzulegen, der zurückgegeben werden soll: content, err := ioutil.ReadFile("MacroFile.doc")
- Nach der Änderung wird der Zielbenutzer, wenn er eine gültige E-Mail-ID und ein Passwort eingibt, aufgefordert, die obige Datei zu speichern. Dieser Dateiname kann mit dem folgenden Code in der GO-Datei geändert werden:
response.Header().Set("Content-Disposition", "attachment; filename=Darkvortex Privacy Policy.doc")
- Der index.html-Code:
- rendert ein O365-Portal zusammen mit einem kleinen Regex, der die Domäne eines bestimmten Benutzers überprüft, um es etwas legitimer aussehen zu lassen. Der Regex-Code sieht wie folgt aus:
pattern="^([a-zA-Z0-9_\-\.]+)@darkvortex\.([a-zA-Z]{2,5})$" title=" Valid darkvortex email ID"
- Der obige Regex prüft, ob der angegebene Benutzername eine vollständige gültige E-Mail-Adresse enthält, andernfalls wird der Benutzer aufgefordert, einen korrekten Benutzernamen einzugeben, wie folgt:

- Dieselbe Prüfung wird auch im GO-Code durchgeführt, damit Benutzer nicht so etwas wie Burp verwenden, um die Prüfung zu umgehen:
if strings.Contains(value[i], "@darkvortex") {
- Es wird empfohlen, den Namen darkvortex in der index.html-Datei in den eigenen Zielunternehmensnamen zu ändern.
- Sobald die korrekte E-Mail-ID und das Passwort eingegeben wurden, wird der Benutzer aufgefordert, die bereitgestellte Datei wie folgt zu speichern:
