Skip to content

Commit

Permalink
Merge pull request PowerShellMafia#160 from joncave/tokeninfo
Browse files Browse the repository at this point in the history
PowerUp: Allocate enough space for TOKEN_GROUPS
  • Loading branch information
HarmJ0y authored Jul 15, 2016
2 parents 28d118f + 9d2b9d7 commit e639125
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions Privesc/PowerUp.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -974,17 +974,16 @@ function Get-CurrentUserTokenGroupSid {
$Success = $Advapi32::OpenProcessToken($CurrentProcess, $TOKEN_QUERY, [ref]$hProcToken);$LastError = [Runtime.InteropServices.Marshal]::GetLastWin32Error()

if($Success) {

$TokenGroupsPtrSize = $TOKEN_GROUPS::GetSize()
$TokenGroupsPtrSize = 0
# Initial query to determine the necessary buffer size
$Success = $Advapi32::GetTokenInformation($hProcToken, 2, 0, $TokenGroupsPtrSize, [ref]$TokenGroupsPtrSize)

[IntPtr]$TokenGroupsPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TokenGroupsPtrSize)

[UInt32]$RealSize = 0

# query the current process token with the 'TokenGroups=2' TOKEN_INFORMATION_CLASS enum to retrieve a TOKEN_GROUPS structure
$Success2 = $Advapi32::GetTokenInformation($hProcToken, 2, $TokenGroupsPtr, $TokenGroupsPtrSize, [ref]$TokenGroupsPtrSize);$LastError = [Runtime.InteropServices.Marshal]::GetLastWin32Error()
$Success = $Advapi32::GetTokenInformation($hProcToken, 2, $TokenGroupsPtr, $TokenGroupsPtrSize, [ref]$TokenGroupsPtrSize);$LastError = [Runtime.InteropServices.Marshal]::GetLastWin32Error()

if($Success2) {
if($Success) {

$TokenGroups = $TokenGroupsPtr -as $TOKEN_GROUPS

Expand Down

0 comments on commit e639125

Please sign in to comment.