mr-un1k0d3r/edrs
repository·main·Indexed 24 days ago
https://github.com/mr-un1k0d3r/edrsA collection of tools and research data focused on Endpoint Detection and Response (EDR) behavior. It includes utilities for syscall patching, IAT unhooking, and identifying hooked Windows APIs, such as get_syscall64, hook_finder64, and PoCs for dynamic syscall resolution. The repository also maintains curated lists of ntdll.dll APIs hooked by various security vendors including CrowdStrike, SentinelOne, and CarbonBlack.
What's inside edrs
- This proof-of-concept (PoC) detects hooks placed in the Import Address Table (IAT) by EDR, AV, or malware and replaces them with the original, legitimate addresses.
Resolve syscall IDs dynamically with patch_syscall_dynamically64.c
mainThis proof-of-concept (PoC) resolves syscall IDs dynamically, eliminating the need to manually check the Windows version on a remote host.
Mechanism:
- It uses
CreateFileMappingandMapViewOfFileWindows APIs to access the DLL on disk (ensuring the data is not tampered with by EDRs). - It parses the DLL to retrieve the original data.
- It uses that data to patch the live code in memory.
- It uses
Patch syscall IDs with patch_syscall64.c
mainThis proof-of-concept (PoC) allows patching a specific syscall ID directly in the code.
Mechanism: It patches the live version of a DLL using a hardcoded syscall ID and then reverts the DLL to its original unpatched state.
Contribute EDR hooked API lists
mainTo contribute new hooked API information to this repository, use the
hook_finder64.exetool againstntdll.dlland submit the resulting output.hook_finder64.exe C:\windows\system32\ntdll.dllhook_finder64.exe C:\windows\system32\ntdll.dllReference lists of hooked ntdll.dll APIs by EDR vendor
mainThis repository maintains curated lists of APIs hooked by various EDR (Endpoint Detection and Response) vendors. These lists are useful for red team exercises to identify which functions might be monitored.
Available Vendor Lists:
- CrowdStrike
- SentinelOne
- Cylance
- Sophos
- Attivo Deception
- CarbonBlack
- Symantec
- DeepInstinct
- McAfee
- CheckPoint SandBlast
- ESET
- TrendMicro
- Cortex XDR (Note: These are KERNEL MODE hooks and cannot be unhooked from user mode)
- Bitdefender
Retrieve syscall IDs with get_syscall64
mainThe
get_syscall64utility is used to retrieve the syscall ID associated with a specific Windows API. This is useful for understanding which syscalls are being used by a function.Usage: Run the executable followed by the DLL path and the API name.
get_syscall64.exe <dll_path> <api_name>get_syscall64.exe ntdll.dll NtOpenProcess