ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

SnakeBackdoor-5后门流量分析与检测实战

SnakeBackdoor-5后门流量分析与检测实战

1. 项目概述:SnakeBackdoor-5流量分析实战

最近在分析一个名为SnakeBackdoor-5的ELF后门样本时,发现其网络通信行为相当隐蔽。这种后门通常会通过加密流量与C2服务器通信,传统杀毒软件很难检测。本文将分享如何通过Wireshark抓包和IDA逆向分析,完整还原这个后门的通信协议和行为特征。

2. 分析环境搭建

2.1 必要工具准备

  • Wireshark 3.6.10(最新稳定版)
  • IDA Pro 7.7(带Hex-Rays反编译器)
  • Ubuntu 20.04虚拟机(分析环境)
  • Kali Linux(流量生成环境)

2.2 样本运行环境隔离

建议使用虚拟机构建封闭测试环境:

  1. 在VMware中创建NAT模式的Ubuntu虚拟机
  2. 禁用虚拟机的共享文件夹功能
  3. 配置防火墙规则只允许特定端口通信

重要提示:分析前务必断开虚拟机与物理网络的连接,防止后门意外连接真实C2服务器

3. 流量捕获与分析

3.1 Wireshark抓包配置

# 只捕获后门可能使用的端口范围 tcp.port >= 40000 && tcp.port <= 50000

3.2 关键流量特征

通过对比分析发现以下特征:

  1. 固定心跳包间隔:每317秒发送一个142字节的TCP包
  2. 数据包长度模式:指令传输时会出现78-142-78的独特长度序列
  3. TLS指纹:使用非常规的TLS1.3扩展字段

3.3 协议逆向技巧

  1. 先过滤出完整会话流:右键对话 → Follow → TCP Stream
  2. 注意观察字节分布:使用Statistics → Packet Lengths分析
  3. 关键字段通常出现在数据包第16-32字节位置

4. IDA静态分析配合

4.1 关键函数定位

通过字符串交叉引用找到:

  • 网络初始化函数:sub_4012A0
  • 加密函数:sub_403D10
  • 命令分发器:sub_404880

4.2 加密算法识别

在0x403D10处发现:

  1. 使用Salsa20算法初始化
  2. 密钥通过SHA-256派生
  3. 每个会话使用不同的IV

4.3 反混淆技巧

遇到控制流混淆时:

  1. 使用IDAPython脚本批量修复
  2. 重点跟踪ECX寄存器的值变化
  3. 注意0xCC字节的出现位置(可能是故意插入的断点)

5. 行为特征总结

经过完整分析,该后门具有以下特点:

  1. 通信阶段:
  • 第一阶段:TCP 443端口TLS握手(伪装HTTPS)
  • 第二阶段:跳转到高端口(47832)进行真实通信
  1. 持久化方式:
  • 创建/etc/.systemd/目录隐藏自身
  • 修改rc.local实现自启动
  1. 数据渗漏特征:
  • 每次传输前会先发送3个字节的"x00xFAxCE"
  • 使用JPEG文件头作为数据包起始标记

6. 检测与防御建议

6.1 网络层检测规则

alert tcp any any -> any [40000:50000] (msg:"SnakeBackdoor5 Heartbeat"; content:"|00 FA CE|"; depth:3; sid:1000001; rev:1;)

6.2 主机层检测指标

  1. 检查异常进程:
# 查找隐藏进程 ps -ef | grep -v "\["
  1. 监控可疑目录:
# 监控系统目录变更 inotifywait -m /etc/systemd /etc/init.d

7. 分析过程中的经验教训

  1. 流量分析时容易忽略的点:
  • DNS隧道检测(注意长域名查询)
  • ICMP载荷数据(可能是命令控制通道)
  1. IDA分析建议:
  • 先运行字符串搜索(Shift+F12)
  • 重点分析导入表中的网络相关API
  • 注意.crt段中的证书数据
  1. 遇到反调试时的对策:
  • 修改ELF头中的PT_NOTE段
  • 使用qemu-user静态运行样本
  • 动态调试时先patch掉ptrace调用
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进