文章总结: 本文介绍了一款多态shellcode生成工具fritter,通过随机化技术有效规避杀毒软件检测,对比传统Donut工具检测率从18/52降至0/62。文章详细展示了工具生成过程、内存特征对比及实测数据,提供GUI和命令行版本工具下载,强调仅限合法授权安全研究使用。 综合评分: 72 文章分类: 红队,免杀,恶意软件,安全工具,二进制安全
[工具发布]多态shellcode生成0/62检测率
原创
陆安予 陆安予
白帽子安全笔记2.0
2026年5月16日 18:12 江苏
在小说阅读器读本章
去阅读
[工具发布]多态shellcode生成0/62检测率
采用多态shellcode将实现内存完全无法检测,绕过基于固定特征的检测。
一、背景
众所周知,Donut生成的shellcode非常容易被检测,一个精准检测规则如下:
meta("shellcode", "Donut");
function detect() {
bDetected = false;
// https://github.com/TheWover/donut/blob/dafea1702ce2e71d5139c4d583627f7ee740f3ae/donut.c#L1235
var bInstCall = Binary.readByte(0);
if (bInstCall != 0xE8) {
return result();
}
if (Binary.readWord(1) != Binary.readWord(5)) {
return result();
}
var callDest = Binary.readDword(1)
// https://github.com/TheWover/donut/blob/dafea1702ce2e71d5139c4d583627f7ee740f3ae/donut.c#L1239
var popECXOffset = callDest + 5; // 1 byte for E8 (call opcode) and 4 bytes for destination offset
if (Binary.readByte(popECXOffset) != 0x59) {
return result();
}
bDetected = true;
var archDetectionOffset = popECXOffset + 1;
var archDetectBytes = Binary.readDword(archDetectionOffset) & 0x00ffffff;
switch (archDetectBytes) {
// https://github.com/TheWover/donut/blob/dafea1702ce2e71d5139c4d583627f7ee740f3ae/donut.c#L1242-L1248
case 0x52515a:
sOptions = "x86";
break;
// https://github.com/TheWover/donut/blob/dafea1702ce2e71d5139c4d583627f7ee740f3ae/donut.c#L1270-L1273
case 0x48c031:
sOptions = "x86 + AMD64";
break;
default:
sOptions = "AMD64";
}
return result();
}
由于Donut每次生成的shellcode特征固定,比如开头必须是e8(CALL),然后连续2个相同数据79 3B 25 01。
意味着内存扫描一看是donut特征,将立即触发报警,直接GG。
donut生成的shellcode固定特征
现在,使用我最近开发的donut-gui生成fscan的shellcode测试下:
donut-gui
接下来,找一个环境验证下这个特征:
donut在内存中的特征
本以为火绒有donut特征,结果发现没加…
那么就测试下其它的,直接丢到virustotal[1]:
donut生成的shellcode检测率
如此高的检测率,符合预期。
二、多态shellcode超越donut
使用更先进的多态shellcode生成,它将在donut上采用更高级的规避技术。
fritter-gui生成shellcode
每次生成的shellcode都不同。每次工具构建都不同。而且载荷更小,比donut小4倍。
每次生成都不相同,无特征可循
接下来直接丢到virustotal[2],直接秒杀全球杀软,这还是未混淆的fscan。
多态shellcode秒杀全场
同样的测试下运行,十分流畅。
fritter在内存中的特征
三、总结
使用多态shellcode工具将大幅改进donut特性,毫无疑问是红队人员的必备利器。这里我简要对比下:
| 序号 | donut | fritter | | — | — | — | | 特征 | 特征固定 | 随机 | | 大小 | 47.9M | 14M | | 检测率 | 18/52 | 0/62 |
本文所有涉及工具均公开,清单如下,将放在武器库中供红队人员测试研究:
| 序号 | 工具名 | 用途 | | — | — | — | | 1 | donut-gui.exe | donut的gui版本 | | 2 | fritter.exe | 命令行版本 | | 3 | fritter-gui.exe | fritter的gui版本 | | 4 | fscan.exe | 未混淆的fscan | | 5 | fscan-ob.exe | 混淆处理后的fscan,直接使用 | | 6 | fscan_donut.bin | fcan的shellcode | | 7 | fscan_fritter.bin | fcan的shellcode | | 8 | shellcodeTester.exe | 加载shellcode |
四、最近视频
另外,最近也更新了许多视频,原创文章更新不会那么频繁,但有原创时会发布。
- • 危险的PDF文件,Adobe高危漏洞[3]
- • 无特征载荷绕过全球杀毒软件[4]
- • shellcode/汇编/加载器是什么?怎么用?[5]
五、免责声明
本文涉及方案仅限合法授权的安全研究、渗透测试用途,使用者须确保符合《网络安全法》及相关法规。具体条款如下:
- • 仅可用于已获得书面授权的目标系统测试;
- • 遵守法律法规,不得用于侵犯他人隐私或数据窃取;
本人不承担因用户滥用本软件导致的任何后果。使用即视为同意并接受上述条款。
引用链接
[1] : https://www.virustotal.com/gui/file/d8167724cd7f018fd412b2c11bbcf72d5b801ea6a9111d858a84d75069243578?nocache=1
[2] : https://www.virustotal.com/gui/file/323b52fd9f771f8cac150d51c118dfe6788ad7ba21c4202ad03a3b3e8e18c201?nocache=1
[3] 危险的PDF文件,Adobe高危漏洞: https://v.douyin.com/Fj072JVEWGE
[4] 无特征载荷绕过全球杀毒软件: https://www.bilibili.com/video/BV19A5G6fEQo
[5] shellcode/汇编/加载器是什么?怎么用?: https://www.bilibili.com/video/BV1RU5A6TENK/
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:白帽子安全笔记2.0 陆安予 陆安予《[工具发布]多态shellcode生成0/62检测率》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论