shellcode免杀教程
三年前我拿到一个目标服务器的杀教权限,想弹个shell回来。杀教结果杀软直接给我拦了,杀教payload落地瞬间被删,杀教日志里写着“Trojan:Win32/Meterpreter”。杀教那会儿我意识到,杀教光会打点没用,杀教免杀才是杀教真正的技术分水岭。
shellcode免杀的杀教核心就一句话:让特征码失效。杀软查你靠的杀教是静态特征和动态行为,静态特征就是杀教文件里的字节序列,动态行为就是杀教shellcode跑起来时的API调用套路。所以思路也简单——要么改字节,杀教要么藏行为。杀教
先说静态免杀。杀教最笨也最有效的方法是编码+解码器。你把shellcode用XOR或者AES加密,前面放一段解码器代码,运行时先解码再执行。但别用网上现成的模板,那些解码器本身早就被杀软标记了。我习惯自己写个随机生成解码器的脚本,每次生成不同的加密算法和密钥,甚至故意插入一些垃圾指令来混淆反汇编引擎。
有个细节容易被忽略:shellcode的入口点。杀软会扫描PE文件的入口点附近有没有可疑的跳转指令。你可以在入口点先放一段无意义的代码,比如计算斐波那契数列,跑完再跳转到真正的payload。这叫“入口点模糊”,对付静态扫描很管用。
动态免杀更麻烦。现在主流杀软都有沙箱和内存扫描,你的shellcode一旦在内存中被识别为恶意模式,照样被干掉。我常用的招是“分阶段加载”——把shellcode切成几段,分别用不同线程在随机时间点加载到内存,最后用信号量拼接执行。这样沙箱里的时间监控会失效,因为单看任何一个时间点,内存里都没有完整的恶意代码。
另一个技巧是API调用混淆。杀软会监控VirtualAlloc、WriteProcessMemory这类敏感API。别直接调,用间接系统调用,或者通过syscall指令自己构造调用链。我写过一个小工具,能从ntdll.dll里动态提取系统调用号,绕过用户态hook。这招对很多企业级EDR都有效,因为它们的hook主要挂在用户态。
但你别指望一套免杀吃一辈子。杀软更新极快,上周还免杀的样本这周就可能被查。我的习惯是每次渗透前,先花30分钟用目标常用的杀软引擎做本地扫描测试,比如卡巴、火绒、Defender,跑一遍再上线。真到实战里,宁可多花时间做免杀,也别抱着侥幸心理直接扔原payload。
说个真实案例。去年有个红队项目,目标装了某国产终端安全管理软件,带行为沙箱。我试了三种常规免杀都被查,最后用了“白文件侧载”的思路——找一个目标系统上本来就有的合法exe,把shellcode藏进它的资源节里,运行时通过加载资源的方式提取并执行。因为exe本身有正规数字签名,杀软对它的信任度很高,资源节里的内容反而很少深查。
免杀这条路上没有银弹。你只能不断测试、调整、再测试。有时候一个看似完美的方案,换个环境就翻车。但正是这种对抗感让人上瘾——你永远在跟杀软工程师斗智斗勇。工具是死的,思路是活的,把每个环节都当成可以手动调整的积木,比到处找现成免杀工具靠谱得多。
最后提醒一句,别在真实环境里拿免杀技术做非法事。写这篇文章纯粹是为了技术探讨,红队演练和渗透测试请务必拿到授权。
(责任编辑:知识)
-
冰场中央,苏菲亚的脚尖刚点过冰面,旋转的裙摆就带起一片细碎的冰晶。她没穿那件镶着金边的皇家礼服,换了身银白色的训练服,发辫里编着淡蓝色的丝带——这是她第一次以非公主身份参加皇家冰舞节。 观众席上,安柏
...[详细]
-
```html 知乎的匿名回答,发出去之后,你自己也找不到。这不是bug,是设计。 我去年在“你有哪些不敢让熟人知道的秘密”那个问题下写过一个回答,匿名。写的时候挺爽,发完就后悔了——我想回去看看有没
...[详细]
-
防火墙日志里跳出一条异常记录,某个内网IP在凌晨三点向境外地址传输了2.3GB数据。你盯着屏幕,得在十分钟内判断这是误报还是真实入侵。这种时刻,学校教的那些理论能帮上多少忙,全看你平时积累的功底。 网
...[详细]
-
一条来自快递公司的短信,可能比你自己更清楚你住在哪里、买了什么、什么时候在家。这次曝出来的数字是45亿条。不是45万,不是4500万,是45亿。什么概念?全国人均摊上三份还有余。 事情最早是从境外一个
...[详细]
-
论坛死没死?答案取决于你问谁。十年前混天涯、猫扑的老网民会给你一个哀伤的眼神,然后缓缓吐出两个字:“早凉了。”可你要是打开某个垂直技术社区,或者那种藏在高校角落、需要邀请码才能进的小众BBS,会发现里
...[详细]
-
Log4j2 那个漏洞爆出来的时候,我正蹲在工位上啃外卖。手机震个不停,群里有人甩了条链接,说“赶紧看,这玩意儿能直接RCE”。点开一看,CVE-2021-44228,评分10.0。当时第一反应不是慌
...[详细]
-
邵阳的电话区号是0739。这五个数字,对很多在外地工作的邵阳人来说,比身份证号还熟悉。拨通它,意味着电话那头是家乡。 我第一次记住0739,是2003年在深圳宝安的一家电子厂。车间里禁止打手机,下班后
...[详细]
-
上个月,一位做母婴电商的朋友差点栽了跟头。买家下单了12罐进口奶粉,收货后第三天申请“仅退款”,理由是“孩子过敏”。朋友要求提供医院证明,对方直接甩来一张模糊的聊天截图,平台客服介入后判了退款。货没退
...[详细]
-
58求职网,这个名字听起来像个老派的招聘平台,但它的实际处境,比名字要拧巴得多。我去年帮一个朋友改简历时,顺手注册过一回,那体验像走进一家十年前装修的网吧——机器能跑,但屏幕上的灰尘和键盘上的烟味,都
...[详细]
-
打开世纪佳缘的注册页面,第一步不是填年龄收入,是选“我是替自己找”还是“替儿女找”。这个细节比任何行业报告都说明问题——中国相亲网站的真正主力用户,很多时候不是单身本人,是他们的父母。 我见过一位上海
...[详细]

2018国产对白
为什么linkedin打不开了
cisp pte 国家注册渗透测试工程师
微信抽奖小程序怎么内定
链家网暴力破解
