
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$
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 Nota: Può richiedere ore per l'esecuzione in ambienti di grandi dimensioni. --------------------------------------------------------------- ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| --------------------------------------------------------------- SCOPERTA DELLE CONDIVISIONI --------------------------------------------------------------- [*][01/03/2021 09:35] Inizio Scansione [*][01/03/2021 09:35] Directory Output: c:\temp\smbshares\SmbShareHunt-03012021093504 [*][01/03/2021 09:35] Connessione riuscita al controller di dominio: dc1.demo.local [*][01/03/2021 09:35] Esecuzione query LDAP per i computer associati al dominio demo.local [*][01/03/2021 09:35] - 245 computer trovati [*][01/03/2021 09:35] Ping verso 245 computer [*][01/03/2021 09:35] - 55 computer hanno risposto ai ping. [*][01/03/2021 09:35] Verifica se la porta TCP 445 è aperta su 55 computer [*][01/03/2021 09:36] - 49 computer hanno la porta TCP 445 aperta. [*][01/03/2021 09:36] Ottenimento elenco condivisioni SMB da 49 computer [*][01/03/2021 09:36] - 217 condivisioni SMB trovate. [*][01/03/2021 09:36] Ottenimento permessi da 217 condivisioni SMB [*][01/03/2021 09:37] - 374 permessi di condivisione enumerati. [*][01/03/2021 09:37] Ottenimento elenchi di directory da 33 condivisioni SMB [*][01/03/2021 09:37] - Targeting fino a 3 livelli di directory annidati [*][01/03/2021 09:37] - 563 file e cartelle enumerati. [*][01/03/2021 09:37] Identificazione permessi di condivisione potenzialmente eccessivi [*][01/03/2021 09:37] - 33 privilegi potenzialmente eccessivi trovati su 12 sistemi.. [*][01/03/2021 09:37] Scansione Completata --------------------------------------------------------------- ANALISI DELLE CONDIVISIONI --------------------------------------------------------------- [*][01/03/2021 09:37] Inizio Analisi [*][01/03/2021 09:37] - 14 condivisioni possono essere lette su 12 sistemi. [*][01/03/2021 09:37] - 1 condivisioni possono essere scritte su 1 sistema. [*][01/03/2021 09:37] - 46 condivisioni sono considerate non predefinite su 32 sistemi. [*][01/03/2021 09:37] - 0 condivisioni sono considerate ad alto rischio su 0 sistemi [*][01/03/2021 09:37] - Identificati i primi 5 proprietari di condivisioni eccessive. [*][01/03/2021 09:37] - Identificati i primi 5 gruppi di condivisioni. [*][01/03/2021 09:37] - Identificati i primi 5 nomi di condivisioni. [*][01/03/2021 09:37] - Identificate condivisioni create negli ultimi 90 giorni. [*][01/03/2021 09:37] - Identificate condivisioni accessate negli ultimi 90 giorni. [*][01/03/2021 09:37] - Identificate condivisioni modificate negli ultimi 90 giorni. [*][01/03/2021 09:37] Analisi Completata --------------------------------------------------------------- RIEPILOGO RAPPORTO DELLE CONDIVISIONI --------------------------------------------------------------- [*][01/03/2021 09:37] Dominio: demo.local [*][01/03/2021 09:37] Ora inizio: 01/03/2021 09:35:04 [*][01/03/2021 09:37] Ora fine: 01/03/2021 09:37:27 [*][01/03/2021 09:37] Tempo di esecuzione: 00:02:23.2759086 [*][01/03/2021 09:37] [*][01/03/2021 09:37] RIEPILOGO COMPUTER [*][01/03/2021 09:37] - 245 computer del dominio trovati. [*][01/03/2021 09:37] - 55 (22.45%) computer del dominio hanno risposto al ping. [*][01/03/2021 09:37] - 49 (20.00%) computer del dominio avevano la porta TCP 445 accessibile. [*][01/03/2021 09:37] - 32 (13.06%) computer del dominio avevano condivisioni non predefinite. [*][01/03/2021 09:37] - 12 (4.90%) computer del dominio avevano condivisioni con privilegi potenzialmente eccessivi. [*][01/03/2021 09:37] - 12 (4.90%) computer del dominio avevano condivisioni che consentivano accesso in LETTURA. [*][01/03/2021 09:37] - 1 (0.41%) computer del dominio avevano condivisioni che consentivano accesso in SCRITTURA. [*][01/03/2021 09:37] - 0 (0.00%) computer del dominio avevano condivisioni considerate AD ALTO RISCHIO. [*][01/03/2021 09:37] [*][01/03/2021 09:37] RIEPILOGO CONDIVISIONI [*][01/03/2021 09:37] - 217 condivisioni trovate. Ci aspettiamo un minimo di 98 condivisioni [*][01/03/2021 09:37] perché 49 sistemi avevano porte aperte e in genere ci sono due condivisioni predefinite. [*][01/03/2021 09:37] - 46 (21.20%) condivisioni su 32 sistemi erano non predefinite. [*][01/03/2021 09:37] - 14 (6.45%) condivisioni su 12 sistemi sono configurate con 33 ACL potenzialmente eccessivi. [*][01/03/2021 09:37] - 14 (6.45%) condivisioni su 12 sistemi consentivano accesso in LETTURA. [*][01/03/2021 09:37] - 1 (0.46%) condivisioni su 1 sistema consentivano accesso in SCRITTURA. [*][01/03/2021 09:37] - 0 (0.00%) condivisioni su 0 sistemi sono considerate AD ALTO RISCHIO. [*][01/03/2021 09:37] [*][01/03/2021 09:37] RIEPILOGO ACL DELLE CONDIVISIONI [*][01/03/2021 09:37] - 374 ACL trovati. [*][01/03/2021 09:37] - 374 (100.00%) ACL erano associati a condivisioni non predefinite. [*][01/03/2021 09:37] - 33 (8.82%) ACL sono risultati potenzialmente eccessivi. [*][01/03/2021 09:37] - 32 (8.56%) ACL sono risultati che consentivano accesso in LETTURA. [*][01/03/2021 09:37] - 1 (0.27%) ACL sono risultati che consentivano accesso in SCRITTURA. [*][01/03/2021 09:37] - 0 (0.00%) ACL sono risultati associati a nomi di condivisione AD ALTO RISCHIO. [*][01/03/2021 09:37] [*][01/03/2021 09:37] - I 5 nomi di condivisione più comuni sono: [*][01/03/2021 09:37] - 9 su 14 (64.29%) condivisioni scoperte sono associate ai primi 5 nomi di condivisione. [*][01/03/2021 09:37] - 4 backup [*][01/03/2021 09:37] - 2 ssms [*][01/03/2021 09:37] - 1 test2 [*][01/03/2021 09:37] - 1 test1 [*][01/03/2021 09:37] - 1 users [*] -----------------------------------------------




Autore
Scott Sutherland (@_nullbind)
Codice Open-Source Utilizzato
Queste persone hanno scritto codice open source utilizzato come parte di questo progetto. Un grande ringraziamento a loro e al loro lavoro!
| Nome | Sito |
|---|---|
| Will Schroeder (@harmj0y) | https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1 |
Licenza
BSD 3-Clause
Correzioni/Bug in sospeso
Funzionalità in sospeso
Di seguito una panoramica visiva di come funziona PowerHuntShares, quali dati estrae e come presenta i risultati utilizzabili.
Fornisce una visione d'insieme delle condivisioni scoperte e dei rischi associati.

Report generati automaticamente per un'analisi semplice e una revisione offline.

Mappatura dettagliata dei nomi delle condivisioni e delle loro proprietà.

Passaggi di correzione suggeriti per affrontare i rischi identificati.

Visualizzazione dei problemi scoperti nel tempo.

Confronta le condivisioni e i permessi scoperti su diversi sistemi.

Raggruppa cartelle e condivisioni correlate per un contesto migliore.

Mostra l'esposizione degli asset basata sulle impronte scoperte.

Rappresentazione visiva delle condivisioni scoperte e delle loro relazioni.

Evidenzia informazioni sensibili e segreti scoperti durante la scansione.

Elenca i file potenzialmente interessanti o di alto valore trovati nelle condivisioni.

Evidenzia le aree in cui i dati sensibili potrebbero essere esposti.

Viste complete del rischio di esposizione con analisi dettagliata.

| Warren F (@pscookiemonster) | https://github.com/RamblingCookieMonster/Invoke-Parallel |
| Luben Kirov | http://www.gi-architects.co.uk/2016/02/powershell-check-if-ip-or-subnet-matchesfits/ |