
PowerShell-Skript, das darauf abzielt, (eventuelle) Persistenzmechanismen aufzudecken, die von einem Bedrohungsakteur nach einem Active Directory-Domänenkompromiss eingesetzt werden.
FarsightAD ist ein PowerShell-Skript, das dazu dient, (eventuelle) Persistenzmechanismen aufzudecken, die von einem Bedrohungsakteur nach einer Kompromittierung einer Active Directory-Domäne eingesetzt werden.
Das Skript erstellt CSV-/JSON-Dateiexporte verschiedener Objekte und ihrer Attribute, angereichert mit Zeitstempeln aus Replikationsmetadaten. Zusätzlich wird bei Ausführung mit Replikationsberechtigungen das Directory Replication Service (DRS)-Protokoll genutzt, um vollständig oder teilweise verborgene Objekte zu erkennen.
Weitere Informationen finden Sie in den Einführungsfolien zum SANS DFIR Summit 2022.
FarsightAD erfordert
PowerShell 7
und das für PowerShell 7 aktualisierte ActiveDirectory-Modul.
Unter Windows 10 / 11 kann das Modul über die Optionale Features als
RSAT: Active Directory Domain Services and Lightweight Directory Services Tools installiert werden. Ein bereits installiertes Modul kann mit folgendem Befehl aktualisiert werden:
Add-WindowsCapability -Online -Name Rsat.ServerManager.Tools~~~~0.0.1.0
Wenn das Modul korrekt aktualisiert wurde, sollte Get-Command Get-ADObject Folgendes zurückgeben:
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-ADObject 1.0.X.X ActiveDirectory
. .\FarsightAD.ps1
Invoke-ADHunting [-Server <DC_IP | DC_HOSTNAME>] [-Credential <PS_CREDENTIAL>] [-ADDriveName <AD_DRIVE_NAME>] [-OutputFolder <OUTPUT_FOLDER>] [-OutputType <CSV | JSON>]
Weitere Informationen zur Verwendung der einzelnen Cmdlets können mit Get-Help -Full <CMDLET> abgerufen werden.

Hinzufügen eines vollständig verborgenen Benutzers

Ausblenden des SID History-Attributs eines Benutzers

Aufdecken der vollständig und teilweise verborgenen Benutzer mit Export-ADHuntingHiddenObjectsWithDRSRepData
Der C#-Code für DRS-Anfragen wurde angepasst von:
MakeMeEnterpriseAdmin
von @vletoux.Mimikatz von @gentilkiwi und
@vletoux.SharpKatz von @b4rtik.Die Funktionen zum Parsen von Key Credentials stammen aus dem
ADComputerKeys PowerShell-Modul.
Die AD CS-bezogene Persistenzerkennung basiert auf Arbeiten von:
Die Funktion zum Parsen von Service Principal Names basiert auf Arbeiten von Adam Bertram.
CC BY 4.0 Lizenz - https://creativecommons.org/licenses/by/4.0/
| Cmdlet | Zusammenfassung |
|---|
Invoke-ADHunting | Führt alle unten genannten AD-Hunting-Cmdlets von FarsightAD aus. |
Export-ADHuntingACLDangerousAccessRights | Exportiert gefährliche ACEs, d.h. ACEs, die eine Übernahme des zugrunde liegenden Objekts ermöglichen, für alle Objekte der Domäne. Kann in größeren Domänen etwas dauern. |
Export-ADHuntingACLDefaultFromSchema | Exportiert die ACL, die im Attribut defaultSecurityDescriptor von Schema-Klassen konfiguriert ist. Nicht standardmäßige (gemäß Microsoft-Dokumentation) ACLs werden identifiziert und potenziell gefährliche ACEs hervorgehoben. |
Export-ADHuntingACLPrivilegedObjects | Exportiert die ACL, die auf privilegierten Objekten in der Domäne konfiguriert ist, und hebt potenziell gefährliche Zugriffsrechte hervor. |
Export-ADHuntingADCSCertificateTemplates | Exportiert Informationen und Zugriffsrechte zu Zertifikatsvorlagen. Folgende bemerkenswerte Parameter werden abgerufen: Veröffentlichungsstatus der Zertifikatsvorlage, Zertifikatsverwendung, ob der Antragsteller aus benutzergelieferten Daten konstruiert wird, und Zugriffskontrolle (Registrierung / Änderung). |
Export-ADHuntingADCSPKSObjects | Exportiert Informationen und Zugriffsrechte zu sensiblen PKS-Objekten (NTAuthCertificates, certificationAuthority und pKIEnrollmentService). |
Export-ADHuntingGPOObjectsAndFilesACL | Exportiert ACL-Zugriffsrechtsinformationen zu GPO-Objekten und -Dateien, wobei hervorgehoben wird, ob GPOs auf privilegierte Benutzer oder Computer angewendet werden. |
Export-ADHuntingGPOSettings | Exportiert Informationen zu verschiedenen durch GPOs konfigurierten Einstellungen, die für Persistenz genutzt werden könnten (Berechtigungen und Anmelderchte, Mitgliedschaft in eingeschränkten Gruppen, geplante und sofortige Aufgaben V1/V2, Maschinen- und Benutzer-Anmelde-/Abmeldeskripte). |
Export-ADHuntingHiddenObjectsWithDRSRepData | Exportiert die Attribute von Objekten, die über Replikation (mit dem Directory Replication Service (DRS)-Protokoll) zugänglich sind, aber nicht durch direkte Abfrage. Zugriffskontrollen werden bei Replikationsvorgängen nicht berücksichtigt, was es ermöglicht, Zugriffskontrollen zu identifizieren, die den Zugriff auf bestimmte Objektattribute blockieren. Es wird nur ein begrenzter Satz sensibler Attribute bewertet. |
Export-ADHuntingKerberosDelegations | Exportiert die Kerberos-Delegierungen, die als gefährlich gelten (uneingeschränkt, eingeschränkt auf einen privilegierten Dienst oder ressourcenbasiert eingeschränkt auf einen privilegierten Dienst). |
Export-ADHuntingPrincipalsAddedViaMachineAccountQuota | Exportiert die Computer, die von nicht privilegierten Principals zur Domäne hinzugefügt wurden (mithilfe des ms-DS-MachineAccountQuota-Mechanismus). |
Export-ADHuntingPrincipalsCertificates | Exportiert geparste Zertifikate von Konten (für Konten mit einem nicht leeren userCertificate-Attribut). Die Zertifikate werden geparst, um eine Reihe von Parametern abzurufen: Gültigkeitszeitstempel des Zertifikats, Zertifikatszweck, Zertifikatsantragsteller und eventuelle SubjectAltName(s), ... |
Export-ADHuntingPrincipalsDontRequirePreAuth | Exportiert die Konten, die keine Kerberos-Vorauthentifizierung erfordern. |
Export-ADHuntingPrincipalsOncePrivileged | Exportiert die Konten, die einst Mitglieder privilegierter Gruppen waren. |
Export-ADHuntingPrincipalsPrimaryGroupID | Exportiert die Konten mit einem nicht standardmäßigen primaryGroupID-Attribut, wobei RIDs hervorgehoben werden, die mit privilegierten Gruppen verknüpft sind. |
Export-ADHuntingPrincipalsPrivilegedAccounts | Exportiert detaillierte Informationen über Mitglieder privilegierter Gruppen. |
Export-ADHuntingPrincipalsPrivilegedGroupsMembership | Exportiert aktuelle und frühere Mitglieder privilegierter Gruppen, abgerufen über Replikationsmetadaten. |
Export-ADHuntingPrincipalsSIDHistory | Exportiert die Konten mit einem nicht leeren SID History-Attribut, mit Auflösung der zugehörigen Domäne und Hervorhebung privilegierter SIDs. |
Export-ADHuntingPrincipalsShadowCredentials | Exportiert geparste Key Credentials-Informationen (von Konten mit einem nicht leeren msDS-KeyCredentialLink-Attribut). |
Export-ADHuntingPrincipalsTechnicalPrivileged | Exportiert die technisch privilegierten Konten (SERVER_TRUST_ACCOUNT und INTERDOMAIN_TRUST_ACCOUNT). |
Export-ADHuntingPrincipalsUPNandAltSecID | Exportiert die Konten, die ein UserPrincipalName- oder AltSecurityIdentities-Attribut definieren, und hebt potenzielle Anomalien hervor. |
Export-ADHuntingTrusts | Exportiert die Vertrauensstellungen aller Domänen der Gesamtstruktur. Eine Reihe von Parametern wird für jede Vertrauensstellung abgerufen: Transitivität, SID-Filterung, TGT-Delegierung. |