
THMルームの脆弱性キャップストーンとCVE-2018-16763向けエクスプロイトスクリプトに関する解説
THMルーム「Vulnerability Capstone」& CVE-2018-16763のエクスプロイトスクリプトに関する解説。
私はこの脆弱性の発見について功績を主張しません。以下の方々に感謝します。
脆弱性発見:
0xd0ff9
TryHackMe ルーム & 作者:
https://tryhackme.com/room/vulnerabilitycapstone
https://tryhackme.com/p/cmnatic
参考文献:
https://github.com/noraj/fuelcms-rce/blob/master/exploit.rb
https://github.com/daylightstudio/FUEL-CMS/issues/478
https://packetstormsecurity.com/files/164756/Fuel-CMS-1.4.1-Remote-Code-Execution.html
1. リモートコード実行
Fuel CMSはWebアプリケーション向けのコンテンツ管理システムです。バージョン1.4.1では、任意のPHPコードを評価/実行できるRCE脆弱性が2つの異なる経路で存在します。最初のRCE経路は、フィルターデータパラメーターを使用した/fuel/pages/select/へのGETリクエストです。2番目の経路は、データパラメーターを使用した/fuel/previewへのPOSTリクエストです。インターネットでしばらく検索しましたが、残念ながら脆弱性の箇所を示すソースコードを見つけることができませんでした。私の腕前が悪いのは承知しています…笑。では、解説に進みます!
まずはポートスキャンで攻撃対象の全体像を把握しましょう。私は、nmapで絞り込んだスキャンを行う前に、rustscanでターゲットの概要を取得するのが好きです。

標準的な感じですね。これらのポートではSSHとHTTPが動いていると思いますが、より具体的な情報を得るためにnmapでさらにスキャンを実行します。

SSHとHTTPが標準ポートで動作していることがわかりました。それではWebページを見てみましょう!

WebサーバーはFuel CMSバージョン1.4をホストしています。このバージョンはPHPコード評価を介したコマンドインジェクションに対して脆弱です。以下にあるNVDのCVEを見てみましょう。

このソフトウェアには複数のエクスプロイトが存在します。私はPythonでエクスプロイトを提供しましたが、これは粗末なものです。なぜなら、コマンドの出力を確認するためにWebリクエストのレスポンスを手動で解析しなければならないからです。余分な部分を除去しようと試みましたが成功しませんでした。それでは見てみましょう!

ls -alコマンドを実行しました。コマンドの出力がHTMLのdiv要素の間に表示されているのがわかります。

フラグは明かしませんが、ヒントをあげます!ホームディレクトリを調べることから始めてください。この解説を読んでくださりありがとうございます。楽しんでください!