该程序使用线程劫持技术向标准 Win32 应用程序注入原生 Shellcode。我制作此程序时年仅 15 岁——请忽略不规范的代码。
我开发这个小项目是为了继续体验不同的代码注入方法,并让红队安全专业人员能够利用此方法作为一种独特的方式进行软件渗透测试。通过线程劫持,hijacker.exe 程序可以挂起 target.exe 程序中的一个线程,从而允许我们将 shellcode 写入该目标线程,并随后执行(通过 WriteProcessMemory()、SetThreadContext()、ResumeThread()、CreateThread())。

int main()
{
System sys;
Interceptor incp;
Exception exp;
sys.returnVersionState();
if (sys.returnPrivilegeEscalationState())
{
std::cout << "Token Privileges Adjusted\n";
}
if (DWORD m_procId = incp.FindWin32ProcessId((PCHAR)m_win32ProcessName))
{
incp.ExecuteWin32Shellcode(m_procId);
}
system("PAUSE");
return 0;
}
https://capec.mitre.org/data/definitions/30.html