dllnotification Indextion-新的“无线”过程注入技术的POC 该技术通过在本地和远程过程中利用DLL通知回调的概念来起作用

taibeihacker

Moderator
dllnotification Intionection是一种新的“无线”过程注入技术的POC,它通过利用本地和远程过程中的DLL通知回调的概念来起作用。
随附的博客文章提供更多详细信息:

How It Works?​

dllnotificationitions在远程过程中创建新的LDR_DLL_NOTIFICATION_ENTRY来起作用。它通过修补列表头的LdrpDllNotificationList和列表的第一个条目的List.Flink(现在第二)的List.Blink来手动插入远程LDR_DLL_NOTIFICATION_ENTRY
我们的新的TpWorkCallback将指向一个自定义的蹦床shellcode(使用@c5pider的ShellCodeTemplate项目构建),该ShellCodeTemplate项目将恢复我们的更改并使用RuntimeBroker.exe在新线程中执行恶意壳牌。
在远程过程中手动注册我们的新条目后,我们只需要等待远程进程即可通过加载或卸载一些DLL来触发DLL通知回调。显然,这并不是在每个过程中都会定期发生的,因此需要先前的工作来寻找适合此注射技术的候选者。从我的简短搜索中,似乎explorer.exeRWX是适合此的候选人,尽管我鼓励您也找到其他人。

OPSEC Notes​

这是一个POC。为了使其成为OPSEC安全并逃避AV/EDR产品,需要进行一些修改。例如,在为shellcodes分配内存时,我使用了OpenProcess - 不要懒惰(像我一样)并更改这些。人们可能还想用一些较低级别的API替换ReadProcessMemoryWriteProcessMemoryIndirect Syscalls,并使用HWSyscalls或(无耻插头)010-59000。也许加密外壳码,甚至可以加倍英里,并修改蹦床外壳以适合您的需求,或者至少更改@c5pider的shellCodeTemplate项目中的默认哈希值,该项目被用来创建蹦床shellcode。

Acknowledgments​

@c5pider的ShellCodeTemplate项目,用于创建蹦床壳。同样,对于POC演示视频中使用的破坏C2。 YXEL和@IDOV31对于我们从Cronos使用的二进制模式匹配代码。 @modexpblog用于与此POC中使用的DLL通知回调有关的各种结构定义。 @ninjaparanoid在此POC中使用了有关TPWorkCallbacks的博客文章。 @OnlyMalware对于他的UnregisterallldrregisterDllnotification POC,它给了我一些灵感,并帮助我了解了LDRPDLLNotificationList的某些内部工作。 SEKTOR7用于此POC中使用的Calc壳码。无论如何,它们都很棒,我强烈推荐他们的课程! @x86matthew和@kharosx0的评论(1,2)有关getntDllBase()函数。
 
返回
上方