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
Powermad — PowerShell MachineAccountQuota- und DNS-Exploit-Tools | Kitploit
Tools/GitHubGitHub/kevin-robertson/powermad
Privilege EscalationAufklärungIdentitätsmanagementLaterale BewegungPenetrationstestsAuthentifizierungRed Teaming
GitHubkevin-robertson/powermad

Powermad

PowerShell MachineAccountQuota- und DNS-Exploit-Tools

Repository anzeigen
1.5k188vor 3 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

Powermad_logo

PowerShell MachineAccountQuota und DNS-Exploit-Tools

Wiki

  • https://github.com/Kevin-Robertson/Powermad/wiki

Blog-Beitrag

  • Jenseits von LLMNR/NBNS-Spoofing – Ausnutzen von Active Directory-integriertem DNS

Funktionen

  • MachineAccountQuota-Funktionen
  • DNS-Funktionen
  • Dynamic-Updates-Funktionen
  • ADIDNS-Funktionen
  • Verschiedene Funktionen

MachineAccountQuota-Funktionen

Die Standardeinstellung des Active Directory-Attributs ms-DS-MachineAccountQuota erlaubt allen Domänenbenutzern, bis zu 10 Computerkonten zu einer Domäne hinzuzufügen. Powermad enthält eine Reihe von Funktionen zur Ausnutzung von ms-DS-MachineAccountQuota, ohne ein tatsächliches System an AD anzubinden.

Get-MachineAccountAttribute

Diese Funktion kann Werte zurückgeben, die in einem Computerkontoattribut gespeichert sind.

Beispiel:
  • Den Wert von 'description' eines Computerkontos mit Namen 'test' abrufen.
    Get-MachineAccountAttribute -MachineAccount test -Attribute discription

Get-MachineAccountCreator

Diese Funktion nutzt die ms-DS-CreatorSID-Eigenschaft von Computerkonten, um eine Liste von Benutzernamen oder SIDs und das zugehörige Computerkonto zurückzugeben. Die ms-DS-CreatorSID-Eigenschaft wird nur dann befüllt, wenn ein Computerkonto von einem unprivilegierten Benutzer erstellt wird.

Beispiel:
  • Alle befüllten ms-DS-CreatorSID-Attribute abrufen.
    Get-MachineAccountCreator

Disable-MachineAccount

Diese Funktion kann ein Computerkonto deaktivieren, das über New-MachineAccount hinzugefügt wurde. Diese Funktion sollte mit demselben Benutzer verwendet werden, der das Computerkonto erstellt hat.

Beispiel:
  • Deaktivieren eines Computerkontos mit Namen test.
    Disable-MachineAccount -MachineAccount test

Enable-MachineAccount

Diese Funktion kann ein Computerkonto aktivieren, das über Disable-MachineAccount deaktiviert wurde. Diese Funktion sollte mit demselben Benutzer verwendet werden, der das Computerkonto erstellt hat.

Beispiel:
  • Aktivieren eines Computerkontos mit Namen test.
    Enable-MachineAccount -MachineAccount test

New-MachineAccount

Diese Funktion kann ein neues Computerkonto direkt über eine LDAP-Hinzufügeanfrage an einen Domänencontroller hinzufügen, ohne den Anbindungsstatus des Hostsystems an Active Directory zu beeinflussen.

Die LDAP-Hinzufügeanfrage ist nach der Anfrage modelliert, die beim Beitritt eines Systems zu einer Domäne verwendet wird. Die folgenden (größtenteils vom DC validierten) Attribute werden gesetzt:

  • objectClass = Computer
  • SamAccountName = Computerkontoname mit nachgestelltem $
  • userAccountControl = 4096
  • DnsHostName = FQDN
  • ServicePrincipalName = 2 HOST- und 2 RestrictedKrbHost-SPNs unter Verwendung des FQDN und des Kontonamens
  • unicodePwd = das angegebene Passwort

Ein neues Computerkonto kann für Aufgaben wie die Nutzung von Berechtigungen der Gruppe 'Domänencomputer' oder als zusätzliches Konto für die Domänenaufzählung, DNS-Exploits usw. verwendet werden. Standardmäßig haben Computerkonten keine Berechtigung zur lokalen Anmeldung. Sie können entweder Tools/Clients verwenden, die Netzwerkanmeldeinformationen direkt akzeptieren, oder 'runas /netonly' oder @harmj0y's Invoke-UserImpersonation/Invoke-RevertToSelf (enthalten in PowerView) verwenden.

  • https://github.com/PowerShellMafia/PowerSploit/tree/dev/Recon

Mit Standardbenutzern erstellte Computerkonten haben die mS-DS-CreatorSID mit der SID des Standardbenutzers befüllt.

Beachten Sie, dass ms-DS-MachineAccountQuota authentifizierten Benutzern nicht die Möglichkeit bietet, hinzugefügte Computerkonten aus AD zu löschen. Es sind erhöhte Rechte erforderlich, um das Konto zu entfernen, wenn Sie vermeiden möchten, diese Aufgabe an Ihren Kunden weiterzugeben.

Beispiele:
  • Ein neues Computerkonto hinzufügen
    New-MachineAccount -MachineAccount test

  • Das hinzugefügte Konto mit runas /netonly verwenden
    runas /netonly /user:domain\test$ powershell

Remove-MachineAccount

Diese Funktion entfernt ein Computerkonto mit einem privilegierten Konto.

Beispiel:
  • Entfernen eines Computerkontos mit Namen test mit Domänenadministrator-Anmeldeinformationen
    Remove-MachineAccount -MachineAccount test -Credential $domainadmin

Set-MachineAccountAttribute

Diese Funktion kann einige Attribute für ein Konto befüllen, das über New-MachineAccount hinzugefügt wurde, sofern ein Benutzer Schreibzugriff hat. Diese Funktion sollte mit demselben Benutzer verwendet werden, der das Computerkonto erstellt hat.

Hier ist eine Liste einiger der üblichen Attribute, für die Schreibzugriff aktiviert ist:

  • AccountDisabled
  • description
  • displayName
  • DnsHostName
  • ServicePrincipalName
  • userParameters
  • userAccountControl
  • msDS-AdditionalDnsHostName
  • msDS-AllowedToActOnBehalfOfOtherIdentity
  • SamAccountName
Beispiele:
  • Das nachgestellte '$' aus dem SamAccountName-Attribut entfernen
    Set-MachineAccountAttribute -MachineName test -Attribute SamAccountName -Value test

  • Das modifizierte Konto mit runas /netonly verwenden
    runas /netonly /user:domain\test powershell

Invoke-AgentSmith

Diese Funktion nutzt New-MachineAccount, um rekursiv so viele Computerkonten wie möglich von einem einzigen unprivilegierten Konto über MachineAccountQuota zu erstellen. Einzelheiten finden Sie im folgenden Blogbeitrag:

  • https://blog.netspi.com/machineaccountquota-transitive-quota

DNS-Funktionen

Standardmäßig haben authentifizierte Benutzer die Berechtigung 'Alle untergeordneten Objekte erstellen' auf der Active Directory-integrierten DNS-Zone (ADIDNS). Die meisten Einträge, die derzeit nicht in einer AD-Zone vorhanden sind, können hinzugefügt/gelöscht werden.

Dynamic-Updates-Funktionen

Invoke-DNSUpdate

Diese Funktion kann zum Hinzufügen/Löschen von dynamischen DNS-Einträgen verwendet werden, wenn die Standardeinstellung für aktivierte sichere dynamische Updates auf einem Domänencontroller konfiguriert ist. A-, AAAA-, CNAME-, MX-, PTR-, SRV- und TXT-Einträge werden derzeit unterstützt. Invoke-DNSUpdate ist nach dem nsupdate-Tool von BIND modelliert, wenn die Optionen '-g' oder 'gsstsig' verwendet werden.

Beispiele:
  • Einen A-Eintrag hinzufügen
    Invoke-DNSUpdate -DNSType A -DNSName www -DNSData 192.168.100.125

  • Einen A-Eintrag löschen
    Invoke-DNSUpdate -DNSType A -DNSName www.test.local

  • Einen SRV-Eintrag hinzufügen
    Invoke-DNSUpdate -DNSType SRV -DNSName _autodiscover._tcp.test.local -DNSData system.test.local -DNSPriority 100 -DNSWeight 80 -DNSPort 443

ADIDNS-Funktionen

Disable-ADIDNSNode

Diese Funktion kann einen ADIDNS-Knoten als Tombstone markieren.

Beispiel:

*Tombstone einen Wildcard-Eintrag.
`Disable-ADIDNSNode -Node *

Enable-ADIDNSNode

Diese Funktion kann einen als Tombstone markierten Knoten wieder in einen gültigen Eintrag umwandeln.

Beispiel:
  • Aktivieren eines Wildcard-Eintrags.
    Enable-ADIDNSNode -Node *

Get-ADIDNSNodeAttribute

Diese Funktion kann Werte zurückgeben, die in einem DNS-Knotenattribut gespeichert sind.

Beispiel:
  • Den Wert des dnsRecord-Attributs eines Knotens mit Namen test abrufen.
    Get-ADIDNSNodeAttribute -Node test -Attribute dnsRecord

Get-ADIDNSNodeOwner

Diese Funktion kann den Besitzer eines ADIDNS-Knotens zurückgeben.

Beispiel:
  • Den Besitzer eines Knotens mit Namen test abrufen.
    Get-ADIDNSNodeOwner -Node test

Get-ADIDNSPermission

Diese Funktion ruft eine DACL eines ADIDNS-Knotens oder einer ADIDNS-Zone ab.

Beispiele:
  • Die DACL für die standardmäßige Active Directory-integrierte Zone von einem domänengebundenen System abrufen.
    Get-ADIDNSPermission

  • Die DACL für einen DNS-Knoten mit Namen test von einem domänengebundenen System abrufen.
    Get-ADIDNSPermission -Node test

Get-ADIDNSZone

Diese Funktion kann ADIDNS-Zonen zurückgeben.

Beispiele:
  • Alle ADIDNS-Zonen abrufen.
    Get-ADIDNSZone

Grant-ADIDNSPermission

Diese Funktion fügt einer DNS-Knoten- oder Zonen-DACL eine ACE hinzu.

Beispiel:
  • Vollzugriff auf einen Wildcard-Eintrag für 'Authentifizierte Benutzer' hinzufügen.
  • Vollzugriff auf einen Wildcard-Eintrag für 'Authentifizierte Benutzer' hinzufügen.
    Grant-ADIDNSPermission -Node * -Principal "authenticated users"

New-ADIDNSNode

Diese Funktion fügt einen DNS-Knoten zu einer Active Directory-integrierten DNS-Zone (ADIDNS) über eine verschlüsselte LDAP-Hinzufügeanfrage hinzu.

Beispiel:
  • Einen Wildcard-Eintrag zu einer ADIDNS-Zone hinzufügen und den Knoten als Tombstone markieren.
    New-ADIDNSNode -Node * -Tombstone

New-DNSRecordArray

Diese Funktion erstellt ein gültiges Byte-Array für das dnsRecord-Attribut.

Beispiel:
  • Ein dnsRecord-Array für einen A-Eintrag erstellen, der auf 192.168.0.1 zeigt.
    New-DNSRecordArray -Data 192.168.0.1

New-SOASerialNumberArray

Diese Funktion ruft die aktuelle SOA-Seriennummer für eine DNS-Zone ab und erhöht sie um den festgelegten Betrag.

Beispiel:
  • Ein Byte-Array aus der aktuellen, um eins erhöhten SOA-Seriennummer generieren.
    New-SOASerialNumberArray

Rename-ADIDNSNode

Diese Funktion kann einen DNS-Knoten umbenennen.

Beispiel:
  • Einen DNS-Knoten mit Namen test in test2 umbenennen.
    Rename-ADIDNSNode -Node test -NodeNew test2

Remove-ADIDNSNode

Diese Funktion kann einen DNS-Knoten entfernen.

Beispiel:
  • Einen Wildcard-Knoten entfernen.
    Remove-ADIDNSNode -Node *

Revoke-ADIDNSPermission

Diese Funktion entfernt eine ACE aus einer DNS-Knoten- oder Zonen-DACL.

Beispiel:
  • Die GenericAll-ACE, die mit dem Konto user1 verknüpft ist, entfernen.
    Revoke-ADIDNSPermission -Node * -Principal user1 -Access GenericAll

Set-ADIDNSNodeAttribute

Diese Funktion kann Werte in einem DNS-Knotenattribut anhängen, befüllen oder überschreiben.

Beispiel:
  • Das beschreibbare description-Attribut eines Knotens mit Namen test setzen.
    Set-ADIDNSNodeAttribute -Node test -Attribute description -Value "do not delete"

Set-ADIDNSNodeOwner

Diese Funktion kann den Besitzer eines DNS-Knotens setzen. Beachten Sie, dass ein Token mit SeRestorePrivilege erforderlich ist.

Beispiel:
  • Den Besitzer eines Knotens mit Namen test auf user1 setzen.
    Set-ADIDNSNodeOwner -Node test -Principal user1

Verschiedene Funktionen

Get-KerberosAESKey

Diese Funktion kann Kerberos-AES-256- und -128-Schlüssel aus einem bekannten Benutzernamen und Passwort generieren. Dies kann verwendet werden, um Pass-the-Hash in Invoke-DNSUpdate zu testen.

Beispiel:
  • Schlüssel für einen gültigen AD-Benutzer mit Namen [email protected] generieren.
    Get-KerberosAESKey -Salt TEST.LOCALuser
Tool herunterladen