Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Powermad — Strumenti di exploit PowerShell per MachineAccountQuota e DNS | Kitploit
Strumenti/GitHubGitHub/kevin-robertson/powermad
Escalation di PrivilegiRicognizioneGestione IdentitàMovimento LateralePenetration TestingAutenticazioneRed Teaming
GitHubkevin-robertson/powermad

Powermad

Strumenti di exploit PowerShell per MachineAccountQuota e DNS

Vedi Repository
1.5k1883 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Powermad_logo

PowerShell MachineAccountQuota e strumenti di exploit DNS

Wiki

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

Post del blog

  • Oltre lo spoofing LLMNR/NBNS - Sfruttare il DNS integrato in Active Directory

Funzioni

  • Funzioni di MachineAccountQuota
  • Funzioni DNS
  • Funzioni per gli aggiornamenti dinamici
  • Funzioni ADIDNS
  • Funzioni varie

Funzioni di MachineAccountQuota

L'impostazione predefinita dell'attributo ms-DS-MachineAccountQuota di Active Directory consente a tutti gli utenti del dominio di aggiungere fino a 10 account macchina a un dominio. Powermad include un set di funzioni per sfruttare ms-DS-MachineAccountQuota senza collegare un sistema reale ad AD.

Get-MachineAccountAttribute

Questa funzione può restituire i valori popolati in un attributo di un account macchina.

Esempio:
  • Ottieni il valore di 'description' da un account macchina chiamato 'test'.
    Get-MachineAccountAttribute -MachineAccount test -Attribute discription

Get-MachineAccountCreator

Questa funzione sfrutta la proprietà ms-DS-CreatorSID sugli account macchina per restituire un elenco di nomi utente o SID e l'account macchina associato. La proprietà ms-DS-CreatorSID viene popolata solo quando un account macchina viene creato da un utente non privilegiato.

Esempio:
  • Ottieni un elenco di tutti gli attributi ms-DS-CreatorSID popolati.
    Get-MachineAccountCreator

Disable-MachineAccount

Questa funzione può disabilitare un account macchina aggiunto tramite New-MachineAccount. Questa funzione dovrebbe essere utilizzata con lo stesso utente che ha creato l'account macchina.

Esempio:
  • Disabilita un account macchina chiamato test.
    Disable-MachineAccount -MachineAccount test

Enable-MachineAccount

Questa funzione può abilitare un account macchina disabilitato tramite Disable-MachineAccount. Questa funzione dovrebbe essere utilizzata con lo stesso utente che ha creato l'account macchina.

Esempio:
  • Abilita un account macchina chiamato test.
    Enable-MachineAccount -MachineAccount test

New-MachineAccount

Questa funzione può aggiungere un nuovo account macchina direttamente tramite una richiesta di aggiunta LDAP a un controller di dominio, senza influenzare lo stato di connessione del sistema host ad Active Directory.

La richiesta di aggiunta LDAP è modellata sulla richiesta di aggiunta utilizzata quando si unisce un sistema a un dominio. Vengono impostati i seguenti attributi (per lo più convalidati dal DC):

  • objectClass = Computer
  • SamAccountName = Nome dell'account macchina con $ finale
  • userAccountControl = 4096
  • DnsHostName = FQDN
  • ServicePrincipalName = 2 SPN HOST e 2 SPN RestrictedKrbHost utilizzando sia il FQDN che il nome dell'account
  • unicodePwd = la password specificata

Un nuovo account macchina può essere utilizzato per attività come sfruttare i privilegi concessi al gruppo 'Domain Computers' o come account aggiuntivo per l'enumerazione del dominio, exploit DNS, ecc. Per impostazione predefinita, gli account macchina non hanno il permesso di accesso locale. È possibile utilizzare strumenti/client che accettano direttamente credenziali di rete o tramite l'uso di 'runas /netonly' o Invoke-UserImpersonation/Invoke-RevertToSelf di @harmj0y inclusi in PowerView.

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

Gli account macchina creati con utenti standard avranno mS-DS-CreatorSID popolato con il SID dell'utente standard.

Si noti che ms-DS-MachineAccountQuota non fornisce la possibilità agli utenti autenticati di eliminare gli account macchina aggiunti da AD. Sarà necessario acquisire privilegi elevati per rimuovere l'account se si desidera evitare di delegare l'attività al proprio client.

Esempi:
  • Aggiungi un nuovo account macchina
    New-MachineAccount -MachineAccount test

  • Utilizza l'account aggiunto con runas /netonly
    runas /netonly /user:domain\test$ powershell

Remove-MachineAccount

Questa funzione rimuove un account macchina con un account privilegiato.

Esempio:
  • Rimuovi un account macchina chiamato test con credenziali di amministratore di dominio
    Remove-MachineAccount -MachineAccount test -Credential $domainadmin

Set-MachineAccountAttribute

Questa funzione può popolare alcuni attributi per un account aggiunto tramite New-MachineAccount, se un utente ha accesso in scrittura. Questa funzione dovrebbe essere utilizzata con lo stesso utente che ha creato l'account macchina.

Ecco un elenco di alcuni dei soliti attributi con accesso in scrittura abilitato:

  • AccountDisabled
  • description
  • displayName
  • DnsHostName
  • ServicePrincipalName
  • userParameters
  • userAccountControl
  • msDS-AdditionalDnsHostName
  • msDS-AllowedToActOnBehalfOfOtherIdentity
  • SamAccountName
Esempi:
  • Rimuovi il '$' finale dall'attributo SamAccountName
    Set-MachineAccountAttribute -MachineName test -Attribute SamAccountName -Value test

  • Utilizza l'account modificato con runas /netonly
    runas /netonly /user:domain\test powershell

Invoke-AgentSmith

Questa funzione sfrutta New-MachineAccount per creare ricorsivamente quanti più account macchina possibile da un singolo account non privilegiato tramite MachineAccountQuota. Vedi il seguente post del blog per i dettagli:

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

Funzioni DNS

Per impostazione predefinita, gli utenti autenticati hanno il permesso 'Crea tutti gli oggetti figlio' sulla zona DNS integrata in Active Directory (ADIDNS). La maggior parte dei record che non esistono attualmente in una zona AD possono essere aggiunti/eliminati.

Funzioni per gli aggiornamenti dinamici

Invoke-DNSUpdate

Questa funzione può essere utilizzata per aggiungere/eliminare record DNS dinamici se l'impostazione predefinita di aggiornamenti dinamici sicuri abilitati è configurata su un controller di dominio. I record A, AAAA, CNAME, MX, PTR, SRV e TXT sono attualmente supportati. Invoke-DNSUpdate è modellato sullo strumento nsupdate di BIND quando si utilizzano le opzioni '-g' o 'gsstsig'.

Esempi:
  • Aggiungi un record A
    Invoke-DNSUpdate -DNSType A -DNSName www -DNSData 192.168.100.125

  • Elimina un record A
    Invoke-DNSUpdate -DNSType A -DNSName www.test.local

  • Aggiungi un record SRV
    Invoke-DNSUpdate -DNSType SRV -DNSName _autodiscover._tcp.test.local -DNSData system.test.local -DNSPriority 100 -DNSWeight 80 -DNSPort 443

Funzioni ADIDNS

Disable-ADIDNSNode

Questa funzione può contrassegnare come tombstone un nodo ADIDNS.

Esempio:
  • Contrassegna come tombstone un record wildcard.
    `Disable-ADIDNSNode -Node *

Enable-ADIDNSNode

Questa funzione può trasformare un nodo contrassegnato come tombstone in un record valido.

Esempio:
  • Abilita un record wildcard.
    Enable-ADIDNSNode -Node *

Get-ADIDNSNodeAttribute

Questa funzione può restituire i valori popolati in un attributo di un nodo DNS.

Esempio:
  • Ottieni il valore dell'attributo dnsRecord popolato di un nodo chiamato test.
    Get-ADIDNSNodeAttribute -Node test -Attribute dnsRecord

Get-ADIDNSNodeOwner

Questa funzione può restituire il proprietario di un nodo ADIDNS.

Esempio:
  • Ottieni il proprietario di un nodo chiamato test. Get-ADIDNSNodeOwner -Node test

Get-ADIDNSPermission

Questa funzione ottiene la DACL di un nodo o di una zona ADIDNS.

Esempi:
  • Ottieni la DACL per la zona predefinita integrata in Active Directory da un sistema collegato al dominio.
    Get-ADIDNSPermission

  • Ottieni la DACL per un nodo DNS chiamato test da un sistema collegato al dominio.
    Get-ADIDNSPermission -Node test

Get-ADIDNSZone

Questa funzione può restituire le zone ADIDNS.

Esempi:
  • Ottieni tutte le zone ADIDNS.
    Get-ADIDNSZone

Grant-ADIDNSPermission

Questa funzione aggiunge un ACE alla DACL di un nodo o di una zona DNS.

Esempio:
  • Aggiungi accesso completo a un record wildcard per "Utenti autenticati".
    Grant-ADIDNSPermission -Node * -Principal "authenticated users"

New-ADIDNSNode

Questa funzione aggiunge un nodo DNS a una zona DNS integrata in Active Directory (ADIDNS) tramite una richiesta di aggiunta LDAP crittografata.

Esempio:
  • Aggiungi un record wildcard a una zona ADIDNS e contrassegna il nodo come tombstone.
    New-ADIDNSNode -Node * -Tombstone

New-DNSRecordArray

Questa funzione crea un array di byte valido per l'attributo dnsRecord.

Esempio:
  • Crea un array dnsRecord per un record A che punta a 192.168.0.1.
    New-DNSRecordArray -Data 192.168.0.1

New-SOASerialNumberArray

Questa funzione ottiene il numero di serie SOA corrente per una zona DNS e lo incrementa dell'importo impostato.

Esempio:
  • Genera un array di byte dal numero di serie SOA corrente incrementato di uno.
    New-SOASerialNumberArray

Rename-ADIDNSNode

Questa funzione può rinominare un nodo DNS.

Esempio:
  • Rinomina un nodo DNS chiamato test in test2.
    Rename-ADIDNSNode -Node test -NodeNew test2

Remove-ADIDNSNode

Questa funzione può rimuovere un nodo DNS.

Esempio:
  • Rimuove un nodo wildcard.
    Remove-ADIDNSNode -Node *

Revoke-ADIDNSPermission

Questa funzione rimuove un ACE dalla DACL di un nodo o di una zona DNS.

Esempio:
  • Rimuove l'ACE GenericAll associato all'account user1.
    Revoke-ADIDNSPermission -Node * -Principal user1 -Access GenericAll

Set-ADIDNSNodeAttribute

Questa funzione può aggiungere, popolare o sovrascrivere valori in un attributo di un nodo DNS.

Esempio:
  • Imposta l'attributo description scrivibile su un nodo chiamato test.
    Set-ADIDNSNodeAttribute -Node test -Attribute description -Value "do not delete"

Set-ADIDNSNodeOwner

Questa funzione può impostare il proprietario di un nodo DNS. Si noti che è richiesto un token con SeRestorePrivilege.

Esempio:
  • Imposta il proprietario di un nodo chiamato test su user1.
    Set-ADIDNSNodeOwner -Node test -Principal user1

Funzioni varie

Get-KerberosAESKey

Questa funzione può generare chiavi Kerberos AES 256 e 128 a partire da un nome utente e una password noti. Può essere utilizzata per testare pass-the-hash in Invoke-DNSUpdate.

Esempio:
  • Genera chiavi per un utente AD valido chiamato [email protected].
    Get-KerberosAESKey -Salt TEST.LOCALuser
Scarica lo strumento