参考文章
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文件

放到loaderz中解密即可 然后 利用poolparty进行进程注入【当然在注入时 杀软可能会对Explorer.exe等严格把控,需根据情况选择注入进程】
常见的代码注入 主要分三步: 分配/修改空间、写入shellcode、执行进程/线程
正常情况下 申请内容空间或写入shellcode并不会被管控,杀软会在执行进程/线程时进行严格监控。
poolparty 主要利用用户态下 Windows的可信线程池机制 解决了执行时的问题,以规避杀软EDR的检测。

看了下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