从源码到实战:OperatorsKit中InjectPoolParty的线程池注入原理
从源码到实战OperatorsKit中InjectPoolParty的线程池注入原理【免费下载链接】OperatorsKitCollection of Beacon Object Files (BOF) for Cobalt Strike项目地址: https://gitcode.com/gh_mirrors/op/OperatorsKitOperatorsKit是一个专注于Cobalt Strike Beacon Object Files (BOF)开发的开源项目其中InjectPoolParty模块提供了通过Windows线程池实现shellcode注入的高级技术。本文将从核心原理到实战应用深入解析这一模块如何利用系统原生机制实现隐蔽的代码执行。线程池注入现代对抗中的技术优势在传统注入技术如CreateRemoteThread普遍被EDR监控的背景下线程池注入凭借其系统原生性和低检测性成为高级渗透测试的优选方案。InjectPoolParty模块通过三种不同的线程池利用方式TP_TIMER/TP_DIRECT/TP_WORK实现无创建线程API调用的代码注入有效规避常规安全检测。核心优势解析无明显恶意API调用避免使用CreateRemoteThread等敏感函数系统行为模拟利用Windows线程池管理机制行为更接近正常进程多向量注入支持提供三种不同注入路径适应不同环境场景InjectPoolParty的技术实现架构InjectPoolParty的核心实现位于KIT/InjectPoolParty/injectpoolparty.c文件中主要包含四大功能模块进程句柄劫持、内存操作、线程池结构操作和注入向量管理。关键数据结构定义模块通过injectpoolparty.h定义了多种Windows内核结构的映射如线程池对象FULL_TP_POOL、工作项FULL_TP_WORK和定时器FULL_TP_TIMER等这些结构是实现线程池劫持的基础typedef struct _FULL_TP_POOL { struct _TPP_REFCOUNT Refcount; union _TPP_POOL_QUEUE_STATE QueueState; struct _TPP_QUEUE* TaskQueue[3]; struct _TPP_TIMER_QUEUE TimerQueue; // 更多结构成员... } FULL_TP_POOL, * PFULL_TP_POOL;这些结构定义使模块能够直接操作进程内存中的线程池数据为后续的代码注入铺平道路。进程句柄劫持技术InjectPoolParty通过HijackProcessHandle函数实现目标进程句柄的获取这是实现跨进程注入的关键步骤HANDLE HijackProcessHandle(PWSTR targetType, HANDLE targetProcess, DWORD accessRights) { // 通过NtQueryInformationProcess枚举进程句柄 // 匹配目标类型如TpWorkerFactory、IRTimer // 复制具有所需访问权限的句柄 }该函数利用NtQueryInformationProcess获取进程句柄表通过对象类型匹配如TpWorkerFactory筛选出可用于注入的线程池相关句柄避免直接打开敏感句柄带来的检测风险。三种注入向量的实现原理InjectPoolParty提供三种不同的线程池注入方式适应不同的系统环境和防御机制。TP_WORK工作项队列注入实现路径RemoteTpWorkInsertion函数核心原理通过操作线程池工作项队列将shellcode作为工作项插入执行队列关键步骤读取目标进程的线程池结构信息创建恶意工作项FULL_TP_WORK并设置回调为shellcode地址修改队列链表指针将恶意工作项插入高优先级任务队列pTpWork-Task.ListEntry.Flink TargetTaskQueueHighPriorityList; pTpWork-Task.ListEntry.Blink TargetTaskQueueHighPriorityList;这种方式利用系统线程池调度机制使shellcode在正常工作线程中执行具有极高的隐蔽性。TP_TIMER定时器事件注入实现路径RemoteTpTimerInsertion函数核心原理通过构造定时器对象将shellcode作为定时回调执行与工作项注入相比定时器注入增加了时间维度控制可用于实现延迟执行或周期性任务LARGE_INTEGER ulDueTime { 0 }; ulDueTime.QuadPart Timeout; // 设置超时时间 NtSetTimer2_t pNtSetTimer2 (NtSetTimer2_t)GetProcAddress(...); pNtSetTimer2(hTimer, ulDueTime, 0, Parameters);TP_DIRECTI/O完成端口注入实现路径RemoteTpDirectInsertion函数核心原理利用I/O完成端口机制将shellcode作为I/O完成回调执行这种方式通过ZwSetIoCompletion设置I/O完成端口的回调函数当有I/O操作完成时触发shellcode执行Direct.Callback shellcodeAddress; // 设置回调为shellcode地址 PTP_DIRECT RemoteDirectAddress VirtualAllocEx(...); WriteProcessMemory(hTargetPid, RemoteDirectAddress, Direct, sizeof(TP_DIRECT), NULL); ZwSetIoCompletion(hIoCompletion, RemoteDirectAddress, 0, 0, 0);完整注入流程解析InjectPoolParty的主函数go实现了完整的注入流程从参数解析到最终执行可分为四个阶段1. 参数解析与初始化BeaconDataParse(parser, args, len); option BeaconDataExtract(parser, NULL); // 注入方式(TP_TIMER/TP_DIRECT/TP_WORK) pid BeaconDataInt(parser); // 目标进程ID code BeaconDataExtract(parser, code_len); // shellcode数据2. 目标进程内存操作通过WriteCode函数在目标进程中分配内存并写入shellcode设置适当的内存保护属性PVOID WriteCode(HANDLE hProc, unsigned char * code, unsigned int code_len) { pAddress VirtualAllocEx(hProc, NULL, code_len, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); WriteProcessMemory(hProc, pAddress, code, code_len, NULL); VirtualProtectEx(hProc, pAddress, code_len, PAGE_EXECUTE_READ, dwOld); return pAddress; }3. 注入向量选择与执行根据输入参数选择相应的注入方式以TP_WORK为例if (strcmp(option, TP_WORK) 0) { hWorkerFactory HijackProcessHandle(LTpWorkerFactory, hProc, WORKER_FACTORY_ALL_ACCESS); RemoteTpWorkInsertion(hWorkerFactory, pAddress, hProc); }4. 资源清理与结果反馈完成注入后清理句柄资源并通过BeaconPrintf返回执行结果BeaconPrintf(CALLBACK_OUTPUT, Successfully injected code in process ID [%d] at memory address [%p]., pid, pAddress);实战应用与注意事项环境准备使用InjectPoolParty前需准备以下环境Cobalt Strike 4.0环境已编译的BOF文件可通过KIT/InjectPoolParty/bofcompile.bat编译目标系统需为Windows 7及以上版本支持线程池API基本使用方法在Cobalt Strike中加载OperatorsKit.cna后可通过以下命令使用InjectPoolPartyinjectpoolparty [注入方式] [目标PID] [shellcode]常用注入方式参数TP_WORK工作项队列注入推荐默认使用TP_TIMER定时器事件注入适合延迟执行TP_DIRECTI/O完成端口注入适合I/O密集型进程检测规避建议为提高注入成功率建议选择系统进程或常用应用进程作为目标如svchost.exe、explorer.exe根据目标进程特性选择合适的注入向量结合内存加密技术保护shellcode免被静态分析总结与扩展InjectPoolParty作为OperatorsKit项目的重要模块展示了如何通过深入理解Windows内核机制实现高级代码注入技术。其多向量注入设计不仅提供了灵活的使用选择也为安全研究人员提供了对抗现代防御机制的新思路。项目后续可扩展方向增加更多线程池利用向量如TP_WAIT实现动态注入向量选择集成shellcode变形功能通过学习和研究InjectPoolParty的实现安全从业者可以更深入地理解Windows系统内部机制提升在复杂环境下的渗透测试能力。完整源码可参考项目中的KIT/InjectPoolParty目录建议结合Windows内核文档进行深入分析。【免费下载链接】OperatorsKitCollection of Beacon Object Files (BOF) for Cobalt Strike项目地址: https://gitcode.com/gh_mirrors/op/OperatorsKit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

基于C++语言实现图书管理系统

基于C++语言实现图书管理系统

代码功能分析该程序是一个简单的图书管理系统,基于C实现,采用结构体数组存储图书信息,支持添加、删除、查找、清空、修改和显示图书功能。以下是核心模块的说明和优化建议:关键功能模块数据结构Person结构体存储单本图书信息&…

2026/8/15 19:48:13 阅读更多 →
什么是Go语言突变测试?go-mutesting让你的测试质量提升300%的终极指南

什么是Go语言突变测试?go-mutesting让你的测试质量提升300%的终极指南

什么是Go语言突变测试?go-mutesting让你的测试质量提升300%的终极指南 【免费下载链接】go-mutesting Mutation testing for Go source code 项目地址: https://gitcode.com/gh_mirrors/go/go-mutesting Go语言突变测试(Mutation Testing&#xf…

2026/8/15 19:48:13 阅读更多 →
SynologyCloudflareDDNS脚本原理解析:从域名解析到IP自动更新的完整流程

SynologyCloudflareDDNS脚本原理解析:从域名解析到IP自动更新的完整流程

SynologyCloudflareDDNS脚本原理解析:从域名解析到IP自动更新的完整流程 【免费下载链接】SynologyCloudflareDDNS 📜 Cloudflare DDNS script for Synology 项目地址: https://gitcode.com/gh_mirrors/sy/SynologyCloudflareDDNS SynologyCloudf…

2026/8/15 19:48:13 阅读更多 →

最新新闻

combo实战:5分钟快速上手模型组合,让你的分类器性能飙升

combo实战:5分钟快速上手模型组合,让你的分类器性能飙升

combo实战:5分钟快速上手模型组合,让你的分类器性能飙升 【免费下载链接】combo (AAAI 20) A Python Toolbox for Machine Learning Model Combination 项目地址: https://gitcode.com/gh_mirrors/comb/combo combo是一个基于Python的机器学习模型…

2026/8/15 20:32:27 阅读更多 →
c语言中函数传递二级指针,修改指针指向

c语言中函数传递二级指针,修改指针指向

#include <stdio.h>void try_change_ptr(int *p) {// 发现p指向的地址和ptr指向的地址一样&#xff0c;但是p本身的地址和ptr本身的地址不一样printf("Inside function, p %p, &p %p\n", (void *)p, &p);// 所以可以修改p指向的内容*p 1;// 但修改不…

2026/8/15 20:32:27 阅读更多 →
kubesphere-v4.1.2离线安装

kubesphere-v4.1.2离线安装

kubesphere-v4.1.2离线安装 网上已经有很多安装部署kubesphere的安装部署教程了&#xff0c;我这主要是提供一套安装包&#xff0c;离线安装包链接我放到文章末尾了,安装包比较大。自己做的离线安装包&#xff0c;亲测有效。 1. 操作系统 操作系统&#xff1a;ubuntu22.04 、ce…

2026/8/15 20:32:27 阅读更多 →
Zookeeper - Curator 实现 Watcher 的优雅监听与封装

Zookeeper - Curator 实现 Watcher 的优雅监听与封装

&#x1f44b; 大家好&#xff0c;欢迎来到我的技术博客&#xff01; &#x1f4da; 在这里&#xff0c;我会分享学习笔记、实战经验与技术思考&#xff0c;力求用简单的方式讲清楚复杂的问题。 &#x1f3af; 本文将围绕Zookeeper这个话题展开&#xff0c;希望能为你带来一些启…

2026/8/15 20:32:27 阅读更多 →
odd的第一篇博客

odd的第一篇博客

8

2026/8/15 20:31:27 阅读更多 →
LLaMA 学习笔记

LLaMA 学习笔记

目录 llama_cpp LLaMA模型结构&#xff1a; 模型微调手册&#xff1a; 显存占用&#xff1a; 推理示例&#xff1a; 指定位置加载模型 测试ok&#xff1a; 模型下载&#xff1a; llama-stack 下载 modelscope 下载 LLaMA 优化技术 RMSNorm SwiGLU 激活函数 旋转位…

2026/8/15 20:31:27 阅读更多 →

日新闻

内景 空间站内部 中国空间站 太空 内仓

内景 空间站内部 中国空间站 太空 内仓

本项目为前几天收费帮学妹做的一个项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 空间站内部 中国空间站 太空 内仓 地址&#xff1a;本地PC端运行&#xff08;或Web…

2026/8/15 0:00:30 阅读更多 →
重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口&#xff1a;3个突破性场景让通达信数据读取更智能 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 当我们面对海量金融数据时&#xff0c;传统的数据获取方式往往让我们陷入困境—…

2026/8/15 0:00:30 阅读更多 →
一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

快消品&#xff08;FMCG&#xff09;是流通速度较快、竞争较为激烈的行业之一。一瓶饮料从出厂到消费者手中&#xff0c;往往只有几十天甚至几天的周转窗口。这决定了快消行业的仓储管理系统&#xff08;WMS&#xff09;与制造业、电商行业存在明显区别&#xff1a;它不仅需要管…

2026/8/15 0:02:30 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑&#xff1a;baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码&#xff08;维护中 rm repo&#xff09; 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片&#xff1a;Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/15 12:59:14 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身&#xff0c;而应重视模型外的系统搭建&#xff0c;即Harness。提出AgentModelHarness的实用公式&#xff0c;详细介绍Harness的四个层次&#xff1a;持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/14 13:40:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/14 14:06:45 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/15 2:35:29 阅读更多 →