
Un script pratique et rapide pour récupérer les identifiants d'un utilisateur lors d'une opération Red Team et obtenir l'exécution d'un fichier de la part de l'utilisateur.
O365-Doppelganger n'est PAS un substitut aux activités de phishing intensives. Il existe plusieurs autres outils qui effectuent la capture OAuth et OTA, ce qui n'est pas l'objectif d'O365-Doppelganger.
O365-Doppelganger est un script pratique et rapide pour récolter les identifiants d'un utilisateur lors d'opérations d'équipes rouges. Ce dépôt est un bricolage rapide d'un de mes anciens scripts d'engagement d'équipe rouge que j'ai utilisé plusieurs fois pour capturer des identifiants et les utiliser pour fabriquer des jetons d'accès Windows en vue d'un mouvement latéral. Ce code source effectue essentiellement les tâches suivantes :
MacroFile.doc dans le répertoire courant par un fichier HTA/ISO/MSI ou tout autre élément souhaité par l'attaquant. Il y a aussi un petit bout de code dans le code GO qui doit être modifié pour préciser le nom du fichier à renvoyer : content, err := ioutil.ReadFile("MacroFile.doc")response.Header().Set("Content-Disposition", "attachment; filename=Darkvortex Privacy Policy.doc")affiche un portail O365 accompagné d'une petite regex qui vérifie le nom de domaine de l'utilisateur pour donner un aspect plus légitime. Le code regex ressemble à ceci : pattern="^([a-zA-Z0-9_\-\.]+)@darkvortex\.([a-zA-Z]{2,5})$" title=" Identifiant email darkvortex valide"
La regex ci-dessus vérifie si le nom d'utilisateur saisi contient une adresse email complète valide ; sinon, elle invite l'utilisateur à saisir un nom d'utilisateur correct comme suit :

Cette même vérification est également effectuée dans le code GO afin d'éviter que les utilisateurs n'utilisent des outils comme Burp pour contourner la vérification : if strings.Contains(value[i], "@darkvortex") {
Il est recommandé de remplacer le nom darkvortex dans le fichier index.html par le nom de votre propre entreprise cible.
Une fois l'identifiant email et le mot de passe corrects saisis, l'utilisateur sera invité à enregistrer le fichier fourni comme suit :
