11philip22/code-Injection
GitHub: 11philip22/code-Injection
收集并演示多种 Windows 进程注入与 shellcode 执行技术的安全研究项目。
Stars: 18 | Forks: 7
# 代码注入技术
本仓库记录并演示了不同的 Windows 进程注入方法。每种技术都利用底层 Windows API 在目标进程中运行任意 shellcode。
## Section 注入
**方法:** 使用 `NtCreateSection`、`NtMapViewOfSection` 和 `RtlCreateUserThread`。
[参考:phasetw0 – Section Code Injection](http://phasetw0.com/section-code-injection/)
### 工作原理
1. 启动一个宿主进程(例如 `notepad.exe`),它将执行 shellcode。
2. 通过 `NtCreateSection` 创建具有 **RWX** 权限的内存 Section。
3. 使用 `NtMapViewOfSection` 将 Section 映射到本地进程,权限为 **RW**。
4. 将同一个 Section 映射到远程目标进程,权限为 **RX**。
5. 将 shellcode 写入本地映射视图 → 此更改会反映在远程映射 Section 中。
6. 通过 `RtlCreateUserThread` 在目标进程中创建远程线程开始执行,并将其指向注入的 shellcode。
## APC 队列注入
**方法:** 使用异步过程调用在目标进程的可警告线程中运行代码。
[参考:Modexp – APC Injection](https://modexp.wordpress.com/2019/08/27/process-injection-apc/)
[参考:ired.team – APC Queue Injection](https://www.ired.team/offensive-security/code-injection-process-injection/apc-queue-code-injection)
### 工作原理
1. 识别目标进程(`explorer.exe`)的 PID。
2. 在目标进程内分配具有 **RWX** 权限的内存。
3. 将 shellcode 写入该分配的内存中。
4. 枚举目标进程的线程,然后找到一个**可警告线程**(通过检查其上下文/状态)。
5. 将指向注入 shellcode 的 APC 排队。当线程进入可警告状态时,shellcode 将被执行。
## 扩展阅读
- [NtCreateSection + NtMapViewOfSection Code Injection (ired.team)](https://www.ired.team/offensive-security/code-injection-process-injection/ntcreatesection-+-ntmapviewofsection-code-injection)
- [Process Injection: APC Queue (modexp)](https://modexp.wordpress.com/2019/08/27/process-injection-apc/)
标签:APC 注入, C/C++, Section Injection, Shellcode 注入, SSH蜜罐, UML, Windows API, 事务性I/O, 代码执行, 免杀技术, 内存操作, 内核对象, 同步过程调用, 客户端加密, 恶意代码分析, 数据展示, 暴力破解检测, 端点可见性, 红队, 线程劫持, 进程注入, 配置文件