
Überprüft Active Directory SMB-Freigaben, um übermäßige Berechtigungen zu inventarisieren, zu analysieren und zu melden. Entdeckt zugängliche Systeme, listet Freigabe-ACLs auf, identifiziert risikoreiche Konfigurationen und erstellt HTML/CSV-Berichte zur Priorisierung von Abhilfemaßnahmen.
PowerHuntShares ist ein PowerShell-Tool, das entwickelt wurde, um Cybersicherheitsteams und Penetrationstestern dabei zu helfen, SMB-Freigaben in den Active Directory-Umgebungen, die sie schützen, besser zu identifizieren, zu verstehen, anzugreifen und zu beheben. Jeder Hacker hat eine Geschichte über den Missbrauch von SMB-Freigaben, aber es ist eine Angriffsfläche, die Cybersicherheitsteams immer noch nur schwer verteidigen können. Dieses Projekt zielt darauf ab, ein offenes Proof-of-Concept-Tool zur Erstellung eines umfassenden Freigabeinventars bereitzustellen, das Statistiken, Diagramme, Grafiken und Sprachmodelle nutzt, um Freigaben zu kontextualisieren, Beziehungen zusammenzufassen, Risiken zu bewerten und die Behebung zu priorisieren.
Es unterstützt Funktionen zur:
Bonusfunktionen:
PowerHuntShares v2 Ressourcen:
PowerHuntShares v1 Ressourcen:
PowerHuntShares inventarisiert SMB-Freigabe-ACLs, die mit „übermäßigen Berechtigungen“ konfiguriert sind, und hebt „hochriskante“ ACLs hervor. Im Folgenden ist definiert, was in diesem Zusammenhang darunter verstanden wird.
Übermäßige Berechtigungen
Übermäßige Lese- und Schreibfreigabeberechtigungen wurden als jede Netzwerkfreigabe-ACL definiert, die einen expliziten ACE (Access Control Entry) für die Gruppen „Everyone“, „Authenticated Users“, „BUILTIN\Users“, „Domain Users“ oder „Domain Computers“ enthält. Alle ermöglichen Domänenbenutzern aufgrund von Vererbungsproblemen Zugriff auf die betroffenen Freigaben. Beachten Sie, dass es einen Parameter gibt, der es Operatoren erlaubt, eigene Zielgruppen hinzuzufügen.
Im Folgenden finden Sie einige zusätzliche Hintergrundinformationen:
Bitte beachten Sie: Freigabeberechtigungen können durch NTFS-Berechtigungen außer Kraft gesetzt werden. Beachten Sie auch, dass beim Testen Freigabenamen ausgeschlossen wurden, die die folgenden Schlüsselwörter enthalten:
print$, prnproc$, printer, netlogon,and sysvol
Hochriskante Freigaben
Im Kontext dieses Berichts wurden hochriskante Freigaben als Freigaben definiert, die unbefugten Remote-Zugriff auf ein System oder eine Anwendung ermöglichen.
Standardmäßig umfasst dies die Freigaben
wwwroot, inetpub, c$, und admin$
Nachfolgend finden Sie eine Liste von Befehlen, die verwendet werden können, um PowerHuntShares in Ihre aktuelle PowerShell-Sitzung zu laden. Bitte beachten Sie, dass einer dieser Befehle jedes Mal ausgeführt werden muss, wenn PowerShell gestartet wird. Es ist nicht dauerhaft.
# Bypass execution policy restrictions
Set-ExecutionPolicy -Scope Process Bypass
# Import module that exists in the current directory
Import-Module .\PowerHuntShares.psm1
or
# Reduce SSL operating level to support connection to github
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
[Net.ServicePointManager]::SecurityProtocol =[Net.SecurityProtocolType]::Tls12
# Download and load PowerHuntShares.psm1 into memory
IEX(New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/NetSPI/PowerHuntShares/main/PowerHuntShares.psm1")
Wichtiger Hinweis: Alle Befehle sollten als unprivilegierter Domänenbenutzer ausgeführt werden.
.EXAMPLE 1: Run from a domain computer. Performs Active Directory computer discovery by default.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test
.EXAMPLE 2: Run from a domain computer with alternative domain credentials. Performs Active Directory computer discovery by default.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test -Credential domain\user
.EXAMPLE 3: Run from a domain computer as current user. Target hosts in a file. One per line.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test -HostFile c:\temp\hosts.txt
.EXAMPLE 4: Run from a non-domain computer with credential. Performs Active Directory computer discovery by default.
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 =============================================================== This function automates the following tasks: o Determine current computer's domain o Enumerate domain computers o Filter for computers that respond to ping requests o Filter for computers that have TCP 445 open and accessible o Enumerate SMB shares o Enumerate SMB share permissions o Identify shares with potentially excessive privileges o Identify shares that provide read & write access o Identify shares that are high risk o Identify common share owners, names, & directory listings o Generate creation, last written, & last accessed timelines o Generate html summary report and detailed csv files Note: This can take hours to run in large environments. --------------------------------------------------------------- ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| --------------------------------------------------------------- SHARE DISCOVERY --------------------------------------------------------------- [*][03/01/2021 09:35] Scan Start [*][03/01/2021 09:35] Output Directory: c:\temp\smbshares\SmbShareHunt-03012021093504 [*][03/01/2021 09:35] Successful connection to domain controller: dc1.demo.local [*][03/01/2021 09:35] Performing LDAP query for computers associated with the demo.local domain [*][03/01/2021 09:35] - 245 computers found [*][03/01/2021 09:35] Pinging 245 computers [*][03/01/2021 09:35] - 55 computers responded to ping requests. [*][03/01/2021 09:35] Checking if TCP Port 445 is open on 55 computers [*][03/01/2021 09:36] - 49 computers have TCP port 445 open. [*][03/01/2021 09:36] Getting a list of SMB shares from 49 computers [*][03/01/2021 09:36] - 217 SMB shares were found. [*][03/01/2021 09:36] Getting share permissions from 217 SMB shares [*][03/01/2021 09:37] - 374 share permissions were enumerated. [*][03/01/2021 09:37] Getting directory listings from 33 SMB shares [*][03/01/2021 09:37] - Targeting up to 3 nested directory levels [*][03/01/2021 09:37] - 563 files and folders were enumerated. [*][03/01/2021 09:37] Identifying potentially excessive share permissions [*][03/01/2021 09:37] - 33 potentially excessive privileges were found across 12 systems.. [*][03/01/2021 09:37] Scan Complete --------------------------------------------------------------- SHARE ANALYSIS --------------------------------------------------------------- [*][03/01/2021 09:37] Analysis Start [*][03/01/2021 09:37] - 14 shares can be read across 12 systems. [*][03/01/2021 09:37] - 1 shares can be written to across 1 systems. [*][03/01/2021 09:37] - 46 shares are considered non-default across 32 systems. [*][03/01/2021 09:37] - 0 shares are considered high risk across 0 systems [*][03/01/2021 09:37] - Identified top 5 owners of excessive shares. [*][03/01/2021 09:37] - Identified top 5 share groups. [*][03/01/2021 09:37] - Identified top 5 share names. [*][03/01/2021 09:37] - Identified shares created in last 90 days. [*][03/01/2021 09:37] - Identified shares accessed in last 90 days. [*][03/01/2021 09:37] - Identified shares modified in last 90 days. [*][03/01/2021 09:37] Analysis Complete --------------------------------------------------------------- SHARE REPORT SUMMARY --------------------------------------------------------------- [*][03/01/2021 09:37] Domain: demo.local [*][03/01/2021 09:37] Start time: 03/01/2021 09:35:04 [*][03/01/2021 09:37] End time: 03/01/2021 09:37:27 [*][03/01/2021 09:37] Run time: 00:02:23.2759086 [*][03/01/2021 09:37] [*][03/01/2021 09:37] COMPUTER SUMMARY [*][03/01/2021 09:37] - 245 domain computers found. [*][03/01/2021 09:37] - 55 (22.45%) domain computers responded to ping. [*][03/01/2021 09:37] - 49 (20.00%) domain computers had TCP port 445 accessible. [*][03/01/2021 09:37] - 32 (13.06%) domain computers had shares that were non-default. [*][03/01/2021 09:37] - 12 (4.90%) domain computers had shares with potentially excessive privileges. [*][03/01/2021 09:37] - 12 (4.90%) domain computers had shares that allowed READ access. [*][03/01/2021 09:37] - 1 (0.41%) domain computers had shares that allowed WRITE access. [*][03/01/2021 09:37] - 0 (0.00%) domain computers had shares that are HIGH RISK. [*][03/01/2021 09:37] [*][03/01/2021 09:37] SHARE SUMMARY [*][03/01/2021 09:37] - 217 shares were found. We expect a minimum of 98 shares [*][03/01/2021 09:37] because 49 systems had open ports and there are typically two default shares. [*][03/01/2021 09:37] - 46 (21.20%) shares across 32 systems were non-default. [*][03/01/2021 09:37] - 14 (6.45%) shares across 12 systems are configured with 33 potentially excessive ACLs. [*][03/01/2021 09:37] - 14 (6.45%) shares across 12 systems allowed READ access. [*][03/01/2021 09:37] - 1 (0.46%) shares across 1 systems allowed WRITE access. [*][03/01/2021 09:37] - 0 (0.00%) shares across 0 systems are considered HIGH RISK. [*][03/01/2021 09:37] [*][03/01/2021 09:37] SHARE ACL SUMMARY [*][03/01/2021 09:37] - 374 ACLs were found. [*][03/01/2021 09:37] - 374 (100.00%) ACLs were associated with non-default shares. [*][03/01/2021 09:37] - 33 (8.82%) ACLs were found to be potentially excessive. [*][03/01/2021 09:37] - 32 (8.56%) ACLs were found that allowed READ access. [*][03/01/2021 09:37] - 1 (0.27%) ACLs were found that allowed WRITE access. [*][03/01/2021 09:37] - 0 (0.00%) ACLs were found that are associated with HIGH RISK share names. [*][03/01/2021 09:37] [*][03/01/2021 09:37] - The 5 most common share names are: [*][03/01/2021 09:37] - 9 of 14 (64.29%) discovered shares are associated with the top 5 share names. [*][03/01/2021 09:37] - 4 backup [*][03/01/2021 09:37] - 2 ssms [*][03/01/2021 09:37] - 1 test2 [*][03/01/2021 09:37] - 1 test1 [*][03/01/2021 09:37] - 1 users [*] -----------------------------------------------




Autor
Scott Sutherland (@_nullbind)
Verwendeter Open-Source-Code
Diese Personen haben Open-Source-Code geschrieben, der im Rahmen dieses Projekts verwendet wurde. Ein großes Dankeschön geht an sie und ihre Arbeit!
| Name | Website |
|---|---|
| Will Schroeder (@harmj0y) | https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1 |
Lizenz
BSD 3-Clause
Ausstehende Fehlerbehebungen/Fehler
Ausstehende Funktionen
Nachfolgend finden Sie eine visuelle Schritt-für-Schritt-Erklärung, wie PowerHuntShares funktioniert, welche Daten es extrahiert und wie es umsetzbare Ergebnisse präsentiert.
Bietet eine Übersicht auf hoher Ebene über entdeckte Freigaben und zugehörige Risiken.

Automatisch generierte Berichte für eine einfache Analyse und Offline-Überprüfung.

Detaillierte Zuordnung von Freigabenamen und ihren Eigenschaften.

Vorgeschlagene Schritte zur Behebung identifizierter Risiken.

Visualisierung entdeckter Probleme im Zeitverlauf.

Vergleicht entdeckte Freigaben und Berechtigungen über verschiedene Systeme hinweg.

Gruppierung verwandter Ordner und Freigaben für einen besseren Kontext.

Zeigt die Asset-Exposition basierend auf entdeckten Fingerabdrücken.

Visuelle Darstellung entdeckter Freigaben und Beziehungen.

Hebt vertrauliche Informationen und Geheimnisse hervor, die während des Scans entdeckt wurden.

Listet potenziell interessante oder wertvolle Dateien auf, die in Freigaben gefunden wurden.

Hebt Bereiche hervor, in denen vertrauliche Daten exponiert sein könnten.

Umfassende Risikoexpositionsansichten mit detaillierter Analyse.

| 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/ |