
PoC de Sequestro de Execução de Thread para Injeção de Código Win32
O programa usa Thread Hijacking para injetar shellcode nativo em uma aplicação Win32 padrão. Eu tinha 15 anos quando fiz isso - por favor, ignore o código de baixa qualidade.
Desenvolvi este pequeno projeto para continuar minhas experiências com diferentes métodos de injeção de código e para permitir que profissionais de segurança RedTeam utilizem este método como uma forma única de realizar testes de penetração em software. Com o sequestro de thread, o programa hijacker.exe pode suspender uma thread dentro do programa target.exe, permitindo-nos escrever shellcode nessa thread alvo e, posteriormente, executá-lo (via; 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