AD Dynamic Objects (dynamicObject) Anti-Forensics
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Funktionsweise & Erkennungsgrundlagen
- Jedes Objekt, das mit der Hilfsklasse
dynamicObjecterstellt wird, erhältentryTTL(Sekunden-Countdown) undmsDS-Entry-Time-To-Die(absolute Ablaufzeit). WennentryTTL0 erreicht, löscht der Garbage Collector das Objekt ohne tombstone/recycle-bin, wodurch Ersteller/Time‑Stamps entfernt werden und eine Wiederherstellung blockiert wird. - TTL lässt sich durch Aktualisierung von
entryTTLerneuern; Mindest- und Standardwerte werden in Configuration\Services\NTDS Settings →msDS-Other-Settings→DynamicObjectMinTTL/DynamicObjectDefaultTTLdurchgesetzt (unterstützt 1s–1y, Standardwert häufig 86,400s/24h). Dynamic objects werden in Configuration/Schema-Partitionen nicht unterstützt. - Die Löschung kann auf DCs mit kurzer Laufzeit (<24h) ein paar Minuten verzögert sein, wodurch ein enges Zeitfenster zum Abfragen/Sichern von Attributen entsteht. Erkennen lässt sich das durch Alerts auf neue Objekte mit
entryTTL/msDS-Entry-Time-To-Dieund Korrelation mit Waisen-SIDs/gebrochenen Links.
MAQ-Umgehung mit selbstlöschenden Computern
- Standardmäßig erlaubt
ms-DS-MachineAccountQuota= 10, dass jeder authentifizierte Benutzer Computer erstellt. Fügt man bei der ErstellungdynamicObjecthinzu, löscht sich der Computer selbst und macht den Quota-Slot frei, während Spuren entfernt werden. - Powermad-Tweak innerhalb von
New-MachineAccount(objectClass-Liste):
$request.Attributes.Add((New-Object "System.DirectoryServices.Protocols.DirectoryAttribute" -ArgumentList "objectClass", "dynamicObject", "Computer")) > $null
- Kurze TTLs (z. B. 60s) schlagen bei Standardbenutzern oft fehl; AD fällt auf
DynamicObjectDefaultTTLzurück (Beispiel: 86.400s). ADUC kannentryTTLverbergen, aber LDP/LDAP-Abfragen zeigen es an.
Versteckte Primary-Group-Mitgliedschaft
- Erstelle eine dynamische Sicherheitsgruppe und setze dann die
primaryGroupIDeines Nutzers auf die RID dieser Gruppe, um effektive Mitgliedschaft zu erlangen, die nicht inmemberOferscheint, aber in Kerberos/Access-Tokens berücksichtigt wird. - Beim Ablauf der TTL wird die Gruppe gelöscht, trotz Primary-Group-Löschschutz, sodass der Benutzer eine korrupte
primaryGroupIDbesitzt, die auf eine nicht-existenten RID zeigt und keine Tombstone-Einträge zur Untersuchung mehr vorhanden sind.
AdminSDHolder Orphan-SID-Verschmutzung
- Füge ACEs für einen kurzlebigen dynamischen Nutzer/Gruppe zu
CN=AdminSDHolder,CN=System,...hinzu. Nach Ablauf der TTL wird die SID in der Vorlagen-ACL nicht mehr aufgelöst („Unknown SID“), und SDProp (~60 min) propagiert diese Waisen-SID über alle geschützten Tier-0-Objekte. - Die Forensik verliert die Attribution, weil der Principal verschwunden ist (kein gelöschtes Objekt-DN). Überwache auf neue dynamic principals + plötzliche Waisen-SIDs in AdminSDHolder/privilegierten ACLs.
Dynamische GPO-Ausführung mit sich selbst zerstörenden Beweisen
- Erstelle ein dynamisches
groupPolicyContainer-Objekt mit einem bösartigengPCFileSysPath(z. B. SMB-Share à la GPODDITY) und verlinke es viagPLinkmit einer Ziel-OU. - Clients verarbeiten die Richtlinie und laden Inhalte vom angreifenden SMB. Wenn die TTL abläuft, verschwindet das GPO-Objekt (und
gPCFileSysPath); nur eine gebrochenegPLink-GUID bleibt übrig, wodurch LDAP-Spuren der ausgeführten Payload entfernt werden.
Temporäre AD-integrierte DNS-Umleitung
- AD-DNS-Einträge sind
dnsNode-Objekte in DomainDnsZones/ForestDnsZones. Werden sie als dynamic objects angelegt, ermöglichen sie temporäre Host-Umleitungen (Credential-Capture/MITM). Clients cachen die bösartige A/AAAA-Antwort; der Eintrag löscht sich später selbst, sodass die Zone sauber aussieht (DNS Manager benötigt eventuell Zone-Reload zur Ansichtsaktualisierung). - Erkennung: Alerting auf jedes DNS-Record mit
dynamicObject/entryTTLvia Replikation/Event-Logs; transiente Records tauchen selten in Standard-DNS-Logs auf.
Hybride Entra ID Delta-Sync-Lücke (Hinweis)
- Entra Connect Delta-Sync verlässt sich auf tombstones, um Löschungen zu erkennen. Ein dynamic on-prem Benutzer kann zu Entra ID synchronisiert werden, verfallen und ohne Tombstone gelöscht werden — Delta-Sync entfernt das Cloud-Konto nicht, wodurch ein verwaister aktiver Entra-Benutzer verbleibt, bis ein manueller Full Sync erzwungen wird.
Referenzen
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.


