做C#红队开发的人,大概率都经历过这种重复劳动:每个新项目都要重写一遍P/Invoke声明和系统调用封装。一位开发者终于受够了,把这些年攒的代码打包成了一个库。
SharpKit是一个基于.NET 8的进攻性安全工具库。它的特点很直接:零外部NuGet依赖,只用到System.Net.Http、System.Runtime.InteropServices和System.Net.Sockets这三个系统库。
系统调用模块是核心功能之一。它支持运行时SSN提取——直接在内存中解析ntdll,不需要针对不同Windows版本硬编码系统调用号。同时也支持间接调用存根,可以通过jmp r11这类自定义gadget实现分发。
进程注入方面,库中集成了四种技术:CreateRemoteThread、NtCreateThreadEx、QueueUserAPC和进程镂空(process hollowing)。Win32 P/Invoke封装覆盖了kernel32、advapi32和ntdll三个关键DLL。
Kerberos工具集比较完整,实现了AS-REQ、TGS-REQ、AP-REQ、S4U2Self、S4U2Proxy等协议的构造器,还带了Kerberoast哈希格式化功能。网络模块提供了HttpAgent,支持NTLM、Basic、Bearer三种认证方式和代理配置;PacketCrafter则可以构造原始ARP、DNS、TCP、UDP数据包。
使用示例很简洁:先调用Syscalls.Initialize()初始化,然后直接执行NtAllocateVirtualMemory等函数。运行时自动提取SSN的机制,让同一份代码能在不同Windows版本上直接跑,不用手动维护调用号对照表。
项目已在NuGet上架,包名SharpKit.Offensive。文档和代码仓库分别托管在GitHub的CzaxStudio组织下。作者明确标注:仅供合法红队测试和研究使用。
热门跟贴