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
ShadowSpray — Uno strumento per distribuire Shadow Credentials in un intero dominio nella speranza di abusare di DACL GenericWrite/GenericAll dimenticate da tempo su altri oggetti nel dominio. | Kitploit
Strumenti/GitHubGitHub/dec0ne/shadowspray
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingAutenticazioneRed Teaming
GitHubdec0ne/shadowspray

ShadowSpray

Uno strumento per distribuire Shadow Credentials in un intero dominio nella speranza di abusare di DACL GenericWrite/GenericAll dimenticate da tempo su altri oggetti nel dominio.

Vedi Repository
4907913 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

ShadowSpray

Uno strumento per spruzzare Shadow Credentials su un intero dominio nella speranza di abusare di DACL GenericWrite/GenericAll dimenticate da tempo su altri oggetti nel dominio.

Perché questo strumento

In molti impegni vedo (in BloodHound) che il gruppo "Everyone" / "Authenticated Users" / "Domain Users" o qualche altro gruppo ampio, che contiene quasi tutti gli utenti del dominio, ha alcune DACL GenericWrite/GenericAll su altri oggetti nel dominio.

example

Questi diritti possono essere abusati per aggiungere Shadow Credentials sull'oggetto target e ottenere il suo TGT e NT Hash.

Mi è venuto in mente che possiamo semplicemente provare a spruzzare shadow credentials su tutto il dominio e vedere cosa funziona (ovviamente questo approccio è più adatto a impegni non stealth, non usatelo in un red team dove è richiesta la furtività). Quando uno Shadow Credentials viene aggiunto con successo, facciamo semplicemente tutto il balletto PKINIT + UnPACTheHash e voilà - otteniamo gli NT Hash.

Poiché il processo è estremamente veloce, può essere usato proprio all'inizio dell'impegno, e si spera di avere alcuni utenti e computer compromessi prima ancora di iniziare.

Nota: Ho riciclato molto codice dal mio strumento precedente quindi AV/EDR potrebbero segnalarlo come KrbRelayUp...

Come funziona questo strumento

Funziona più o meno così:

  1. Accedi al dominio con le credenziali fornite (Oppure usa la sessione corrente).
  2. Verifica che il livello funzionale del dominio sia 2016 (Altrimenti fermati poiché l'attacco Shadow Credentials non funzionerà)
  3. Raccogli un elenco di tutti gli oggetti nel dominio (utenti e computer) da LDAP.
  4. Per ogni oggetto nell'elenco esegui quanto segue:
    1. Prova ad aggiungere KeyCredential all'attributo "msDS-KeyCredentialLink" dell'oggetto.
    2. Se quanto sopra ha successo, usa PKINIT per richiedere un TGT usando il KeyCredential aggiunto.
    3. Se quanto sopra ha successo, esegui un attacco UnPACTheHash per rivelare l'hash NT dell'utente/computer.
    4. Se è stato specificato --RestoreShadowCred: Rimuovi il KeyCredential aggiunto (pulisci dopo di te...)
  5. Se è stato specificato --Recursive: Esegui lo stesso processo usando ciascuno degli account utente/computer che abbiamo compromesso con successo.

ShadowSpray supporta CTRL+C quindi se in qualsiasi momento desideri fermare l'esecuzione premi CTRL+C e ShadowSpray mostrerà gli NT Hash recuperati finora prima di uscire (come mostrato nella demo qui sotto).

Demo

https://user-images.githubusercontent.com/54464773/194827503-b1eead1a-e09a-41ca-9d9b-0a7a6f0ad6a0.mp4

Utilizzo

root@kitploit:~
 __             __   __        __   __   __
/__` |__|  /\  |  \ /  \ |  | /__` |__) |__)  /\  \ /
.__/ |  | /~~\ |__/ \__/ |/\| .__/ |    |  \ /~~\  |


Usage: ShadowSpray.exe [-d FQDN] [-dc FQDN] [-u USERNAME] [-p PASSWORD] [-r] [-re] [-cp CERT_PASSWORD] [-ssl]

    -r   (--RestoreShadowCred)       Ripristina l'attributo "msDS-KeyCredentialLink" dopo l'attacco. (Opzionale)
    -re  (--Recursive)               Esegui l'attacco ShadowSpray ricorsivamente. (Opzionale)
    -cp  (--CertificatePassword)     Password del certificato. (predefinito = password casuale)


General Options:
    -u  (--Username)                 Nome utente per l'autenticazione LDAP iniziale. (Opzionale)
    -p  (--Password)                 Password per l'autenticazione LDAP iniziale. (Opzionale)
    -d  (--Domain)                   FQDN del dominio. (Opzionale)
    -dc (--DomainController)         FQDN del controller di dominio. (Opzionale)
    -ssl                             Usa LDAP su SSL. (Opzionale)
    -y  (--AutoY)                    Non chiedere conferma per avviare l'attacco ShadowSpray. (Opzionale)

TODO

  • Refactoring del codice e pulizia!!!
  • Aggiungere opzione output Verbose
  • Aggiungere opzione per salvare su file KeyCredentials aggiunti / TGT richiesti / NT Hash raccolti
  • Versione Python ;)
  • Altri suggerimenti saranno ben accetti

Mitigazione e Rilevamento

Tratto dal post del blog di Elad Shamir su Shadow Credentials:

  • Se l'autenticazione PKINIT non è comune nell'ambiente o non è comune per l'account di destinazione, l'evento "Richiesto ticket di autenticazione Kerberos (TGT)" (4768) può indicare un comportamento anomalo quando gli attributi delle informazioni sul certificato non sono vuoti.

  • Se un SACL è configurato per controllare le modifiche agli oggetti di Active Directory per l'account di destinazione, l'evento "L'oggetto del servizio directory è stato modificato" (5136) può indicare un comportamento anomalo se il soggetto che modifica msDS-KeyCredentialLink non è l'account di sincronizzazione di Azure AD Connect o l'account del servizio ADFS, che tipicamente agiscono come Key Provisioning Server e modificano legittimamente questo attributo per gli utenti.

  • Un controllo preventivo più specifico è l'aggiunta di una voce di controllo di accesso (ACE) per NEGARE al principale EVERYONE la modifica dell'attributo msDS-KeyCredentialLink per qualsiasi account non destinato all'adesione all'autenticazione senza password Key Trust, e in particolare per gli account privilegiati.

  • Rilevare UnPACing e shadowed credentials di Henri Hambartsumyan di FalconForce

Rilevamenti specifici di ShadowSpray:

  • Questo strumento tenta di modificare ogni oggetto utente/computer nel dominio in un arco di tempo molto breve, quando fallisce (la maggior parte delle volte) genera un errore LDAP_INSUFFICIENT_ACCESS. È possibile costruire un rilevamento attorno a ciò usando lo stesso approccio del rilevamento dello spruzzamento di password regolare.

Riconoscimenti

  • Elad Shamir per la sua ricerca su Shadow Credentials e il suo fantastico strumento Whisker.
  • Will Schroeder e tutti coloro che hanno contribuito a Rubeus che tutti conosciamo e amiamo. Fondamentalmente tutta la funzionalità TGT/TGS/UnPACTheHash è stata presa da lì.
  • Cube0x0 Parte del codice (specificamente le modifiche degli attributi LDAP tramite WINAPI) è stata presa dal suo straordinario strumento KrbRelay.
  • Michael Grafnetter per il suo strumento DSInternals che è stato usato qui per aiutare con la funzionalità Shadow Credentials.
  • Orange-Cyberdefense per il loro lavoro su GOAD, il laboratorio di ricerca Active Directory che sto usando e che potete vedere nel video demo e nelle immagini.
  • Martijn Laarman per la bella barra di progresso usata in questo strumento.
Scarica lo strumento