SharpHound - Reescritura en C# del Ingestor de BloodHound
Obtener SharpHound
La última compilación de SharpHound estará siempre en el repositorio de BloodHound aquí
Instrucciones de Compilación
SharpHound está escrito usando características de C# 7.0. Para compilar fácilmente este proyecto, usa Visual Studio 2017.
Si deseas compilar en versiones anteriores de Visual Studio, puedes instalar el paquete nuget Microsoft.Net.Compilers.
Compilar el proyecto generará un ejecutable y un script de PowerShell que encapsula el ejecutable. Todas las dependencias están integradas en el binario.
Requisitos
Sharphound está diseñado para .Net 3.5. Sharphound debe ejecutarse desde el contexto de un usuario de dominio, ya sea directamente mediante un inicio de sesión o mediante otro método como RUNAS.
Uso
Opciones de Enumeración
- CollectionMethod - El método de recopilación a utilizar. Este parámetro acepta una lista de valores separados por comas. Tiene los siguientes valores posibles (Predeterminado: Default):
- Default - Realiza la recopilación de membresías de grupo, la recopilación de confianzas de dominio, la recopilación de administradores locales y la recopilación de sesiones.
- Group - Realiza la recopilación de membresías de grupo.
- LocalAdmin - Realiza la recopilación de administradores locales.
- RDP - Realiza la recopilación de usuarios de Escritorio Remoto.
- DCOM - Realiza la recopilación de usuarios de COM distribuido.
- GPOLocalGroup - Realiza la recopilación de administradores locales mediante Objetos de Directiva de Grupo.
- Session - Realiza la recopilación de sesiones.
- ComputerOnly - Realiza la recopilación de administradores locales, RDP, DCOM y sesiones.
- LoggedOn - Realiza la recopilación de sesiones privilegiadas (requiere derechos de administrador en los sistemas de destino).
- Trusts - Realiza la enumeración de confianzas de dominio.
- ACL - Realiza la recopilación de ACL.
- Container - Realiza la recopilación de Contenedores.
- DcOnly - Realiza la recopilación usando solo LDAP. Incluye Group, Trusts, ACL, ObjectProps, Container y GPOLocalGroup.
- All - Realiza todos los métodos de recopilación excepto GPOLocalGroup y LoggedOn.
- SearchForest - Busca en todos los dominios del bosque en lugar de solo en el actual.
- Domain - Busca un dominio concreto. Usa tu dominio actual si es null (Predeterminado: null).
- Stealth - Realiza métodos de recopilación sigilosos. Todas las opciones sigilosas son de un solo hilo.
- SkipGCDeconfliction - Omite la desconflicción del Catálogo Global durante la enumeración de sesiones. Esto puede acelerar la enumeración, pero puede dar lugar a posibles imprecisiones en los datos.
- ExcludeDc - Excluye los controladores de dominio de la enumeración (evita las alertas de Microsoft ATA :) ).
- ComputerFile - Especifica un archivo desde el que cargar nombres/IPs de equipos.
- OU - Especifica qué OU enumerar.
Opciones de Conexión
- DomainController - Especifica a qué Controlador de Dominio conectarse (Predeterminado: null).
- LdapPort - Especifica el puerto en el que se encuentra LDAP (Predeterminado: 0).
- SecureLdap - Conéctate a AD usando LDAP seguro en lugar de LDAP normal. Se conectará al puerto 636 de forma predeterminada.
- IgnoreLdapCert - Ignora el certificado SSL de LDAP. Úsalo si hay un certificado autofirmado, por ejemplo.
- LDAPUser - Nombre de usuario para conectarse a LDAP. Requiere también el parámetro LDAPPassword (Predeterminado: null).
- LDAPPass - Contraseña del usuario para conectarse a LDAP. Requiere también el parámetro LDAPUser (Predeterminado: null).
- DisableKerbSigning - Deshabilita el cifrado LDAP. No recomendado.
Opciones de Rendimiento
- Threads - Especifica el número de hilos a utilizar (Predeterminado: 10).
- PingTimeout - Especifica el tiempo de espera para las solicitudes de ping en milisegundos (Predeterminado: 250).
- SkipPing - Indica a Sharphound que omita las solicitudes de ping para comprobar si los sistemas están activos.
- LoopDelay - El número de segundos entre los bucles de sesión (Predeterminado: 300).
- MaxLoopTime - La cantidad de tiempo para continuar el bucle de sesiones. El formato es 0d0h0m0s. Null hará un bucle durante dos horas. (Predeterminado: 2h).
- Throttle - Agrega un retraso después de cada solicitud a un equipo. El valor está en milisegundos (Predeterminado: 0).
- Jitter - Agrega un jitter porcentual al valor de Throttle. (Predeterminado: 0).
Opciones de Salida
- JSONFolder - Carpeta en la que almacenar los archivos JSON (Predeterminado: .).
- JSONPrefix - Prefijo a añadir a tus archivos JSON (Predeterminado: "").
- NoZip - No comprimas los archivos JSON en el archivo zip. Deja los archivos JSON en el disco. (Predeterminado: false).
- EncryptZip - Añade una contraseña generada aleatoriamente al archivo zip.
- ZipFileName - Especifica el nombre del archivo zip.
- RandomFilenames - Aleatoriza los nombres de los archivos de salida.
- PrettyJson - Genera JSON con sangría en varias líneas para mejorar la legibilidad. La contrapartida es un mayor tamaño de archivo.
Opciones de Caché
- CacheFile - Nombre de archivo para la caché de Sharphound. (Predeterminado: .bin).
- NoSaveCache - No guardes el archivo de caché en el disco. Sin esta opción, .bin se escribirá en el disco.
- Invalidate - Invalida el archivo de caché y crea una nueva caché.
Opciones Varias
- StatusInterval - Intervalo para mostrar el progreso durante la enumeración en milisegundos (Predeterminado: 30000).
- Verbose - Habilita la salida detallada.