攻击性 C# 工具合集
这是我为行动创建的C#工具和POC(概念验证)集合。每个项目设计为不依赖外部库。在Visual Studio中打开每个项目的.SLN文件,并以"Release"模式编译。
| 项目 | 描述 | 最低.NET版本 |
|---|---|---|
| AbandonedCOMKeys | 枚举废弃的COM键(特别是InprocServer32)。可用于持久化,因为在某些情况下,你可以写入缺失的位置并使用rundll32.exe -sta {CLSID}进行调用。技术参考自@bohops的这篇文章 | 4.0 |
| COMHunter | 使用WMI枚举系统中设置在LocalServer32和InProc32键中的COM服务器 | 4.0 |
| CredPhisher | 使用CredUIPromptForWindowsCredentials WinAPI函数提示当前用户输入其凭据。支持一个参数来提供将显示给用户的消息文本。 | 3.5 |
| DriverQuery | 收集系统上驱动程序的详细信息,并可选择过滤以仅查找未由Microsoft签名的驱动 | 3.5 |
| EncryptedZIP | 压缩目录或文件,然后使用AES256 CFB和提供的密钥加密ZIP文件。此程序集还使用RtlZeroMemory从内存中清除密钥。使用附带的Decrypter程序解密存档。 | 3.5 |
| ETWEventSubscription | 类似于WMI事件订阅,但利用Windows事件跟踪(ETW)。当系统上发生事件时(当前是任何用户登录或指定进程启动时),会执行DoEvil()方法。 | 4.6 |
| GPSCoordinates | 如果位置服务已启用,则跟踪系统的GPS坐标(目前精度在1公里内)。目前适用于Windows 10,但希望涵盖所有7+版本。 | 4.0 |
| HijackHunter | 解析目标的PE头部以查找易受劫持的链接DLL。为每个检测到的劫持机会提供理由和滥用技术 | 4.0 |
| HookDetector | 检测当前进程中已被挂钩的原生API函数,表明存在EDR | 4.0 |
| ImplantSSP | 在系统上安装用户提供的安全支持提供程序(SSP)DLL,该DLL将在系统启动时由LSA加载。该DLL必须导出SpLsaModeInitialize。灵感来自@mattifestation的Install-SSP | 3.5 |
| InspectAssembly | 检查目标.NET程序集的CIL中是否有对反序列化器和.NET远程处理的调用,以帮助排查潜在的权限提升。 | 4.0 |
| JunctionFolder | 如Vault 7泄露中所述,在Windows附件启动文件夹中创建一个交接点文件夹。当系统启动或用户浏览该目录时,引用的DLL将由verclsid.exe以中等完整性执行。 | 3.5 |
| MockDirUACBypass | 创建一个模拟的可信目录C:\Windows \System32\,并将一个自动提升权限的Windows可执行文件移动到该模拟目录中。根据用户提供的导出适当函数的DLL,当该可执行文件运行时,DLL将作为高完整性加载并运行。该技术由@ce2wells发现,并在这篇文章中概述。 | 3.5 |
| PhantomService | 搜索并删除无法通过内置Windows工具轻松删除的非ASCII服务。参考 | 4.0 |
| SessionSearcher | 搜索所有连接的驱动器中PuTTY私钥和RDP连接文件,并解析它们以获得相关详细信息。基于@arvanaghi的SessionGopher | 4.0 |
| UnquotedPath | 输出未引用的服务路径列表(不在System32/SysWow64中的路径),以便植入PE。ATT&CK参考 | 3.5 |