Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/mitchmoser/lacheck
Escalada de PrivilegiosReconocimientoMovimiento LateralRecopilación de InformaciónPruebas de PenetraciónRed Teaming
GitHubmitchmoser/lacheck

LACheck

Ensamblado C# .NET multihilo para enumerar privilegios administrativos locales en hosts Windows a través de SMB, WMI y WinRM, con integración con BloodHound para el reconocimiento de Active Directory.

Ver Repositorio
93154hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

LACheck

Enumeración de Privilegios Administrativos Locales con C# .NET Assembly Multihilo

Argumentos

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

Uso:
    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]

Comprobaciones de Admin Local:
    smb   - Intenta acceder al recurso compartido C$
    rpc   - Intenta consulta WMI de la clase Win32_ComputerSystem a través de RPC
    winrm - Intenta consulta WMI de la clase Win32_ComputerSystem a través de sesión WinRM

Argumentos:
    /bloodhound - genera un archivo de colección AdminTo y Session compatible con BloodHound
                  el archivo de salida está comprimido y encriptado con nombre y contraseña aleatorios
    /dc         - especifica el controlador de dominio a consultar (si no se ejecuta en un host unido al dominio)
    /domain     - especifica el nombre de dominio (si no se ejecuta en un host unido al dominio)
    /edr        - comprueba si el host tiene EDR (requiere smb, rpc o winrm)
    /logons     - devuelve los usuarios con sesión iniciada en un host (requiere smb, rpc o winrm)
    /registry   - enumera sesiones desde el hive del registro (requiere smb)
    /services   - devuelve servicios ejecutándose como usuarios (requiere smb, rpc o winrm)
    /socket     - envía la salida de BloodHound a un socket TCP en lugar de escribir en disco
                  ej: ""127.0.0.1:8080""
    /targets    - lista separada por comas de nombres de host a comprobar
    /threads    - especifica el número máximo de hilos paralelos (por defecto=25)
    /user       - especifica el nombre de usuario bajo el cual se ejecutó la recolección (útil durante manipulación de tokens)
    /validate   - comprueba credenciales contra el Dominio antes de escanear objetivos (útil durante manipulación de tokens)
    /verbose    - imprime información adicional de registro
    /ou         - especifica la OU de LDAP para consultar objetos de equipo habilitados
                  ej: "OU=Special Servers,DC=example,DC=local"
    /ldap - consulta hosts de los siguientes filtros LDAP:
         :all - Todos los equipos habilitados con grupo 'principal' 'Domain Computers'
         :dc  - Todos los controladores de dominio habilitados (no controladores de dominio de solo lectura)
         :exclude-dc - Todos los equipos habilitados que no sean controladores de dominio o controladores de dominio de solo lectura
         :servers - Todos los servidores habilitados
         :servers-exclude-dc - Todos los servidores habilitados excluyendo controladores de dominio o controladores de dominio de solo lectura

Ensamblado de Ejecución

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

Salida

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
[+] Argumentos Analizados:
        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
[+] Realizando consulta LDAP para todos los equipos habilitados que no sean controladores de dominio o controladores de dominio de solo lectura...
[+] Esto puede llevar algo de tiempo dependiendo del tamaño del entorno
[+] Resultados de búsqueda LDAP: 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.

Autenticación WinRM

Como se ve en el ejemplo de salida anterior, intentar comprobar WinRM en el host con dirección IP 10.10.10.10 generará un error debido a que el cliente WinRM no intenta autenticarse a un host mediante dirección IP.

Utilice nombres de host al intentar comprobar el acceso WinRM.

Especificación de Objetivos

Las banderas /targets, /ldap y /ou pueden usarse juntas o por separado para generar una lista de hosts a enumerar.

Todos los hosts devueltos por estas banderas se combinan y deduplican antes de que comience la enumeración.

BloodHound

LACheck admite la escritura de las colecciones AdminTo y Session en una salida JSON que puede subirse a BloodHound

Esta salida solo está destinada a aumentar una colección existente de BloodHound con privilegios administrativos actualizados para un solo usuario y sesiones recopiladas de hosts donde se hayan identificado privilegios administrativos.

El interruptor /bloodhound escribirá un archivo zip encriptado con nombre aleatorio en el disco que puede descargarse, extraerse y subirse a BloodHound

/user

BloodHound requiere resolver usuarios y equipos a SIDs. Debido a técnicas de suplantación como make_token y kerberos_ticket_use de Cobalt Strike, LACheck puede no ser capaz de determinar con precisión el contexto de usuario para una recolección. El argumento /user es necesario para proporcionar a LACheck el userprincipalname (formato = [email protected]) del contexto bajo el cual se ejecuta para correlacionar con precisión la información de recolección.

/socket

La salida de BloodHound puede enviarse a un socket TCP en lugar de escribirse en disco.

Si la conexión TCP falla, la salida de BloodHound se escribirá en disco.

En un beacon de Cobalt Strike, las conexiones TCP pueden reenviarse desde un host a la máquina local del operador utilizando rportfwd_local:

root@kitploit:~
rportfwd_local 8888 127.0.0.1 8888

Un operador puede luego redirigir la salida del flujo TCP a un archivo local usando netcat:

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

Métodos de Enumeración

Resumen de Rendimiento

- = no implementado

SMB

/edr

Inspirado en el script EDR.cna de harleyQu1nn

El método Directory.GetFiles devuelve una lista de controladores de:

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

Los controladores se buscan en una lista de controladores conocidos utilizados por proveedores de EDR.

Ejemplo de salida ejecutada como usuario svcadmin

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

/logons

NetWkstaUserEnum devuelve una lista de usuarios con inicios de sesión interactivos, de servicio y por lotes

WTSEnumerateSessionsA devuelve una lista de sesiones RDP en un host

WTSQuerySessionInformationA recupera información detallada de cada sesión RDP

Ejemplo de salida ejecutada como usuario 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

Itera a través de los SIDs en el hive \\Computer\HKEY_USERS\, intenta acceder a Volatile Environment para cada SID y recupera valores de las claves USERDOMAIN y USERNAME.

Este método requiere que el servicio Remote Registry esté ejecutándose en un host remoto. Si no es así:

  1. se registra el tipo de inicio inicial del servicio Remote Registry
  2. el tipo de inicio cambia a Automático
  3. se inicia el servicio Remote Registry
  4. se enumeran los hives del registro
  5. se detiene el servicio Remote Registry
  6. el tipo de inicio se revierte a su valor inicial registrado

Debido al proceso potencialmente de múltiples pasos para enumerar cada host, este método puede ser más lento en comparación con técnicas alternativas. smb /logons es más rápido

Ejemplo de salida ejecutada como usuario svcadmin

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

/services

El método ServiceController.GetServices recupera una lista de servicios en un host

Cada servicio se consulta para determinar el usuario bajo el cual está configurado para ejecutarse.

Debido a que cada servicio debe consultarse individualmente, este método puede ser más lento en comparación con técnicas alternativas. wmi /services es más rápido

Ejemplo de salida ejecutada como usuario svcadmin

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

WMI

/edr

Inspirado en el script EDR.cna de harleyQu1nn

La clase CIM_DataFile devuelve una lista de controladores de:

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

Los controladores se buscan en una lista de controladores conocidos utilizados por proveedores de EDR.

Ejemplo de salida ejecutada como usuario svcadmin

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

/logons

La clase Win32_LoggedOnUser devuelve una lista de sesiones con inicio de sesión La clase Win32_LogonSession devuelve información detallada para cada sesión

Ejemplo de salida ejecutada como usuario 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

Consulta la clase Win32_UserProfile para recuperar SIDs de perfiles de usuario en un sistema.

El método EnumKey de la clase StdRegProv recupera el hive \\Computer\HKEY_USERS\ e intenta acceder a Volatile Environment para cada SID devuelto para obtener valores de las claves USERDOMAIN y USERNAME.

Ejemplo de salida ejecutada como usuario svcadmin

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

/services

Consulta la clase Win32_Service para recuperar el nombre, usuario y estado de los servicios

Ejemplo de salida ejecutada como usuario svcadmin

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

WinRM

Cada comprobación WMI también se implementa utilizando Recursos WMI y Enumeración WMI a través de WinRM.

Esto evita el uso de espacios de ejecución de PowerShell.

Descargar herramienta
SMBWMIWinRM
/edrrápidorápidorápido
/logonsrápidorápidorápido
/serviceslentorápidorápido
/registrylentorápido-