如何检测Sliver C2攻击
字数 1962 2025-08-22 12:22:59
Sliver C2攻击检测与防御指南
0X00 概述
Sliver是一个开源的跨平台C2框架,由Bishop Fox于2019年发布,使用Golang编写,支持Windows、Unix和MacOS平台。作为Cobalt Strike的开源替代方案,Sliver因其开源特性和可扩展性被安全研究人员和攻击者广泛使用。
0X01 Sliver框架简介
主要特点
- 开源且可二次开发
- 支持跨平台编译
- 使用Armory扩展包管理系统
- 支持多种网络协议(HTTP(s)、DNS、TLS等)
- 提供三种主要攻击方法
攻击阶段与工具
- Stage0: 初始入侵(Qakbot、IcedID、Emotet、Trickbot等)
- Stage1: 权限维持(Cobalt Strike、Sliver等)
- Stage2: 权限提升和横向移动(Sliver擅长)
- Stage3: 数据提取(MEGASync、Rclone等)
0X02 Sliver攻击检测方法
方法一:检测PowerShell命令执行
攻击特征:
- 使用
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe - 进程参数:
-NoExit [Console]::OutputEncoding=[Text.UTF8Encoding]::UTF8
检测方法:
- 监控PowerShell作为子进程的进程
- 检测特定可执行文件和进程参数组合
- 监控Sliver执行的恶意命令
- 监控脚本块和命令加载行为
ATT&CK相关:
- DS0009
- DS0017
- DS0022 (EVTX)
方法二:检测令牌窃取
攻击特征:
- 使用
impersonate命令启动提升的命令提示符 - 进程令牌与线程令牌所有者不一致
- 类似Mimikatz的行为模式
检测方法:
- 监控进程令牌操作(OpenProcessToken)
- 检测用户模仿行为(ImpersonateLoggedOnUser)
- 监控令牌复制行为(DuplicateTokenEx)
- 检测权限调整行为(AdjustTokenPrivileges)
典型指标:
- 线程令牌由"NT AUTHORITY\SYSTEM(ImpersonationToken.User)"拥有
- 进程令牌由普通用户账户(如"MSEDGEWIN10\IEUser(OwnerSid)")拥有
方法三:检测Shellcode注入
攻击特征:
- 执行
C:\windows\system32\notepad.exe - 创建具有读写权限的内存区域(VirtualAllocEx, PAGE_READWRITE)
- 写入shellcode(WriteProcessMemory)
- 调整内存权限为执行和只读(PAGE_EXECUTE_READ)
- 创建远程线程执行shellcode(CreateRemoteThread)
关键函数:
// ExecuteShellcodeCmd - Execute shellcode in-memory
func ExecuteShellcodeCmd(cmd *cobra.Command, con *console.SliverClient, args []string) {
// 获取活动会话
// 检查参数
// 执行shellcode
}
// PrintExecuteShellcode - Display result of shellcode execution
func PrintExecuteShellcode(task *sliverpb.Task, con *console.SliverClient) {
// 显示执行结果
}
检测方法:
- 监控notepad.exe异常启动
- 检测内存权限异常变更
- 监控远程线程创建行为
- 检测shellcode写入操作
0X03 网络流量检测
协议与检测方法
| 协议 | 检测方法 |
|---|---|
| HTTP(S) | 1. 监控端口31337上的TLS流量 2. 检测TLS证书颁发者CN=operators和CN=multiplayer组合 3. 基于JARM签名监控 |
| DNS | 1. 监控异常DNS请求 2. 对DNS请求中的域名进行异常检测 |
| TLS | 1. 基于JARM签名监控 2. 对HTTP(S)流量的域和IP地址执行异常检测 |
JARM指纹识别
JARM通过对TLS服务器响应属性的哈希计算生成指纹,可用于识别Sliver C2服务器。可通过Shodan、Censys等工具基于JARM指纹搜索C2服务器。
0X04 防御建议
- EDR部署:部署端点检测与响应解决方案
- 进程监控:重点关注PowerShell、notepad.exe等进程的异常行为
- 内存保护:监控内存权限变更和远程线程创建
- 网络流量分析:实施JARM指纹检测和异常TLS流量监控
- 日志收集:确保Windows事件日志(特别是EVTX)的完整收集和分析
- 威胁情报:利用空间测绘工具(Fofa、Shodan等)追踪已知C2服务器