
Verifica le condivisioni SMB di Active Directory per inventariare, analizzare e segnalare privilegi eccessivi. Scopre i sistemi accessibili, enumera le ACL delle condivisioni, identifica configurazioni ad alto rischio e genera report HTML/CSV per la priorizzazione delle azioni correttive.
PowerHuntShares è uno strumento PowerShell progettato per aiutare i team di cybersecurity e i penetration tester a identificare, comprendere, attaccare e correggere meglio le condivisioni SMB negli ambienti Active Directory che proteggono. Ogni hacker ha una storia sull'abuso delle condivisioni SMB, ma è una superficie d'attacco che i team di cybersecurity faticano ancora a difendere. Questo progetto mira a fornire uno strumento proof-of-concept open source per creare un inventario completo delle condivisioni, sfruttando statistiche, grafici, diagrammi e modelli linguistici per contestualizzare le condivisioni, riassumere le relazioni, valutare i rischi e dare priorità alla correzione.
Supporta le seguenti funzionalità:
Funzionalità bonus:
Risorse PowerHuntShares v2:
Risorse PowerHuntShares v1:
PowerHuntShares inventaria gli ACL delle condivisioni SMB configurati con "privilegi eccessivi" ed evidenzia gli ACL "ad alto rischio". Di seguito viene spiegato come sono definiti in questo contesto.
Privilegi Eccessivi
I permessi di lettura e scrittura eccessivi sulle condivisioni sono stati definiti come qualsiasi ACL di condivisione di rete contenente una ACE (Access Control Entry) esplicita per i gruppi "Everyone", "Authenticated Users", "BUILTIN\Users", "Domain Users" o "Domain Computers". Tutti questi forniscono agli utenti del dominio l'accesso alle condivisioni interessate a causa di problemi di ereditarietà dei privilegi. Si noti che esiste un parametro che consente agli operatori di aggiungere i propri gruppi target.
Di seguito ulteriori dettagli:
Nota Bene: I permessi di condivisione possono essere annullati dai permessi NTFS. Inoltre, si noti che i test hanno escluso i nomi di condivisione contenenti le seguenti parole chiave:
print$, prnproc$, printer, netlogon, and sysvol
Condivisioni ad Alto Rischio
Nel contesto di questo rapporto, le condivisioni ad alto rischio sono state definite come condivisioni che forniscono accesso remoto non autorizzato a un sistema o applicazione.
Per impostazione predefinita, ciò include le condivisioni
wwwroot, inetpub, c$, e admin$Tuttavia, potrebbero esistere ulteriori esposizioni non segnalate oltre a queste.
Di seguito un elenco di comandi che possono essere utilizzati per caricare PowerHuntShares nella sessione PowerShell corrente. Si noti che uno di questi dovrà essere eseguito ogni volta che si avvia PowerShell. Non è persistente.
# Bypass delle restrizioni di esecuzione policy
Set-ExecutionPolicy -Scope Process Bypass
# Importare il modulo che esiste nella directory corrente
Import-Module .\PowerHuntShares.psm1
oppure
# Ridurre il livello operativo SSL per supportare la connessione a github
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
[Net.ServicePointManager]::SecurityProtocol =[Net.SecurityProtocolType]::Tls12
# Scaricare e caricare PowerHuntShares.psm1 in memoria
IEX(New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/NetSPI/PowerHuntShares/main/PowerHuntShares.psm1")
Nota importante: tutti i comandi devono essere eseguiti come utente di dominio non privilegiato.
.EXAMPLE 1: Eseguito da un computer del dominio. Esegue la scoperta dei computer Active Directory per impostazione predefinita.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test
.EXAMPLE 2: Eseguito da un computer del dominio con credenziali di dominio alternative. Esegue la scoperta dei computer Active Directory per impostazione predefinita.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test -Credential domain\user
.EXAMPLE 3: Eseguito da un computer del dominio come utente corrente. Host target in un file. Uno per riga.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test -HostFile c:\temp\hosts.txt
.EXAMPLE 4: Eseguito da un computer non appartenente al dominio con credenziali. Esegue la scoperta dei computer Active Directory per impostazione predefinita.
C:\temp\test> runas /netonly /user:domain\user PowerShell.exe
PS C:\temp\test> Import-Module PowerHuntShares.psm1
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -RunSpaceTimeout 10 -OutputDirectory c:\folder\ -DomainController 10.1.1.1 -Credential domain\user
=============================================================== PowerHuntShares =============================================================== Questa funzione automatizza le seguenti attività: o Determinare il dominio del computer corrente o Elencare i computer del dominio o Filtrare i computer che rispondono ai ping o Filtrare i computer che hanno TCP 445 aperto e accessibile o Elencare le condivisioni SMB o Elencare i permessi delle condivisioni SMB o Identificare condivisioni con privilegi potenzialmente eccessivi o Identificare condivisioni che forniscono accesso in lettura e scrittura o Identificare condivisioni ad alto rischio o Identificare proprietari comuni delle condivisioni, nomi e elenchi di directory o Generare timeline di creazione, ultima scrittura e ultimo accesso o Generare report html riepilogativo e file csv dettagliati