diff options
author | Harmj0y <will@harmj0y.net> | 2016-03-07 02:50:24 -0500 |
---|---|---|
committer | Harmj0y <will@harmj0y.net> | 2016-03-07 02:50:24 -0500 |
commit | c883dabf7780f5b8b3cc1bea1f9b163983174838 (patch) | |
tree | 15b30897e52490edb1cef5ef193594a1db0cdc0d /Recon/PowerView.ps1 | |
parent | 1c664758ce321a94c5f7cd2b33bbdd602b36658f (diff) | |
download | PowerSploit-c883dabf7780f5b8b3cc1bea1f9b163983174838.tar.gz PowerSploit-c883dabf7780f5b8b3cc1bea1f9b163983174838.zip |
Added -DomainOnly flag to Invoke-EnumerateLocalAdmin
Diffstat (limited to 'Recon/PowerView.ps1')
-rw-r--r-- | Recon/PowerView.ps1 | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/Recon/PowerView.ps1 b/Recon/PowerView.ps1 index 994b9a7..e657c5d 100644 --- a/Recon/PowerView.ps1 +++ b/Recon/PowerView.ps1 @@ -6710,7 +6710,9 @@ function Get-NetLocalGroup { $LocalUser | Add-Member Noteproperty 'ComputerName' $Server $LocalUser | Add-Member Noteproperty 'AccountName' $Info.lgrmi2_domainandname $LocalUser | Add-Member Noteproperty 'SID' $SidString - $LocalUser | Add-Member Noteproperty 'SidType' $Info.lgrmi2_sidusage + + $IsGroup = $($Info.lgrmi2_sidusage -eq 'SidTypeGroup') + $LocalUser | Add-Member Noteproperty 'IsGroup' $IsGroup $Offset = $NewIntPtr.ToInt64() $Offset += $Increment @@ -10943,6 +10945,10 @@ function Invoke-EnumerateLocalAdmin { Switch. Only return results that are not part of the local machine or the machine's domain. Old Invoke-EnumerateLocalTrustGroup functionality. + + .PARAMETER DomainOnly + + Switch. Only return domain (non-local) results .PARAMETER Domain @@ -11020,6 +11026,9 @@ function Invoke-EnumerateLocalAdmin { [Switch] $TrustGroups, + [Switch] + $DomainOnly, + [String] $Domain, @@ -11103,7 +11112,7 @@ function Invoke-EnumerateLocalAdmin { # script block that enumerates a server $HostEnumBlock = { - param($ComputerName, $Ping, $OutFile, $DomainSID, $TrustGroupsSIDs, $API) + param($ComputerName, $Ping, $OutFile, $DomainSID, $TrustGroupsSIDs, $API, $DomainOnly) # optionally check if the server is up first $Up = $True @@ -11130,6 +11139,11 @@ function Invoke-EnumerateLocalAdmin { } if($LocalAdmins -and ($LocalAdmins.Length -ne 0)) { + + if($DomainOnly) { + $LocalAdmins = $LocalAdmins | Where-Object {$_.IsDomain} + } + # output the results to a csv if specified if($OutFile) { $LocalAdmins | Export-PowerViewCSV -OutFile $OutFile @@ -11144,7 +11158,6 @@ function Invoke-EnumerateLocalAdmin { } } } - } process { @@ -11164,6 +11177,10 @@ function Invoke-EnumerateLocalAdmin { if($API) { $ScriptParams['API'] = $True } + + if($DomainOnly) { + $ScriptParams['DomainOnly'] = $True + } Invoke-ThreadedFunction -ComputerName $ComputerName -ScriptBlock $HostEnumBlock -ScriptParameters $ScriptParams -Threads $Threads } @@ -11186,12 +11203,9 @@ function Invoke-EnumerateLocalAdmin { Start-Sleep -Seconds $RandNo.Next((1-$Jitter)*$Delay, (1+$Jitter)*$Delay) Write-Verbose "[*] Enumerating server $Computer ($Counter of $($ComputerName.count))" - if($API) { - Invoke-Command -ScriptBlock $HostEnumBlock -ArgumentList $Computer, $False, $OutFile, $DomainSID, $TrustGroupsSIDs, $True - } - else { - Invoke-Command -ScriptBlock $HostEnumBlock -ArgumentList $Computer, $False, $OutFile, $DomainSID, $TrustGroupsSIDs - } + $ScriptArgs = @($Computer, $False, $OutFile, $DomainSID, $TrustGroupsSIDs, $API, $DomainOnly) + + Invoke-Command -ScriptBlock $HostEnumBlock -ArgumentList $ScriptArgs } } } |