.NET 通过回调函数执行 Shellcode启动进程
在红队活动往往需要考虑如何在实际环境中绕过防御机制,启动木马进程。今天,我们将深入探讨一种较少被提及但非常有趣的技术——利用 EnumPwrSchemes 函数回调来执行shellcode。
0x01 EnumPwrSchemes函数
EnumPwrSchemes 是 Windows 操作系统中的一个 API 函数,位于 C:\Windows\System32\powrprof.dll 库中,用于枚举系统中的电源配置,可以控制计算机的电源使用策略,比如休眠、关闭硬盘、显示器等。EnumPwrSchemes 函数原型如下所示。
BOOLEAN EnumPwrSchemes(PWRSCHEMESENUMPROC lpfn,LPARAM lParam
);
接受一个回调函数和一个参数指针,其中,lpfn参数是一个指向回调函数的指针,该回调函数用于处理每个电源配置的详细信息,其类型为 PWRSCHEMESENUMPROC。另一个参数lParam,是一个自定义参数,类型为 LPARAM,它会被传递给回调函数,通常用于传递上下文信息,每当找到一个系统电源配置时,会自动调用该函数。
0x02 VirtualAlloc 函数
VirtualAlloc 函数是