Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Potato — Exploit local d'élévation de privilèges Windows utilisant l'usurpation NBNS, un faux proxy WPAD et un relais NTLM HTTP-vers-SMB pour obtenir un accès NT AUTHORITY\SYSTEM. | Kitploit
Outils/GitHubGitHub/foxglovesec/potato
Escalade de PrivilègesExploitationMouvement LatéralPost-ExploitationSécurité RéseauTests d'IntrusionAuthentificationRed Teaming
GitHubfoxglovesec/potato

Potato

Exploit local d'élévation de privilèges Windows utilisant l'usurpation NBNS, un faux proxy WPAD et un relais NTLM HTTP-vers-SMB pour obtenir un accès NT AUTHORITY\SYSTEM.

Voir le dépôt
745168il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

#Potato Élévation de privilèges sur Windows 7, 8, 10, Server 2008, Server 2012

###Comment ça fonctionne Potato exploite des problèmes connus dans Windows pour obtenir une élévation de privilèges locale, à savoir le relais NTLM (plus précisément le relais HTTP->SMB) et l'usurpation NBNS.

En utilisant les techniques décrites ci-dessous, il est possible pour un utilisateur non privilégié d'obtenir un accès de niveau "NT AUTHORITY\SYSYTEM" sur un hôte Windows dans des configurations par défaut.

L'exploit se compose de 3 parties principales, toutes plus ou moins configurables via des commutateurs en ligne de commande :

#####1. Usurpateur NBNS local NBNS est un protocole UDP de diffusion pour la résolution de noms couramment utilisé dans les environnements Windows. En test d'intrusion, nous sniffons souvent le trafic réseau et répondons aux requêtes NBNS observées sur un réseau local. Pour des besoins d'élévation de privilèges, nous ne pouvons pas supposer être capables de sniffer le trafic réseau, alors comment pouvons-nous réaliser l'usurpation NBNS ?

Si nous pouvons savoir à l'avance pour quel hôte une machine cible (dans ce cas notre cible est 127.0.0.1) va envoyer une requête NBNS, nous pouvons fabriquer une réponse et inonder l'hôte cible de réponses NBNS (puisqu'il s'agit d'un protocole UDP). Une complication réside dans le fait qu'un champ de 2 octets dans le paquet NBNS, le TXID, doit correspondre dans la requête et la réponse. Nous pouvons surmonter cela en inondant rapidement et en itérant sur les 65536 valeurs possibles.

Que se passe-t-il si l'hôte que nous essayons d'usurper possède déjà un enregistrement DNS ? Eh bien, nous pouvons FORCER les recherches DNS à échouer d'une manière amusante. En utilisant une technique appelée "épuisement de ports", nous nous lions à chaque port UDP. Lorsque vous essayez d'effectuer une recherche DNS, elle échouera car il n'y aura aucun port source disponible pour que la réponse DNS arrive.

Lors des tests, cela s'est avéré efficace à 100 %.

#####2. Faux serveur proxy WPAD Avec la capacité d'usurper les réponses NBNS, nous pouvons cibler notre usurpateur NBNS vers 127.0.0.1. Nous inondons la machine cible (notre propre machine) de paquets de réponse NBNS pour l'hôte "WPAD", ou "WPAD.DOMAIN.TLD", et nous déclarons que l'hôte WPAD a l'adresse IP 127.0.0.1.

En même temps, nous exécutons un serveur HTTP localement sur 127.0.0.1. Lorsqu'il reçoit une requête pour "http://wpad/wpad.dat", il répond avec quelque chose comme ce qui suit :

root@kitploit:~
FindProxyForURL(url,host){
	if (dnsDomainIs(host, "localhost")) return "DIRECT";
	return "PROXY 127.0.0.1:80";}

Cela aura pour effet de rediriger tout le trafic HTTP de la cible à travers notre serveur exécuté sur 127.0.0.1.

Fait intéressant, cette attaque, même réalisée par un utilisateur à faibles privilèges, affectera tous les utilisateurs de la machine. Cela inclut les administrateurs et les comptes système. Voir les captures d'écran "egoldstein_spoofing.png" et "dade_spoofed.png" pour un exemple.

#####3. Relais NTLM HTTP -> SMB Avec tout le trafic HTTP passant désormais par un serveur que nous contrôlons, nous pouvons faire des choses comme demander une authentification NTLM...

Dans l'exploit Potato, toutes les requêtes sont redirigées avec une redirection 302 vers "http://localhost/GETHASHESxxxxx", où xxxxx est un identifiant unique. Les requêtes vers "http://localhost/GETHASHESxxxxx" répondent avec une requête 401 pour l'authentification NTLM.

Les identifiants NTLM sont relayés vers l'écouteur SMB local pour créer un nouveau service système qui exécute une commande définie par l'utilisateur. Cette commande s'exécutera avec le privilège "NT AUTHORITY\SYSTEM".

###Utilisation de l'exploit L'utilisation dépend actuellement du système d'exploitation.

Il est aussi parfois un peu instable, en raison des particularités de la gestion des paramètres de proxy et du fichier WPAD par Windows. Souvent, lorsque l'exploit ne fonctionne pas, il est nécessaire de le laisser en cours d'exécution et d'attendre. Lorsque Windows a déjà une entrée en cache pour WPAD, ou autorise un accès Internet direct car aucun WPAD n'a été trouvé, cela peut prendre 30 à 60 minutes pour qu'il se rafraîchisse. Il est nécessaire de laisser l'exploit en cours d'exécution et d'essayer de le déclencher à nouveau plus tard, après que ce délai se soit écoulé.

Les techniques listées ici sont ordonnées de la moins à la plus complexe. Toute technique plus loin dans la liste devrait fonctionner sur toutes les versions précédentes. Des vidéos et des captures d'écran sont incluses pour chacune.

#####Windows 7 - voir https://www.youtube.com/watch?v=Nd6f5P3LSNM Windows 7 peut être exploité de manière assez fiable via le mécanisme de mise à jour de Windows Defender.

Potato.exe possède du code pour déclencher cela automatiquement. Exécutez simplement ce qui suit : Potato.exe -ip <local ip> -cmd <command to run> -disable_exhaust true

Cela lancera l'usurpateur NBNS, usurpera "WPAD" vers 127.0.0.1, puis vérifiera les mises à jour de Windows Defender.

Si votre réseau possède déjà une entrée DNS pour "WPAD", vous pouvez essayer "-disable_exhaust false". Cela devrait faire échouer la recherche DNS et elle devrait se rabattre sur NBNS. Nous avons testé cela quelques fois et cela a fonctionné

#####Windows Server 2008 - voir https://www.youtube.com/watch?v=z_IGPWgL5SY Comme Windows Server n'est pas livré avec Defender, nous avons besoin d'une méthode alternative. À la place, nous vérifierons simplement les mises à jour Windows. L'autre mise en garde est que, au moins sur mon domaine, Server 2K8 voulait WPAD.DOMAIN.TLD au lieu de simplement WPAD. Voici un exemple d'utilisation :

Potato.exe -ip <local ip> -cmd <command to run> -disable_exhaust true -disable_defender true --spoof_host WPAD.EMC.LOCAL

Après que cela s'exécute avec succès, vérifiez simplement les mises à jour Windows. Si cela ne se déclenche pas, attendez environ 30 minutes avec l'exploit en cours d'exécution et vérifiez à nouveau. Si cela ne fonctionne toujours pas, essayez de télécharger réellement une mise à jour.

Si votre réseau possède déjà une entrée DNS pour "WPAD", vous pouvez essayer "-disable_exhaust false". Cela devrait faire échouer la recherche DNS et elle devrait se rabattre sur NBNS. Nous avons testé cela quelques fois et cela a fonctionné

#####Windows 8/10/Server 2012 - voir https://www.youtube.com/watch?v=Kan58VeYpb8 Dans les versions les plus récentes de Windows, il semble que Windows Update puisse ne plus respecter les paramètres de proxy définis dans "Options Internet", ni vérifier WPAD. À la place, les paramètres de proxy pour Windows Update sont contrôlés à l'aide de "netsh winhttp proxy..."

Pour ces versions, nous nous appuyons plutôt sur une fonctionnalité plus récente de Windows, le "mise à jour automatique des certificats non approuvés". Les détails peuvent être trouvés sur https://support.microsoft.com/en-us/kb/2677070 et https://technet.microsoft.com/en-us/library/dn265983.aspx

D'après l'article technet : "Les systèmes d'exploitation Windows Server 2012 R2, Windows Server 2012, Windows 8.1 et Windows 8 incluent un mécanisme de mise à jour automatique qui télécharge les listes de certificats de confiance (CTL) quotidiennement."

Il semble que cette partie de Windows utilise encore WPAD, même lorsque le paramètre de proxy winhttp est défini sur direct.

Dans ce cas, l'utilisation de Potato est la suivante : Potato.exe -ip <local ip> -cmd <cmd to run> -disable_exhaust true -disable_defender true

À ce stade, vous devrez attendre jusqu'à 24 heures ou trouver un autre moyen de déclencher cette mise à jour.

Si votre réseau possède déjà une entrée DNS pour "WPAD", vous pouvez essayer "-disable_exhaust false". Cela devrait faire échouer la recherche DNS et elle devrait se rabattre sur NBNS. Nous avons testé cela quelques fois et cela a fonctionné

###Atténuations

L'activation de "Extended Protection for Authentication" dans Windows devrait arrêter les attaques par relais NTLM.

La signature SMB peut également atténuer ce type d'attaque, mais cela nécessiterait davantage de recherches de ma part pour le confirmer.

###Usurpation NBNS hors diffusion En utilisant la même technique d'usurpation NBNS que l'exploit Potato, nous pouvons effectuer une usurpation NBNS contre n'importe quel hôte avec lequel nous pouvons communiquer sur UDP 137. Nous devons simplement envoyer les paquets UDP suffisamment rapidement pour glisser une réponse valide avant que la requête NBNS n'expire.

Une vidéo de démonstration de cela est visible sur https://www.youtube.com/watch?v=Mzn7ozkyG5g

Le laboratoire de démonstration a la configuration suivante :

Pare-feu PFSense 10.0.0.0/24 -> LAN d'entreprise 10.0.1.0 /24 -> Réseau de serveurs

Depuis le réseau d'entreprise, nous attaquerons une machine sur le réseau de serveurs.

Utilisation : python Responder.py –I eth0 –spoof <target>:<spoof address>:<spoof host>

Télécharger l’outil