PatchlessCLRLoader 是 InlineExecute-Assembly 的一个分支,用于加载 .NET 程序集并将输出定向到 mailslot。我将其重写为独立加载器,实现如下:
备注:目前加载器仅支持在主线程中设置 HWBP。
与传统的修补技术相比,使用硬件断点进行无补丁绕过具有多个优势。首先,它避免了使用 NtProtectVirtualMemory 等广为人知的 API,这些 API 受到安全解决方案的严密监控。其次,硬件断点无需对文件进行任何修改,而文件修改可能被文件完整性监控或 EDR 检测到,因此是一种相对隐蔽的方法。
从 InlineExecute-Assembly 移植的 BOF 版本 https://github.com/VoldeSec/PatchlessInlineExecute-Assembly
AES 加密载荷

执行
PatchlessCLRLoader.exe <payload> <key> <arguments>
本地载荷

远程载荷

在 CLR 期间,进程可能会因访问冲突而挂起,但如果所加载的 .NET 程序集支持输出功能,则可以解决此问题(例如 Seatbelt 的 -outputfile 参数)。待修复。
@rad9800 的无补丁挂钩实现
InlineExecute-Assembly - https://github.com/anthemtotheego/InlineExecute-Assembly