Listen to this Post

Parallel syscall is a sophisticated EDR bypass technique that abuses the Windows parallel loader to extract unhooked syscall stubs. This method targets Endpoint Detection and Response (EDR) systems that hook `ntdll.dll` functions to monitor system interactions. By directly invoking syscalls, attackers bypass these hooks, enabling stealthy execution of kernel-level operations in mature Windows environments.
PoC Code & Technical Explanation: Parallel Syscall PoC
You Should Know:
1. Understanding Syscall Mechanics
Syscalls allow user-mode applications to request services from the Windows kernel. EDRs hook these calls to detect malicious activity. The parallel syscall technique retrieves clean syscall stubs from an alternate `ntdll.dll` loaded in memory.
2. Rust Implementation for Stealth
Rust is used for its low-level control and compatibility with security tooling. Below is a simplified Rust snippet to fetch syscall addresses:
use winapi::um::libloaderapi::{GetModuleHandleA, GetProcAddress};
use std::ffi::CString;
fn get_syscall_address(func_name: &str) -> Option<usize> {
let ntdll = CString::new("ntdll.dll").unwrap();
let func = CString::new(func_name).unwrap();
unsafe {
let handle = GetModuleHandleA(ntdll.as_ptr());
if handle.is_null() {
return None;
}
let addr = GetProcAddress(handle, func.as_ptr());
if addr.is_null() {
None
} else {
Some(addr as usize)
}
}
}
3. Executing Direct Syscalls in Assembly
After obtaining the syscall number, execute it via inline assembly (x64):
mov r10, rcx mov eax, <SYS_CALL_NUMBER> syscall ret
4. Bypassing EDR Hooks
- Step 1: Locate a clean `ntdll.dll` in memory (e.g., via
NtCreateThreadEx). - Step 2: Extract syscall numbers dynamically.
- Step 3: Use direct syscalls instead of hooked APIs like
NtAllocateVirtualMemory.
5. Defensive Countermeasures
- Monitor unexpected `syscall` instructions in usermode.
- Use Kernel Callbacks (
PsSetCreateProcessNotifyRoutine). - Deploy ETW (Event Tracing for Windows) patching detection.
What Undercode Say
The parallel syscall technique demonstrates how attackers bypass EDRs by exploiting Windows internals. Defenders must move beyond userland hooks and adopt kernel-level telemetry. Future EDRs may integrate Hypervisor-Protected Code Integrity (HVCI) or Kernel Data Protection (KDP) to mitigate such attacks.
Relevant Commands for Analysis:
Check loaded DLLs in a process (Windows) tasklist /m ntdll.dll Monitor syscall events via ETW (Windows) logman query providers "Microsoft-Windows-Kernel-Process" Linux equivalent (strace) strace -e trace=process -p <PID>
Prediction
As EDRs evolve, attackers will shift to kernel-mode rootkits or firmware-level implants to maintain persistence. The next frontier in offensive security lies in VMM (Hypervisor) exploitation and GPU-based malware.
Expected Output:
A functional PoC demonstrating parallel syscall execution while evading EDR detection.
Further Reading:
IT/Security Reporter URL:
Reported By: Kavinarasue Hey – Hackers Feeds
Extra Hub: Undercode MoN
Basic Verification: Pass ✅


