Nous récupérons le courrier sans sms ni inscription

Pas même un mois ne s'était écoulé avant que nous décidions qu'il était temps d'écrire des articles sur la base des résultats de nos performances à OFFZONE-2018. Le premier article sera exécuté sur la base du rapport de FastTrack «Attaque du relais MS Exchange sans sms et enregistrement».

Lors de la conduite de RedTeam, l'utilisation du phishing est obligatoire - vous pouvez créer une excellente protection sur le périmètre, mais certains utilisateurs conduiront au phishing et donneront à un attaquant la possibilité d'être immédiatement à l'intérieur du réseau. Tout le monde sait que pour le phishing, ils utilisent principalement des liens vers des sites tiers sur lesquels l'utilisateur doit cliquer ou un document avec une macro. Les services de sécurité menacés de sanctions "entraînent" les utilisateurs en leur disant qu'en aucun cas vous ne devez cliquer sur le bouton "activer le contenu". Et en principe, il y a du succès - les utilisateurs de ce type de mailing sont de moins en moins nombreux. Mais les attaquants ne restent pas immobiles - le phishing devient de plus en plus intéressant. Les clients ont également besoin de certains mailings de phishing intéressants de notre part. Et nous sommes nous-mêmes intéressés par le fait que les employés du Client sont menés à l'hameçonnage, et nous pourrions leur expliquer ce qu'il faut rechercher lors de la réception d'une lettre.

Pourquoi exactement ces méthodes de phishing?


De nombreuses entreprises utilisent MS Exchange comme serveur de messagerie d'entreprise. C'est pratique pour l'entreprise, mais aussi pour l'attaquant. Un attaquant souhaite envoyer des messages à partir du courrier de la victime, ainsi que télécharger des lettres. Nous, en tant que RedTeam, voulons imiter complètement les actions d'un attaquant et nous sommes intéressés à faire les mêmes actions avec le courrier. Naturellement, dans notre cas, le téléchargement du courrier n'est pas complet et le Client en est préalablement informé. Pour des informations confidentielles, toutes choses.

Pour effectuer ce type d'action, nous avons besoin d'une session de messagerie utilisateur. La première chose à penser est de savoir comment intercepter une telle session. Nous avons décidé d'utiliser le bon vieux relais NTLM (car la plupart des entreprises utilisent toujours NTLM). Oui, dans le cas de Kerberos, cela ne fonctionnera pas - vous pouvez fermer l'article et ne pas lire plus loin.

Le relais NTLM est connu depuis longtemps et il existe suffisamment d'implémentations. Nous n'avons pas non plus inventé de vélo et nous avons pris l'une des implémentations avec GitHub d'Arno0x0x. Cependant, tout n'était pas si simple et j'ai dû en ajouter un peu. À savoir:

  • faire tout fonctionner avec toutes les versions modernes de Windows OS (ne fonctionne pas sur win10 et win server2016);
  • faire fonctionner avec le dernier Impacket;
  • ajouter un système de journalisation pratique.

Une version modifiée peut être trouvée sur notre github .

Les documents Microsoft Office ont été choisis comme conteneur de livraison, car ils sont le plus souvent envoyés par courrier d'entreprise et les utilisateurs les ouvrent. Et il a été décidé d'utiliser des sous-documents (SubDocument), car il s'agit d'une opération légale avec un document, et aucun antivirus ne répondra à un tel fichier. En tant que lien imbriqué, vous pouvez inclure des ressources smb et http. Les détails seront discutés plus tard.

Comment créer un document de phishing?


Par exemple, considérons le document complètement «propre» mydoc3.docx, qui est le document Microsoft Word le plus courant.



Tout document Microsoft Office est une archive zip composée de xml, qui forment finalement votre beau document. Afin de créer un document joint, nous devons apporter des modifications aux fichiers avec l'extension .rels. Selon la version de MS Office, les modifications doivent être apportées soit dans document.xml.rels ou dans settings.xml.rels. Cet article décrit Office 365 et apporte des modifications à settings.xml.rels.



En tant que document joint, nous donnons un lien vers la ressource sur laquelle se trouve ce même document joint. Dans notre cas, le document joint se trouve sur la ressource smb \\ 127.0.0.1 \ subdoctest \



Nous enregistrons les modifications et ouvrons le document reçu. En cas de succès, le document ressemblera à ceci:



Cependant, sous cette forme, cela provoque des soupçons parmi les utilisateurs. Vous devez le changer un peu et essayer de masquer le lien en utilisant différents styles et couleurs de police blanches.



En conséquence, nous avons reçu un document complètement non suspect, à l'ouverture de lequel Word ira lui-même à la ressource, qui est enregistré avec lui en tant que document joint.

Et d'où viendra tout?


Le document sera frappé sur votre serveur (en fait, ils devraient lui donner un lien). Le serveur peut être un serveur SMB ou un serveur HTTP (voir les cas ci-dessous). Cet article ne considère qu'un exemple d'envoi d'un message à partir du courrier d'un utilisateur dont nous avons intercepté la session.

Pour tout démarrer, un ensemble minimal suffit - le dernier Impacket , MSExchangeRelay et Python2.7.
Nous commençons tout avec la commande:

python MsExchangeRelay.py -v -t https://exchange_addr/ews/exchange.asmx -r sendMail -d "example@email.com" -s Hello -m sampleMsg.html -o out.txt 

 exchange_addr –  exchange   example@email.com –           . -s Hello –   -m sampleMsg.html –  ,    -o out.txt –    . 

Après le démarrage, les serveurs SMB et HTTP montent sur le serveur, qui attendent une connexion avec eux.



Après une connexion réussie, vous pouvez voir avec quelle connexion et à partir de quelle adresse IP l'utilisateur s'est connecté:



Comment l'appliquer maintenant?


Vous pouvez utiliser cette méthode dans différents cas.

Cas 1. Intrus externe, le client dispose d'un port 445 sortant

Dans ce cas, vous pouvez utiliser le lien vers la ressource smb. Le charme d'un tel lien est que Windows ne veut plus déranger l'utilisateur s'il peut le gérer lui-même. Par conséquent, lorsque vous ouvrez un document avec un lien vers la ressource smb, Windows lui-même envoie les crédits de domaine de l'utilisateur à cette ressource. Autrement dit, rien n'arrive à l'utilisateur. L'utilisateur ouvre le document. Et c'est tout. La suspicion ne cause rien. Et nous avons déjà une session de messagerie personnalisée.
Le port ouvert 445, bien que rare, est toujours trouvé. Par conséquent, nous le considérons également et le laissons.

Cas 2. Intrus interne


Ici, nous appliquons également le lien vers la ressource smb. En cas d'interception réussie de la session, la lettre que nous avons indiquée sera envoyée à l'adresse postale indiquée.

Cas 3. L'intrus externe et le port sortant 445 sont fermés


Nous pouvons utiliser le lien vers le serveur HTTP. Cependant, dans ce cas, tout ne sera pas aussi transparent pour l'utilisateur. Lorsque vous ouvrez le document, l'utilisateur verra une fenêtre standard de Windows, qui demande le nom d'utilisateur et le mot de passe de l'utilisateur. Le moment qui peut dérouter l'utilisateur est le nom de domaine evil_http_server - il doit être aussi similaire que possible au nom de domaine d'échange du client.

Une fois que l'utilisateur a entré ses crédits, nous obtenons sa session et envoyons une lettre.







Au lieu d'une conclusion


NTLMRelay peut être emballé dans différents conteneurs et proposer des approches complètement différentes pour les utilisateurs de phishing. Alors que NTLM est vivant, ce type d'attaque est également vivant. Alors expérimentez!

PS Merci aux organisateurs d'OFFZONE-2018 pour une excellente conférence!

Source: https://habr.com/ru/post/fr432182/


All Articles