免杀技术的核心目标是绕过杀软(AV)、终端检测响应(EDR)和云端沙箱的三重检测体系。根据MITRE ATT&CK框架,2025年高级攻击中87%使用多层免杀技术,主要驱动因素包括:
一.检测机制升级
静态特征检测失效:传统哈希匹配检出率降至30%以下
内存扫描常态化:EDR工具内存扫描频率达毫秒级(如CrowdStrike每100ms扫描一次)
行为分析智能化:ATT&CK攻击链覆盖率达98%,重点监控alloc→write→exec行为链
二.攻防成本失衡
防御方部署一套EDR成本超50万,而攻击者构建免杀C2的成本不足5万(Gartner 2025数据)
主流免杀技术体系详解
一、内存操作免杀技术
核心逻辑:规避EDR内存扫描,实现Shellcode隐形驻留。分配RW页写入加密Shellcode→触发PAGE_GUARD异常→切换为RX页执行→恢复权限
技术 | 实现原理 | 对抗效果 |
内存权限切换 |
EDR对RX页扫描绕过率>60% | EDR对RX页扫描绕过率>60% |
内存镜像欺骗 |
将解密后的Shellcode复制到堆/TLS段,清除原始内存痕迹 | 破坏内存特征匹配 |
异常驱动执行 |
注册自定义异常处理器(如SetUnhandledExceptionFilter),故意触发异常跳转执行 | 规避API调用链行为分析 |
关键代码(内存权限切换):
// 设置PAGE_GUARD异常处理
AddVectoredExceptionHandler(1, GuardExceptionHandler);
// 异常触发后修改内存权限
DWORD GuardExceptionHandler(EXCEPTION_POINTERS* pExp) {
if (pExp->ExceptionRecord->ExceptionCode == STATUS_GUARD_PAGE_VIOLATION) {
VirtualProtect(pShellcodeAddr, size, PAGE_EXECUTE_READ, &oldProtect);
return EXCEPTION_CONTINUE_EXECUTION;
}
return EXCEPTION_CONTINUE_SEARCH;
}
二、加载器与进程操作技术
1.进程注入进化
EarlyBird APC注入:在进程初始化阶段注入,规避线程监控
父进程欺骗:以werfault.exe(Windows错误报告)作为父进程,掩盖恶意进程血缘关系
2.系统调用脱钩(Syscall Unhooking)
通过NTDLL未挂钩副本或硬编码SSN(系统服务号)直接发起内核调用
工具链:
SysWhispers3:生成直接系统调用模板
Hell's Gate:动态解析SSN绕过EDR Hook
汇编实现(直接系统调用):
; 绕过用户态Hook的NtAllocateVirtualMemory调用
mov r10, rcx
mov eax, 0x18 ; SSN for NtAllocateVirtualMemory
syscall ; 直接触发系统调用
ret
三、白文件滥用技术(白加黑)
技术本质:利用合法签名程序加载恶意DLL,实现“借壳执行”。
1.经典DLL劫持
恶意DLL置于合法程序同级目录,利用Windows加载顺序规则(应用目录>系统目录)优先加载
高危目标:搜狗升级程序(SGUpdater.exe)、数字签名工具(signtool.exe)
2.分离式加载(2025进化版)
Shellcode隐藏:将加密Shellcode嵌入PE证书表空白区(扩展Attribute Certificate Table大小),不破坏原签名
DLL功能精简:恶意DLL仅保留解密逻辑,核心Payload通过内存映射或网络动态获取
3.无文件落地变种
白文件通过LoadLibrary加载内存中的Shellcode(如PowerShell反射加载)
检测难点:合法进程内存熵值突变需结合时序分析识别
四、网络隐匿技术
1.协议模拟与隐蔽信道
DNS隧道:将C2指令编码为TXT查询(Base32),响应中嵌入命令结果
HTTPS证书克隆:复制合法证书链(如Let's Encrypt),使流量呈现为可信服务
2.流量混淆与抗分析
包大小随机化:MTU分片填充(填充率30%-90%)+ 泊松分布心跳包(λ=0.2-2.0秒)
协议嵌套:
QUIC隧道模拟Chrome流量
ICMP载荷封装(Ping隧道)
3.去中心化C2架构
云服务中转:利用公开笔记网站(如note.ms)传递AES加密指令,360/火绒检出率为0
前沿免杀技术方向
一、AI赋能的动态免杀
-
对抗样本生成:使用GAN网络生成欺骗性代码片段,扰乱ML检测模型特征提取(如ADVERSARIAL_PURPLE框架)
-
行为序列模拟:
LSTM学习合法进程行为模式,生成“低异常”执行链,沙箱逃逸率提升至78%。
二、固件层持久化
UEFIRuntimeDriver注入:修改内核内存保护(SetVirtualAddressMap),向ntoskrnl代码段写入Shellcode
EFI_STATUS efi_main() {
patch_memory(kernel_base+0x123456, payload, sizeof(payload));
}
三、工具链免杀实践
Sliver框架优化:
-
BOF混淆:重编译Mimikatz扩展(powerkatz.dll),移除敏感字符串("Ask debug privilege"→"-")
-
检出率降幅:Defender对混淆后组件检出率下降>90%
防御体系对抗建议
针对上述技术,企业需构建终端-网络-云端联动的防御矩阵:
防御层 | 关键技术 | 对抗目标 |
终端侧 | 内存RASP监控.NET/JVM运行时 | 拦截Shellcode执行(拦截率>94%) |
启用Intel CET/AMD SEV-SNP硬件防护 | 阻断非法控制流转移 | |
网络侧 | 深度包解析(DPI)识别协议异常 | 检测DNSTXT高频请求、ICMP隧道 |
动态证书链验证(非单向校验) | 识别克隆证书 | |
云端 | 行为链分析:监控“白文件→高熵内存→网络连接”时序 | 发现分离式加载攻击 |
进程血缘图谱分析 | 识别伪装父进程(如werfault.exe) |
结语
C2免杀技术已从单一特征规避发展为内存操作、进程欺骗、网络隐匿、AI赋能的多维对抗体系。防御方需摒弃“特征匹配为主”的传统思路,转向行为链分析-硬件信任根-云端情报的三维防护模型。据CrowdStrike统计,2025年具备多层免杀能力的攻击平均需6.2天才能被识别,而联动防御体系可将检测时间压缩至8小时内。攻防博弈的本质是成本对抗——唯有体系化布防,方能打破“易攻难守”的困局。
JDK版本对JNDI漏洞的影响
原文始发于微信公众号(安全驾驶舱):【内网安全】C2木马免杀与通信隐匿
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论