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
acCOMplice — Outils de découverte et d'exploitation des détournements COM | Kitploit
Outils/GitHubGitHub/nccgroup/accomplice
Mécanismes de PersistancePost-ExploitationRed TeamingDéveloppement de Charges Utiles
GitHubnccgroup/accomplice

acCOMplice

Outils de découverte et d'exploitation des détournements COM

Voir le dépôt
33951il y a 6 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

acCOMplice

Votre complice de détournement COM

Auteur : David Tulis (@kafkaesqu3)

Aperçu

Ce dépôt contient des échantillons de code et des preuves de concept pour explorer le détournement COM. Le détournement COM est une technique de post-exploitation Windows qui peut être utilisée pour la persistance ou l'évasion de la défense.

Pour plus d'informations sur l'interface COM, comment trouver des détournements et les techniques pour abuser d'un détournement, veuillez vous référer à la présentation donnée à Derbycon 9, COM Hijacking Techniques.

  • Diapositives : https://www.slideshare.net/DavidTulis1/com-hijacking-techniques-derbycon-2019
  • Présentation : https://www.youtube.com/watch?v=pH14BvUiTLY

Projet

  • COMHijackToolkit : Script Powershell contenant des scripts d'aide pour gérer les détournements COM. Aperçu rapide :
    • Extract-HijackableKeysFromProcmonCSV : analyse un export CSV de Procmon pour rechercher les objets détournables
    • Hijack-CLSID : Détourne un CLSID avec une DLL donnée
    • Hijack-MultipleKeys : Détourne plusieurs CLSDs simultanément avec une DLL donnée. Utile pour trouver les CLSID qui sont souvent activés
  • InjectionTemplates : 3 modèles démontrés lors de la présentation Derbycon
    • Créer un nouveau processus avec CreateProcess
    • Injecter dans un processus existant avec CreateRemoteThread
    • Mesurer la durée de vie des threads dans le processus courant avec CreateThread
  • COMinject : Preuve de concept démontrant comment les détournements COM peuvent être utilisés pour réaliser des injections/migrations de processus
  • masterkeys.csv : Quelques clés pour vous amuser
  • procmon-filters : Filtres pour Procmon afin de faciliter l'identification et l'exploitation des détournements

Exemples

COMHijackToolkit

Script Powershell contenant des scripts d'aide pour gérer les détournements COM. Points forts :

Afficher tous les CLSID d'objets COM et l'emplacement de l'implémentation sur le disque

root@kitploit:~
$keys = Get-CLSIDRegistryKeys -RegHive HKCR
$results = $keys | % {$guid = Extract-GUIDFromText $_; Map-GUIDToDLL -guid $guid 2> $null }

Effectuer un inventaire des CLSID sur un système

root@kitploit:~
$HKCR_keys = Get-CLSIDRegistryKeys -RegHive HKCR
$HKCR_keys | where-object {$_ -like "*inprocserver"} | Measure-Object
$HKCR_keys | where-object {$_ -like "*inprocserver32"} | Measure-Object
$HKCR_keys | where-object {$_ -like "*localserver"} | Measure-Object
$HKCR_keys | where-object {$_ -like "*localserver32"} | Measure-Object

$HKLM_keys = Get-CLSIDRegistryKeys -RegHive HKLM
$HKLM_keys | Measure-Object
$HKCU_keys = Get-CLSIDRegistryKeys -RegHive HKCU
$HKCU_keys | Measure-Object
root@kitploit:~
explorer:{69486DD6-C19F-42e8-B508-A53F9F8E67B8}
explorer:{9E175B6D-F52A-11D8-B9A5-505054503030}
explorer:{30CC9D06-7E62-4966-9777-BC3442E788BD}
explorer:{3eef301f-b596-4c0b-bd92-013beafce793}
explorer:{682159d9-c321-47ca-b3f1-30e36b2ec8b9}
explorer:{6B3B8D23-FA8D-40B9-8DBD-B950333E2C52}
explorer:{9aa46009-3ce0-458a-a354-715610a075e6}
explorer:{9BA05972-F6A8-11CF-A442-00A0C90A8F39}
explorer:{AC36A05C-FB95-4C7A-868C-A43CC8D2D926}
explorer:{B52D54BB-4818-4EB9-AA80-F9EACD371DF8}
explorer:{c2f03a33-21f5-47fa-b4bb-156362a2f239}

Trouver les CLSID référençant une DLL qui n'existe pas sur le système :

root@kitploit:~
Find-MissingLibraries

InjectionTemplates

3 modèles de preuve de concept pour l'abus de détournement COM, comme démontré lors de la présentation Derbycon 9 :

  • HijackDLL-Process : Créer un nouveau processus lorsque la DLL est chargée
  • HijackDLL-CreateRemoteThread : Effectuer une technique d'injection de thread en utilisant l'appel API CreateRemoteThread lorsque la DLL est chargée
  • HijackDLL-Threads : Utile pour mesurer la durée de vie des threads démarrés dans la DLL après un détournement

COMinject

Preuve de concept montrant comment le détournement COM peut être utilisé pour les injections de processus :

  • COMInjectDotNet : Client de preuve de concept qui injecte une DLL dans un processus pris en charge via un détournement COM
  • COMInjectTarget : La bibliothèque cible à injecter dans un processus

La première étape consiste à effectuer le détournement :

root@kitploit:~
COMInjectDotNet.exe chrome.exe C:\COM\COMInjectTarget.dll

Le détournement ne se déclenchera pas immédiatement et peut nécessiter que l'application soit démarrée (si elle n'est pas déjà en cours d'exécution), ou quelques actions de base dans l'application. Il existe probablement de meilleurs CLSID qui se déclenchent plus souvent, mais ceux-ci sont suffisants.

La COMInjectTarget.dll journalisera sa progression dans un fichier journal dans C:\COM. Cela semble plus stable que d'utiliser quelque chose comme AllocConsole depuis un autre processus et de se contenter d'imprimer dans la console.

Ce qui suit montre la DLL injectée s'exécutant depuis le processus principal chrome.exe :

root@kitploit:~
[*] chrome pid=9104 ppid=4900 (count 0)
[*] chrome pid=9104 ppid=4900 (count 1)
[*] chrome pid=9104 ppid=4900 (count 2)
[*] chrome pid=9104 ppid=4900 (count 3)
[*] chrome pid=9104 ppid=4900 (count 4)
[*] chrome pid=9104 ppid=4900 (count 5)

Les processus actuellement pris en charge sont :

  • explorer (par défaut)
  • chrome
  • excel
  • word
  • outlook

Références et crédits

Pour en savoir plus sur COM et les détournements COM :

  • Leo Loobeek (@leoloobeek) :
    • COMProxy, dont j'ai massivement emprunté le code
    • Utiliser un proxy COM pour des détournements stables
  • Matt Nelson (@enigma0x3) :
    • Persistance en espace utilisateur avec les tâches planifiées et le détournement de gestionnaires COM
  • La série de @bohops sur les détournements COM :
    • Abuser de la structure du registre COM : CLSID, LocalServer32 et InprocServer32
    • Abuser de la structure du registre COM (2e partie) : techniques de détournement et de chargement
  • James Forshaw (@tiraniddo) :
    • S'amuser avec COM
    • COM en 60 secondes
    • OleViewDotNet
  • Casey Smith (@subtee) + @enimga0x3 :
    • Archéologie du système d'exploitation Windows (diapositives, code)
Télécharger l’outil