
Pulse Secure Connect の認証後 RCE 脆弱性のエクスプロイト
Pulse Secure Pulse Connect Secure バージョン9.0RX(9.0R3.4未満)、8.3RX(8.3R7.1未満)、8.2RX(8.2R12.1未満)、8.1RX(8.1R15.1未満)、および Pulse Policy Secure バージョン9.0RX(9.0R3.2未満)、5.4RX(5.4R7.1未満)、5.3RX(5.3R12.1未満)、5.2RX(5.2R12.1未満)、5.1RX(5.1R15.1未満)において、管理 Web インターフェースでは、認証済みの攻撃者がコマンドを注入・実行できるようになっています。
このエクスプロイトは、Post-Auth Remote Code Execution Vulnerability を利用し、SSH 設定を変更してユーザーが VPN アプライアンス自体に root としてログインできるようにします。新しい SSH 設定ファイルと authorized_keys ファイルをダウンロードし、元のファイルをバックアップした上で古いファイルを上書きします。その後、sshd-ive に SIGHUP を送信してプロセスを再起動し、新しい設定を読み込みます。
このエクスプロイトを使用するには、以下の項目を変更する必要があります。
対象のホスト:
...
host = 'REPLACE-WITH-IP-OR-FQDN' # エクスプロイト対象のホスト
...
VPN アプライアンスの管理者ログイン資格情報:
# ログイン資格情報
user = 'admin' # デフォルトのユーザー名
password = 'password' # デフォルトのパスワード
ファイルをダウンロードするホスト:
# Curl に必要
downloadHost = '' # Webサーバーを実行しているホストのIPまたはFQDN
port = '' # Webサービスが動作しているポート。文字列である必要があるため引用符で囲む。
これらを変更すれば、問題なくエクスプロイトを実行できるはずです。システムが読み取り専用の場合は、コードを修正してシステムを読み書き可能としてマウントする必要があります。私はこれを行いません。標的とするシステムについての知識が必要です。
デモは以下をご覧ください:
Alyssa と私が執筆したブログ記事はこちらでご覧いただけます。