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

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

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

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

工具目录

分类

查看所有分类
Loading categories
DllNotificationInjection — 一种新型“无线程”进程注入技术的概念验证,该技术利用本地和远程进程中的DLL通知回调概念。 | Kitploit
工具/GitHubGitHub/dec0ne/dllnotificationinjection
漏洞利用Shellcode红队
GitHubdec0ne/dllnotificationinjection

DllNotificationInjection

一种新型“无线程”进程注入技术的概念验证,该技术利用本地和远程进程中的DLL通知回调概念。

查看仓库
471833年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

DllNotificationInjection

image image

主要贡献者

Dec0ne

描述

DllNotificationInection 是一项新的“无线程”进程注入技术的概念验证,它利用 DLL 通知回调的概念在本地和远程进程中工作。

更详细的配套博文可在此找到:

https://shorsec.io/blog/dll-notification-injection/

它是如何工作的?

DllNotificationInection 通过在远程进程中创建一个新的 LDR_DLL_NOTIFICATION_ENTRY 来工作。它通过修补列表头部的 List.Flink 和列表中第一个条目(现在是第二个)的 List.Blink,手动将其插入到远程的 LdrpDllNotificationList 中。

我们的新 LDR_DLL_NOTIFICATION_ENTRY 将指向一个自定义的跳板 shellcode(基于 @C5pider 的 ShellcodeTemplate 项目构建),该 shellcode 会恢复我们的修改,并使用 TpWorkCallback 在新线程中执行恶意 shellcode。

在手动将新条目注册到远程进程后,我们只需等待远程进程通过加载或卸载某个 DLL 来触发我们的 DLL 通知回调。显然,并非每个进程都会定期发生这种情况,因此需要事先找到适合此注入技术的候选进程。根据我的简要搜索,RuntimeBroker.exe 和 explorer.exe 似乎是合适的候选,尽管我鼓励你也寻找其他进程。

OPSEC 注意事项

这是一个概念验证。为了使其在 OPSEC 上安全且能规避 AV/EDR 产品,需要进行一些修改。例如,我在分配 shellcode 内存时使用了 RWX——不要像我一样懒惰,请修改这些设置。此外,你可能希望用更底层的 API 替换 OpenProcess、ReadProcessMemory 和 WriteProcessMemory,并使用 间接系统调用 或(厚颜无耻地打广告)HWSyscalls。也许可以加密 shellcode,甚至更进一步修改跳板 shellcode 以满足你的需求,或者至少更改 @C5pider 的 ShellcodeTemplate 项目中的默认哈希值(该项目用于创建跳板 shellcode)。

演示

https://github.com/ShorSec/DllNotificationInjection/assets/54464773/96a72dd9-80de-4cb8-ac4a-54dddfecf822

致谢

  • @C5pider 提供的 ShellcodeTemplate 项目,用于创建跳板 shellcode。同时感谢 Havoc C2 在概念验证演示视频中的使用。
  • Yxel 和 @Idov31 提供的二进制模式匹配代码,我们取自 Cronos。
  • @modexpblog 提供的与 DLL 通知回调相关的 各种结构定义,本概念验证中使用了这些定义。
  • @NinjaParanoid 关于 TpWorkCallback 的 博文,本概念验证中使用了相关内容。
  • @onlymalware 提供的 UnregisterAllLdrRegisterDllNotification 概念验证,它给了我一些灵感,并帮助我理解了 LdrpDllNotificationList 的一些内部工作原理。
  • Sektor7 提供的计算器 shellcode,用于本概念验证。他们非常出色,我强烈推荐他们的课程!
  • @x86matthew 和 @Kharosx0 关于 GetNtdllBase() 函数的评论(1、2)。
下载工具