0%

PoolParty_Windows线程池注入

参考文章

https://mp.weixin.qq.com/s/GEZZ5XPmbJ39c5i9GmvxRA

https://xz.aliyun.com/t/13184 这篇文章也不错 对原文的翻译

https://github.com/SafeBreach-Labs/PoolParty

因为之前没去详细接触过Windows核心编程 线程池这些的 所以再看文章的时候有点地方不太好懂。。

看了下原项目作者的代码也很难懂 https://github.com/0xEr3bus/PoolPartyBof 这个bof的项目则相对好理解些

可以用权限维持时使用该bof注入进程

现在感觉有时候bof确实要好用些 不过自己写起来调试太麻烦 :|

https://mp.weixin.qq.com/s/GEZZ5XPmbJ39c5i9GmvxRA 这篇也解释了实现方法,并将bof项目的代码稍加修改成c,

通过python对shellcode 利用aes 32位随机key进行加密后转base64生成sc.h文件

image-20240204135246901

放到loaderz中解密即可 然后 利用poolparty进行进程注入【当然在注入时 杀软可能会对Explorer.exe等严格把控,需根据情况选择注入进程】

常见的代码注入 主要分三步: 分配/修改空间、写入shellcode、执行进程/线程

正常情况下 申请内容空间或写入shellcode并不会被管控,杀软会在执行进程/线程时进行严格监控。

poolparty 主要利用用户态下 Windows的可信线程池机制 解决了执行时的问题,以规避杀软EDR的检测。

image-20240204135230477

看了下bof中的代码思路:

1.获取进程PID

2.劫持句柄

3.申请shellcode的内存空间

4.写入shellcode

5.执行【主要在这步中有所区别】 这里没具体了解过详细的Windows线程池,所以有些代码看上去有些困难[需要再花费精力去找相关文档

在bof中给出了5种额外的方式

https://github.com/0xEr3bus/PoolPartyBof/blob/main/src/Varient_4.c TP_IO

https://github.com/0xEr3bus/PoolPartyBof/blob/main/src/Varient_5.c TP_ALPC

https://github.com/0xEr3bus/PoolPartyBof/blob/main/src/Varient_6.c TP_JOB

https://github.com/0xEr3bus/PoolPartyBof/blob/main/src/Varient_7.c TP_DIRECT

https://github.com/0xEr3bus/PoolPartyBof/blob/main/src/Varient_8.c TP_TIMER

欢迎关注我的其它发布渠道

------------- 💖 🌞 本 文 结 束 😚 感 谢 您 的 阅 读 🌞 💖 -------------