一、什么是 C2 ?
Command and Control(命令与控制)的缩写,是指攻击者用来远程控制被入侵设备(如计算机、服务器等)的通信架构。C2 攻击 是指攻击者在目标系统中植入远程控制恶意软件(如木马、僵尸网络、后门),然后通过 C2 服务器 远程指挥被感染的设备执行各种恶意活动。
主流 C2 工具示例:Cobalt Strike(CS)
二、C2 免杀 主要针对 Windows
主要原因如下:
1、目标群体多
Windows 在企业、政府、个人用户中的市场占有率最高;
红队、APT、恶意攻击者最常面对的是 Windows 主机。
2、杀软与EDR防护机制强
Windows 系统中广泛部署了:
杀毒软件(如 Defender、360、卡巴等);
EDR 系统(如 CrowdStrike、SentinelOne、火绒终端防护)。
攻击者必须开发出各种免杀技巧绕过检测。
3、Windows 系统机制更复杂
有大量易于利用的 API(如 APC、DLL注入、WMI、COM);
系统自带的“白利用工具”丰富(LOLBAS 工具集);
支持 PE 文件、Shellcode、DLL、反射加载等多样的攻击载体。
4、其他平台也有免杀需求,但相对较少
|
|
|
---|---|---|
Linux |
|
|
macOS |
|
|
Android/iOS |
|
|
三、C2 免杀 相关概念
C2免杀的制作主要围绕以下三个层面:
1、Shellcode
Shellcode 是精心构造的二进制指令集,通常用于漏洞利用或恶意软件中,直接在目标系统的处理器上运行,常用于绕过安全机制以执行恶意操作(如打开命令行“Shell”,故名Shellcode)。
下图为CS生成的shellcode示例:
.c文件(可读)
.bin文件(不可读,但是含有的字符串部分可读)
2、Loader
什么是加载器(Loader)?
操作系统有操作系统的加载器;软件层面,开发中不同语言有不同语言的加载器...
它是程序运行中不可或缺的一个步骤,加载器会将程序置放在存储器中,让它开始运行。加载程序的步骤包括,读取可执行文件,将可执行文件的内容写入存储器中,之后开展其他所需的准备工作,准备让可执行文件运行。当加载完成之后,操作系统会将控制权交给加载的代码,让它开始运作。
加载器本质上就是一段专门设计的代码!就是一个“迷你程序”(比如Windows的Loader
、安卓的ClassLoader
)。
从开机到玩游戏,背后都是各种加载器代码在默默干活
那么,在C2免杀中,加载器又是什么,起什么作用?
Github上关于加载器的一些项目:
https://github.com/knownsec/shellcodeloader
https://github.com/xf555er/ShellcodeLoader
3、exe
可执行PE文件,可进行降熵、签名等一系列操作
四、杀软检测
通常情况下,杀软检测流程:签名检测→静态分析→本地动态分析→云端/沙箱分析
1、签名检测
即特征匹配,这种方式主要依赖人工分析后生成的特征值,例如常见的MD5指纹。当一些知名工具如 fscan、毒液等被部署到系统中时,往往会立刻被查杀,因为它们的哈希值已被安全厂商收录到病毒特征数据库中。这类库通常来源于对 GitHub 等公开平台工具的反向分析。应对这一策略的方式比较直接:只需对工具进行简单修改或重新编译,以改变其哈希值,即可绕过检测。
2、静态分析
在不执行程序的前提下,杀软会对文件进行深入的内容检查,比如反编译、提取可疑字符串、识别代码模式等。即便MD5值已变,若程序内部仍包含显著的恶意标志,也可能被拦截。要规避这一层,常用的方式包括对代码或数据段进行加密、字符串混淆等静态防护手段。
3、本地动态分析
在这一阶段,杀软会在本机或者虚拟环境中模拟执行目标程序,实时监测其行为,尤其是API调用链。例如,如果检测到程序连续进行内存分配、写入并执行操作,很可能被认为是可疑行为模式。为此,可采用API加密调用、函数重写、钩子绕过等技术手段来规避。
4、云端/沙箱动态分析
当本地资源不足以做出判断时,部分杀软会将可疑样本上传至云端或远程沙箱进行更深层次的行为模拟分析。这类分析环境更贴近真实系统,因此需要更复杂的免杀策略,包括环境检测、行为延迟触发、反沙箱机制等。
五、免杀加载器编写
当前免杀与检测的核心攻防均围绕以下三个步骤进行对抗:
1、对shellcode进行处理(如加密、混淆、编码或分离等);
2、分配可执行的内存空间 ,将处理后的shellcode写入内存;
3、执行该内存区域中的shellcode
结合本文第三部分免杀制作的三个层面,免杀技术可以总结为“三个层面”+“三个步骤”。
六、结尾
免杀效果通常受多方面影响,没有哪一种技术或者手段能够通吃,通常需要多种手段结合才能最终实现免杀;其次,实战中面临的环境也不一样,不同的杀软效果也不一样,具体问题还需具体分析。本系列文章以技术的实现为主,验证时讲求点到即可,以此表达一项技术的有效性。
原文始发于微信公众号(仇辉攻防):【免杀】C2免杀技术(一)概念篇
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论