
D(COM) V(ulnérabilité) S(canneur) alias couteau suisse dévoyé - Mouvement latéral utilisant des objets DCOM
Vous êtes-vous déjà demandé comment vous déplacer latéralement dans des réseaux internes ? ou interagir avec des machines distantes sans alerter les EDR ?
Supposons que nous ayons des identifiants valides, ou une session active avec un accès à une machine distante, mais sans option pour exécuter un processus à distance de manière connue, attendue ou hautement surveillée (par exemple, WMI, Planificateur de tâches, WinRM, PowerShell Remoting).
Pour ces scénarios, le framework DVS vient à la rescousse.
Le framework DVS est un couteau suisse qui vous permet d'énumérer les fonctions vulnérables d'objets DCOM distants, de les lancer et même de lancer des attaques en les utilisant.
Le framework est développé avec un état d'esprit "Red Team" et utilise des méthodes furtives pour compromettre des machines distantes.
Le framework DVS contient diverses façons de contourner le durcissement à distance contre DCOM en réactivant l'accès DCOM à distance et en accordant automatiquement les autorisations nécessaires à l'utilisateur attaquant.
Le framework peut également annuler les modifications sur la machine distante pour les ramener à leur état d'origine, avant l'attaque - cachant ces modifications aux défenseurs.
Notre principale idée est que l'outil peut également exécuter des commandes en utilisant des objets DCOM non vulnérables grâce à une technique astucieuse (Lisez ci-dessous à propos de Invoke-RegisterRemoteSchema)
Compatible avec PowerShell 2.0 et versions ultérieures
Vidéo YouTube PoC : DVS
Cet outil est destiné uniquement à des fins de test et d'éducation. Toute autre utilisation de ce code n'est pas autorisée. Utilisez-le à vos propres risques.
L'auteur décline toute responsabilité en cas de mauvaise utilisation de cet outil.
En l'utilisant, vous acceptez le fait que tout dommage causé par l'utilisation de cet outil est de votre responsabilité.
Accès au registre distant (MS-RRP)
AutoGrant est activé, vérifier les autorisations d'écriture. Sinon, vérifier les autorisations de lectureFournisseur de registre standard (Si le registre distant est refusé)
StdRegProv est accessibleAutoGrant est activé, vérifier les autorisations d'écriture, sinon, vérifier les autorisations de lectureL'outil DVS vérifie d'abord si l'identité principale a accès à la machine distante via les étapes suivantes :
Actions de base
SkipRegAuth n'est pas activé)
AutoGrant est activé), sinon échoueradsi/WindowsIdentity), sont autorisés à interagir avec le DCOM (via des requêtes de registre distant)AutoGrant est activé), sinon, échouerHKLM ou HKCU)Invoke-DCOMObjectScan
Get-ExecutionCommand
Invoke-ExecutionCommand
Invoke-RegisterRemoteSchema
git clone https://github.com/ScorpionesLabs/DVS
powershell -ep bypass
PS> Import-Module .\DVS.psm1
PS> Get-Help Invoke-DCOMObjectScan -Detailed # Obtenir les détails de la commande Invoke-DCOMObjectScan
PS> Get-Help Get-ExecutionCommand -Detailed # Obtenir les détails de la commande Get-ExecutionCommand
PS> Get-Help Invoke-ExecutionCommand -Detailed # Obtenir les détails de la commande Invoke-ExecutionCommand
PS> Get-Help Invoke-RegisterRemoteSchema -Detailed # Obtenir les détails de la commande Invoke-RegisterRemoteSchema
La fonction Invoke-DCOMObjectScan vous permet de scanner des objets DCOM et de trouver des fonctions vulnérables via une liste de modèles ou de noms de fonctions exacts que vous avez inclus dans un fichier.
Énumère et scanne l'objet MMC20.Application (ProgID) de la machine attaquante vers l'hôte DC01 sans interroger le registre.
Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -HostList DC01 -SkipRegAuth -Username "lab\administrator" -Password "Aa123456!" -Verbose