
Ricognizione e sfruttamento di Active Directory per Red Teams tramite Active Directory Web Services (ADWS).
Riconoscimento e sfruttamento di Active Directory per Red Team tramite i Servizi Web di Active Directory (ADWS).
SharpADWS è uno strumento di riconoscimento e sfruttamento di Active Directory per Red Team che raccoglie e modifica i dati di Active Directory tramite il protocollo Active Directory Web Services (ADWS).
Tipicamente, l'enumerazione o la manipolazione di Active Directory avviene tramite il protocollo LDAP. SharpADWS ha la capacità di estrarre o modificare i dati di Active Directory senza comunicare direttamente con il server LDAP. Con ADWS, le query LDAP vengono incapsulate in una serie di messaggi SOAP e poi inviate al server ADWS utilizzando un canale crittografato NET TCP Binding. Il server ADWS quindi decomprime la query LDAP localmente e la inoltra al server LDAP in esecuzione sullo stesso controller di dominio.
I Servizi Web di Active Directory (ADWS) vengono attivati automaticamente quando vengono installati i Servizi di Dominio di Active Directory (ADDS), rendendo SharpADWS universale in tutti gli ambienti di dominio.
Uno dei principali vantaggi dell'uso di ADWS per il post-sfruttamento LDAP è che è relativamente sconosciuto e, poiché il traffico LDAP non viene inviato sulla rete, non viene facilmente rilevato dai comuni strumenti di monitoraggio. ADWS esegue un servizio completamente diverso da LDAP, è disponibile sulla porta TCP 9389 e utilizza il protocollo SOAP come interfaccia.
Durante la ricerca su ADWS, abbiamo notato che, essendo un servizio web SOAP, l'esecuzione effettiva della query LDAP avviene localmente sul controller di dominio. Ciò offre una serie di effetti collaterali interessanti che si rivelano vantaggiosi. Ad esempio, quando si analizzano le query LDAP su un controller di dominio, si potrebbe notare che le query provengono da log di 127.0.0.1, che in molti casi verranno ignorati.
Un ulteriore vantaggio è che l'attività non appare in DeviceEvents sotto il tipo di azione LDAPSearch, il che significa che sono disponibili pochissimi dati di telemetria.
SharpADWS implementa i protocolli MS-ADDM, MS-WSTIM e MS-WSDS; puoi utilizzare il codice sorgente di questo progetto per implementare facilmente le seguenti operazioni sui Servizi Web di Active Directory:
L'argomento della riga di comando -h può essere utilizzato per visualizzare le seguenti informazioni sull'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