Une version sucrée de Rottenpotatong, avec un peu de jus, c'est-à-dire un autre outil d'escalade de privilège local, des comptes de service Windows à NT Authority System
Rottenpotatong et ses variantes exploitent la chaîne d'escalade des privilèges basée sur le service BITS ayant l'auditeur MITM sur 127.0.0.1:6666 et lorsque vous avez des privilèges SeImpersonate ou SeAssignPrimaryToken . Lors d'une revue Windows Build, nous avons trouvé une configuration où BITS ont été intentionnellement désactivés et le port 6666 a été pris.
Nous avons décidé d'armer Rottenpotatong: dites bonjour à la pomme de terre juteuse .
Pour la théorie, voir Rotten Potato - Escalade des privilèges des comptes de service au système et suivez la chaîne de liens et de références.
Nous avons découvert qu'à part BITS , il existe plusieurs serveurs COM que nous pouvons abuser. Ils ont juste besoin de:
IMarshalAprès quelques tests, nous avons obtenu et testé une liste complète de CLSID intéressants sur plusieurs versions Windows.
Juicypotato vous permet de:
Cible CLSID
Choisissez n'importe quel CLSID que vous voulez. Ici, vous pouvez trouver la liste organisée par OS.
Com à écouter le port
Définissez le port d'écoute com que vous préférez (au lieu du 6666 codé en dur à poil
Com Adresse IP d'écoute com
lier le serveur sur n'importe quelle IP
Mode de création de processus
Selon les privilèges de l'utilisateur issus, vous pouvez choisir:
CreateProcessWithToken (besoin SeImpersonate )CreateProcessAsUser (a besoin SeAssignPrimaryToken )both Processus de lancement
Lancez un exécutable ou un script si l'exploitation réussit
Traiter l'argument
Personnaliser les arguments de processus lancés
Adresse du serveur RPC
Pour une approche furtive, vous pouvez vous authentifier à un serveur RPC externe
Port de serveur RPC
Utile si vous souhaitez vous authentifier à un serveur externe et que le pare-feu bloque le port 135 ...
Mode de test
Principalement à des fins de test, c'est-à-dire des tests de test. Il crée le DCOM et imprime l'utilisateur de jeton. Voir ici pour les tests
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)
-c <{clsid}>: CLSID (default BITS:{4991d34b-80a1-4291-83b6-3328366b9097})
-z only test CLSID and print token's user

Si l'utilisateur a des privilèges SeImpersonate ou SeAssignPrimaryToken , vous êtes un système .
Il est presque impossible d'empêcher l'abus de tous ces serveurs COM. Vous pouvez penser à modifier les autorisations de ces objets via DCOMCNFG mais bonne chance, ça va être difficile.
La solution réelle consiste à protéger les comptes et les applications sensibles qui s'exécutent sous les * SERVICE . L'arrêt DCOM inhiberait certainement cet exploit mais pourrait avoir un impact sérieux sur le système d'exploitation sous-jacent.
Une construction automatique est disponible. Les binaires peuvent être téléchargés à partir de la section Artefacts ici.
Également disponible en Blackarch.