文章总结: 本文介绍开源后渗透免杀工具damnCoffee,通过将Shellcode藏于PNG尾部并劫持线程上下文执行以绕过杀软。文章详述了其原理、用法及优缺点,指出其适合对抗传统AV的场景,虽存在文件名依赖局限,但可作为红队免杀思路的基础模板。 综合评分: 88 文章分类: 免杀,安全工具,红队,渗透测试
重要提醒
- 目前Releases里提供的damnCoffee是64位版本。如果你的Shellcode是32位的,需要自己去改源代码第137行附近关于设置线程上下文的代码(主要是32位和64位寄存器区别),然后重新编译一个32位版本出来。
- 这工具是开源的。一个开源的后渗透工具,被杀毒软件报毒简直是再正常不过的事了。如果你遇到了bug,或者发现某个杀软版本绕不过,可以截图提交到项目的Issue里。
// damnCoffee 核心执行逻辑片段
// 分配内存并复制Shellcode
LPVOID exec = pVirtualAlloc(nullptr, dataVector.size(), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
memcpy(exec, dataVector.data(), dataVector.size());
// 修改内存属性为可执行
pVirtualProtect(exec, dataVector.size(), PAGE_EXECUTE_READ, &oldProtect);
// 创建挂起线程并劫持其上下文指向Shellcode
HANDLE hThread = pCreateThread(nullptr, 0, ThreadProc, nullptr, CREATE_SUSPENDED, nullptr);
context.Rip = reinterpret_cast
优缺点分析
这个工具的思路很清晰,优缺点也明显。
优点:
-
隐蔽性尚可
:Shellcode与正常图片文件捆绑,静态查杀有一定绕过能力。
-
执行方式非常规
:通过修改已创建(但挂起)线程的上下文来执行代码,比直接
CreateRemoteThread或QueueUserAPC更低调一点。 -
使用简单
:配套了图形化的Helper工具,整个过程基本是“拖拽-点击-重命名-运行”。
-
开源可定制
:代码都在那儿,可以根据自己的需要修改,比如改文件名、改触发方式。
缺点与局限:
-
强依赖文件
:必须在同一目录下存在一个名为
j.png的特定文件。这个行为本身在严格的EDR(端点检测与响应)眼里可能就是个异常点。 -
静态特征未完全消除
:加载器本身的二进制文件,如果杀软更新了特征库,还是可能被直接杀掉。
-
默认配置固定
:图片文件名硬编码,如果目标机器环境限制不能放图片文件,或者需要内存中直接传递Shellcode,就得改代码。
-
仅为Loader
:它只是一个加载器,不包含Shellcode的生成、编码、混淆等功能。你需要自己准备免杀过的Shellcode。
适用场景与总结
damnCoffee适合什么样的场景?
最适合的是后渗透阶段,当你已经获得了一个初步的立足点(比如一个WebShell或一个低权限的Shell),需要上传一个加载器来执行更复杂的Payload(例如提权、横向移动工具),而目标系统上存在传统的杀毒软件(AV),对直接的可执行文件查杀较严。
它更像是一个“快递员”,负责把隐藏好的“货物”(Shellcode)安全地送进内存并拆包执行。货物本身的好坏(免杀程度)决定了最终能否成功。
总的来说,这是一个轻巧、思路不错的工具。它提供的是一种绕过思路的实践,特别是“文件隐藏”加“上下文劫持”的组合。对于红队人员或者安全研究者,可以把它作为一个基础模板,结合其他技术(如过程注入、父进程欺骗等)进行扩展,构建出更适合自己需求的专用加载器。
直接用它来对抗顶级的EDR可能不够,但在某些情况下,对付常见的杀软,或许能给你带来一杯提神的“咖啡”。
获取方式:回复“damnCoffee”获取
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:幻泉之洲 工具党 工具党《damnCoffee:一款绕过杀软的后渗透免杀加载器》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论