如何检测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

检测方法

  1. 监控PowerShell作为子进程的进程
  2. 检测特定可执行文件和进程参数组合
  3. 监控Sliver执行的恶意命令
  4. 监控脚本块和命令加载行为

ATT&CK相关

  • DS0009
  • DS0017
  • DS0022 (EVTX)

方法二:检测令牌窃取

攻击特征

  • 使用impersonate命令启动提升的命令提示符
  • 进程令牌与线程令牌所有者不一致
  • 类似Mimikatz的行为模式

检测方法

  1. 监控进程令牌操作(OpenProcessToken)
  2. 检测用户模仿行为(ImpersonateLoggedOnUser)
  3. 监控令牌复制行为(DuplicateTokenEx)
  4. 检测权限调整行为(AdjustTokenPrivileges)

典型指标

  • 线程令牌由"NT AUTHORITY\SYSTEM(ImpersonationToken.User)"拥有
  • 进程令牌由普通用户账户(如"MSEDGEWIN10\IEUser(OwnerSid)")拥有

方法三:检测Shellcode注入

攻击特征

  1. 执行C:\windows\system32\notepad.exe
  2. 创建具有读写权限的内存区域(VirtualAllocEx, PAGE_READWRITE)
  3. 写入shellcode(WriteProcessMemory)
  4. 调整内存权限为执行和只读(PAGE_EXECUTE_READ)
  5. 创建远程线程执行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) {
    // 显示执行结果
}

检测方法

  1. 监控notepad.exe异常启动
  2. 检测内存权限异常变更
  3. 监控远程线程创建行为
  4. 检测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 防御建议

  1. EDR部署:部署端点检测与响应解决方案
  2. 进程监控:重点关注PowerShell、notepad.exe等进程的异常行为
  3. 内存保护:监控内存权限变更和远程线程创建
  4. 网络流量分析:实施JARM指纹检测和异常TLS流量监控
  5. 日志收集:确保Windows事件日志(特别是EVTX)的完整收集和分析
  6. 威胁情报:利用空间测绘工具(Fofa、Shodan等)追踪已知C2服务器

0X05 参考资源

  1. Microsoft Security Blog: Looking for the Sliver lining
  2. Immersive Labs: Detecting and Decrypting Sliver C2
  3. Sliver GitHub仓库(分析源代码)
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) 关键函数 : 检测方法 : 监控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服务器 0X05 参考资源 Microsoft Security Blog: Looking for the Sliver lining Immersive Labs: Detecting and Decrypting Sliver C2 Sliver GitHub仓库(分析源代码)