Update PowerHuntShares.psm1

Fixed bugs.
This commit is contained in:
Scott Sutherland 2024-10-14 16:04:53 -05:00 committed by GitHub
parent 17b11196cb
commit 4b0b133d43
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -4,7 +4,7 @@
#-------------------------------------- #--------------------------------------
# Author: Scott Sutherland, 2024 NetSPI # Author: Scott Sutherland, 2024 NetSPI
# License: 3-clause BSD # License: 3-clause BSD
# Version: v1.175 # Version: v1.176
# References: This script includes custom code and code taken and modified from the open source projects PowerView, Invoke-Ping, and Invoke-Parrell. # References: This script includes custom code and code taken and modified from the open source projects PowerView, Invoke-Ping, and Invoke-Parrell.
function Invoke-HuntSMBShares function Invoke-HuntSMBShares
{ {
@ -2206,7 +2206,7 @@ function Invoke-HuntSMBShares
# Check for potential read based RCE conditions # Check for potential read based RCE conditions
if(($_.ShareName -like 'c$') -or ($_.ShareName -like 'admin$') -or ($_.ShareName -like "*wwwroot*") -or ($_.ShareName -like "*inetpub*") -or ($_.ShareName -like 'c') -or ($_.ShareName -like 'c_share')) if(($_.ShareName -like 'c$') -or ($_.ShareName -like 'admin$') -or ($_.ShareName -like "*wwwroot*") -or ($_.ShareName -like "*inetpub*") -or ($_.ShareName -like 'c') -or ($_.ShareName -like 'c_share'))
{ {
$ShareRowHasHighRisk = 1 $ShareRowHasHighRisk = 1
}else{ }else{
$ShareRowHasHighRisk = 0 $ShareRowHasHighRisk = 0
} }
@ -2279,12 +2279,12 @@ function Invoke-HuntSMBShares
# Set wieghts # Set wieghts
$RiskWeightRCE = 2 $RiskWeightRCE = 2
$RiskWeightHR = 9 # Potential RCE - no write access $RiskWeightHR = 16 # Known high risk Potential RCE - no write access - consider reverting to 9.
$RiskWeightData = 8 $RiskWeightData = 8
$RiskWeightDataVolume = 1 $RiskWeightDataVolume = 1
$RiskWeightSecrets = 2 $RiskWeightSecrets = 2
$RiskWeightSecretsVolume = 1 $RiskWeightSecretsVolume = 1
$RiskWeightWrite = 4 $RiskWeightWrite = 5 # consider reverting to 4
$RiskWeightRead = 3 $RiskWeightRead = 3
$RiskWeightEmpty = -1 $RiskWeightEmpty = -1
$RiskWeightStale = -1 $RiskWeightStale = -1
@ -2292,7 +2292,7 @@ function Invoke-HuntSMBShares
# Calculate Risk Score # Calculate Risk Score
$ShareNameRiskValue = 0 $ShareNameRiskValue = 0
if($ShareRowHasRCE -eq 1){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightRCE } # RCE if($ShareRowHasRCE -eq 1){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightRCE } # RCE
if($ShareRowHasHighRisk -eq 1){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightHR } # Potential RCE if($ShareRowHasHighRisk -eq 1){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightHR } # Known high risk
if($ShareRowCountInterestingData -eq 1){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightData } # Potential Sensitive Data if($ShareRowCountInterestingData -eq 1){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightData } # Potential Sensitive Data
if($MySensitiveCount -gt 10){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightDataVolume } # Potential Sensitive Data Volume if($MySensitiveCount -gt 10){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightDataVolume } # Potential Sensitive Data Volume
if($ShareRowCountInterestingSecrets -eq 1){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightSecrets } # Potential Password Access if($ShareRowCountInterestingSecrets -eq 1){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightSecrets } # Potential Password Access
@ -2302,6 +2302,11 @@ function Invoke-HuntSMBShares
if($ShareRowHasEmpty -eq 1){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightEmpty } # Empty Folders if($ShareRowHasEmpty -eq 1){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightEmpty } # Empty Folders
if($ShareRowHasStale -eq 1){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightStale } # Stake Folders if($ShareRowHasStale -eq 1){ $ShareNameRiskValue = $ShareNameRiskValue + $RiskWeightStale } # Stake Folders
# Adjust for sub 0 if (shouldnt happen)
if($ShareNameRiskValue -lt 0){
$ShareNameRiskValue = 1
}
# Check risk level - Highest wins # Check risk level - Highest wins
If($ShareNameRiskValue -le 4 ) { $RiskLevel = "Low"} If($ShareNameRiskValue -le 4 ) { $RiskLevel = "Low"}
If($ShareNameRiskValue -gt 4 -and $ShareNameRiskValue -lt 11 ) { $RiskLevel = "Medium"} If($ShareNameRiskValue -gt 4 -and $ShareNameRiskValue -lt 11 ) { $RiskLevel = "Medium"}