Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
OffensiveDLR — 包含研究笔记及武器化 .NET 的 DLR 的 PoC 代码的工具箱 | Kitploit
工具/GitHubGitHub/byt3bl33d3r/offensivedlr
权限提升持久化机制代码分析动态代码分析 (DAST)漏洞利用横向移动Shellcode后渗透利用命令与控制学习与教育红队Payload 开发
5261134年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
byt3bl33d3r/offensivedlr

OffensiveDLR

包含研究笔记及武器化 .NET 的 DLR 的 PoC 代码的工具箱

查看仓库

OffensiveDLR

包含研究笔记和PoC代码的工具箱,用于武器化.NET的DLR

目录

Script描述
KukulkanSILENTTRINITY的精简版本,C# DLL和EXE,嵌入IPY引擎。通信加密,可与CobaltStrike一起使用
Invoke-JumpScare.ps1使用嵌入的Boolang编译器执行shellcode,不触碰磁盘(至少据我所知),且不调用csc.exe :)
Invoke-IronPython.ps1使用嵌入的IPY引擎执行IronPython代码。与Invoke-JumpScare概念相同,仅使用IronPython。
Invoke-ClearScript.ps1使用嵌入的ClearScript引擎执行JScript(或VBScript)
SharpSnek.csC#代码,嵌入IronPython引擎并执行嵌入的IPY代码。挂钩AppDomain.CurrentDomain.AssemblyResolve以在运行时解析所需的程序集。
runBoo.cs对应Invoke-JumpScare的C#版本。使用嵌入的Boolang编译器执行shellcode。
runBooAssemblyResolve.csC#代码,嵌入Boolang编译器并执行嵌入的Boolang代码。挂钩AppDomain.CurrentDomain.AssemblyResolve以在运行时解析所需的程序集。
minidump.boo原生Boolang脚本,使用MiniDumpWriteDump转储内存
shellcode.boo原生Boolang脚本,执行shellcode。目前包含3种不同技术(QueueUserAPC、CreateThread/WaitForSingleObject、WriteProcessMemory/CreateRemoteThread)
Invoke-SSharp.ps1从PowerShell中嵌入的编译器执行SSharp。编译不调用csc.exe
Invoke-Boolang.ps1从嵌入的编译器执行Boo代码。它还提供了我在Boolang编译器嵌入PowerShell时发现的一些bug的解决方法。
Invoke-NeoLua.ps1从PowerShell中嵌入的编译器执行Lua代码。

为什么?

.NET DLR简直太疯狂了,它允许你做疯狂的事情,比如将编译器/引擎嵌入到其他.NET语言(如PowerShell和C#)中,同时保持Opsec安全并驻留在内存中。 在IronPython的情况下,你甚至可以拥有我称之为“引擎盗梦空间”的东西:想在一个IPY引擎中嵌入另一个IPY引擎,再嵌入另一个IPY引擎?(yo dawg,我听说你喜欢IPY引擎……)

从业者角度来看,这具有极高的灵活性,并且有许多优势,列举几个:

  1. 开箱即用地访问.NET API,完全不需要通过PowerShell。本质上,使用DLR让你拥有PowerShell的全部能力,但无需PowerShell,而且使用(通常)更容易脚本化的语言(例如Python)

  2. 大量反射/嵌入始终在进行,意味着更多的规避。

  3. 使用DLR你总是绕过AMSI(如果正确执行你的payload),无需混淆、修补等。

  4. 你所有的‘邪恶’代码可以用你嵌入的引擎/编译器的语言编写。如果你通过PowerShell这样做,ScriptBlock日志记录看不到任何东西,因为所有魔法都在DLR中发生。

  5. 通常,所有DLR语言都有一种调用本地方法的方式,要么通过语言本身,要么通过动态编译C#(例如PowerShell的Add-Type)。 如果使用前者,不会调用csc.exe,通常不会写入磁盘,因为语言通过IL代码在内存中生成所有需要的东西。 我们可以“随心所欲地高低切换”(@Op_nomad),这允许我们做所有我们喜欢的好东西(注入shellcode、非托管DLL、加载PE等)

  6. 允许快速重新工具化和payload武器化。无需手动编译。

其他进攻性DLR项目

如果你对此感兴趣,这里还有一些其他尝试武器化DLR的工具:

  • https://github.com/dsnezhkov/typhoon
  • https://github.com/byt3bl33d3r/SILENTTRINITY

致谢

  • @Op_nomad
  • @subtee
  • @pwndizzle
  • @malcomvetter
  • @harmj0y
  • @elitest

参考

公平警告,一旦开始阅读这些内容,你将陷入一个地狱般的兔子洞(里面有真正的恶魔兔子)。

  • https://github.com/boo-lang/boo/wiki/Scripting-with-the-Boo.Lang.Compiler-API
  • https://github.com/boo-lang/boo/wiki/Invoke-Native-Methods-with-DllImport
  • https://github.com/pwndizzle/c-sharp-memory-injection
  • http://www.voidspace.org.uk/ironpython/embedding.shtml
  • http://www.voidspace.org.uk/ironpython/winforms/part10.shtm
  • https://www.codeproject.com/Articles/53611/%2FArticles%2F53611%2FEmbedding-IronPython-in-a-C-Application
  • http://www.voidspace.org.uk/ironpython/ip_in_ip.shtml
  • https://jimshaver.net/2018/02/22/net-over-net-breaking-the-boundaries-of-the-net-framework/

演讲

  • 红队的.NET快速重新工具化 - Circle City Con 2018
  • IronPython...OMFG - Derbycon 2018
  • 用(Iron)Python建立帝国 - Derbycon 2018
下载工具