
Reconocimiento y explotación de Active Directory para Red Teams a través de los Servicios Web de Active Directory (ADWS).
Reconocimiento y explotación de Active Directory para equipos rojos a través de los Servicios Web de Active Directory (ADWS).
SharpADWS es una herramienta de reconocimiento y explotación de Active Directory para equipos rojos que recopila y modifica datos de Active Directory mediante el protocolo Active Directory Web Services (ADWS).
Normalmente, la enumeración o manipulación de Active Directory se realiza a través del protocolo LDAP. SharpADWS tiene la capacidad de extraer o modificar datos de Active Directory sin comunicarse directamente con el servidor LDAP. Bajo ADWS, las consultas LDAP se encapsulan en una serie de mensajes SOAP y luego se envían al servidor ADWS utilizando un canal cifrado de enlace NET TCP. El servidor ADWS desempaca la consulta LDAP localmente y la reenvía al servidor LDAP que se ejecuta en el mismo controlador de dominio.
Active Directory Web Services (ADWS) se activa automáticamente cuando se instala Active Directory Domain Services (ADDS), lo que hace que SharpADWS sea universal en todos los entornos de dominio.
Uno de los principales beneficios de usar ADWS para la post-explotación de LDAP es que es relativamente desconocido, y dado que el tráfico LDAP no se envía a través de la red, es difícilmente detectado por las herramientas de monitoreo comunes. ADWS ejecuta un servicio completamente diferente al de LDAP, está disponible en el puerto TCP 9389 y utiliza el protocolo SOAP como interfaz.
Durante la investigación de ADWS, notamos que, al ser un servicio web SOAP, la ejecución real de la consulta LDAP se realiza localmente en el controlador de dominio. Esto proporciona una serie de efectos secundarios interesantes que resultan beneficiosos. Por ejemplo, al analizar las consultas LDAP en un controlador de dominio, es posible que observes que las consultas se originan desde los registros de 127.0.0.1, que en muchos casos serán ignorados.
Un beneficio secundario de esto es que la actividad no aparece en DeviceEvents bajo el tipo de acción LDAPSearch, lo que significa que hay muy poca telemetría disponible.
SharpADWS implementa los protocolos MS-ADDM, MS-WSTIM y MS-WSDS; puedes usar el código fuente de este proyecto para implementar fácilmente las siguientes operaciones en Active Directory Web Services:
El argumento de línea de comandos -h se puede usar para mostrar la siguiente información de uso:```cmd
C:\Users\Marcus>SharpADWS.exe -h
SharpADWS 1.0.0-beta - Copyright (c) 2024 WHOAMI (whoamianony.top)
-h Display this help screen
Connection options: -d Specify domain for enumeration -u Username to use for ADWS Connection -p Password to use for ADWS Connection
Supported methods: Cache Dump all objectSids to cache file for Acl methods Acl Enumerate and analyze DACLs for specified objects, specifically Users, Computers, Groups, Domains, DomainControllers and GPOs DCSync Enumerate all DCSync-capable accounts and can set DCSync backdoors DontReqPreAuth Enumerates all accounts that do not require kerberos preauthentication, and can enable this option for accounts Kerberoastable Enumerates all Kerberoastable accounts, and can write SPNs for accounts AddComputer Add a machine account within the scope of ms-DS-MachineAccountQuota for RBCD attack RBCD Read, write and remove msDS-AllowedToActOnBehalfOfOtherIdentity attributes for Resource-Based Constrained Delegation attack Certify Enumerate all ADCS data like Certify.exe, and can write template attributes Whisker List, add and remove msDS-KeyCredentialLink attribute like Whisker.exe for ShadowCredentials attack FindDelegation Enumerate all delegation relationships for the target domain
Acl options: -dn RFC 2253 DN to base search from -scope Set your Scope, support Base (Default), Onelevel, Subtree -trustee The sAMAccountName of a security principal to check for its effective permissions -right Filter DACL for a specific AD rights -rid Specify a rid value and filter out DACL that security principal's rid is greater than it -user Enumerate DACL for all user objects -computer Enumerate DACL for all computer objects -group Enumerate DACL for all group objects -domain Enumerate DACL for all domain objects -domaincontroller Enumerate DACL for all domain controller objects -gpo Enumerate DACL for all gpo objects
DCSync options: -action [{list, write}] Action to operate on DCSync method list List all accounts with DCSync permissions write Escalate accounts with DCSync permissions -target Specify the sAMAccountName of the account
DontReqPreAuth options: -action [{list, write}] Action to operate on DontReqPreAuth method list List all accounts that do not require kerberos preauthentication write Enable do not require kerberos preauthentication for an account -target Specify the sAMAccountName of the account
Kerberoastable options: -action [{list, write}] Action to operate on Kerberoastable method list List all kerberoastable accounts write Write SPNs for an account to kerberoast -target Specify the sAMAccountName of the account
AddComputer options: -computer-name Name of computer to add, without '$' suffix -computer-pass Password to set for the computer