模块 68 - Syscalls - 重构映射注入
恶意软件开发课程 - Syscalls - 重构映射注入
模块 68 - Syscalls - 重构映射注入#
Syscalls - 重构映射注入#
简介#
在本模块中,我们将使用直接系统调用(Direct Syscalls)重新实现之前讨论过的 映射注入 (Mapping Injection) 技术。我们将把核心的 WinAPI 替换为它们对应的系统调用版本:
CreateFileMapping➜ NtCreateSection ↗MapViewOfFile➜ NtMapViewOfSection ↗UnmapViewOfFile➜ NtUnmapViewOfSection ↗CloseHandle➜NtClose
系统调用参数详解#
1. NtCreateSection#
这是 CreateFileMapping 的底层版本。
NTSTATUS NtCreateSection(
OUT PHANDLE SectionHandle, // 接收节对象句柄的指针
IN ACCESS_MASK DesiredAccess, // 访问权限(如 SECTION_ALL_ACCESS)
IN POBJECT_ATTRIBUTES ObjectAttributes, // 设为 NULL
IN PLARGE_INTEGER MaximumSize, // 节的最大大小(Payload 大小)
IN ULONG SectionPageProtection, // 内存保护属性
IN ULONG AllocationAttributes, // 分配属性(如 SEC_COMMIT)
IN HANDLE FileHandle // 设为 NULL(表示使用页文件)
);c💡 初学者提示:LARGE_INTEGER
MaximumSize使用的是LARGE_INTEGER结构。在注入 Payload 时,你只需要初始化它的LowPart(低位部分)为 Payload 的大小。
2. NtMapViewOfSection#
这是 MapViewOfFile 的底层实现,用于将“节”映射到进程的内存空间。
NTSTATUS NtMapViewOfSection(
IN HANDLE SectionHandle, // 由 NtCreateSection 创建的句柄
IN HANDLE ProcessHandle, // 目标进程句柄(自己或远程进程)
IN OUT PVOID *BaseAddress, // 接收映射后的基地址
// ... 其他参数 ...
IN OUT PSIZE_T ViewSize, // 映射的大小(会自动向上取整为 4096 的倍数)
IN SECTION_INHERIT InheritDisposition, // 子进程继承属性(通常选 ViewUnmap)
// ...
IN ULONG Protect // 内存保护属性
);c关键概念:InheritDisposition#
该参数决定了该内存视图是否会分享给未来创建的子进程:
ViewShare:分享。ViewUnmap:不分享。
实战方案 A:动态调用 (GetProcAddress)#
我们可以通过手动加载 ntdll.dll 并解析地址来调用这些函数。但这无法绕过 EDR 的用户态 Hook。
实战方案 B:SysWhispers3 (间接系统调用)#
推荐使用 SysWhispers3 生成间接系统调用代码,以规避 EDR 监控。
命令示例:
python syswhispers.py -m jumper_randomized -f NtCreateSection,NtMapViewOfSection,NtUnmapViewOfSection,NtClose,NtCreateThreadEx -o SysWhispers
实战方案 C:地狱之门 (Hell’s Gate)#
我们同样可以扩充地狱之门的 VX_TABLE 结构。通过 Djb2 哈希动态解析 NtCreateSection 等函数的 SSN 特征码。
⚠️ 重要提醒:清理与延时#
在注入代码中,我们通常会在 Payload 执行完后调用 NtUnmapViewOfSection 和 NtClose 进行清理。
🎯 总结#
在本模块中,我们学习了:
- 映射转换:明确了文件映射技术在内核层对应的
Section(节)对象操作。 - 跨进程内存共享:理解了如何通过
SectionHandle在本地和远程进程间同时“挂载”同一块内存。 - 隐蔽性提升:结合之前的 Syscalls 绕过技术,使得 Mapping Injection 这一本就很隐蔽的技术变得更加难以被发现。
📚 下一步学习
下一个模块将探讨 Syscalls - Reimplementing APC Injection。我们将重构另一种极具杀伤力的注入技术:APC 注入!