Arctic 日本語でウォークスルー Hack The Box Machine:

HTB htb-easy

Hack The BoxのArcticのウォークスルー・ライトアップ(walkthrough/writeup)です。難易度はeasyとなっています。
※本記事はサイバー犯罪を助長するものではありません。悪用は厳禁です。

HTB Arctic ウォークスルー・ライトアップ

難易度はeasyとなっていますが、他のHTBのマシンと比較し、難しい印象を受けました。
※難易度Mediumくらいかなと思います。

サマリー

local shell取得まで

ターゲットポート:TCP 8500 (fmtp)
脆弱性:ターゲットのfmtpでは「Adobe ColdFusion 8」が動作していた。ディレクトリトラバーサル(CVE-2010-2861)の脆弱性が内在しており、この脆弱性からColdFusionの管理用ポータルの認証を突破した。
管理用ポータルからreverse-shell用のファイルを挿入し、local-shellを取得した。
local権限を取得したユーザ:toils

privilege Escalation取得まで

脆弱性:「MS10-059」
root権限を取得したユーザ:nt authority\system

Information Gathering

ポートスキャン

それでははじめます。まずはターゲット上で動作しているTCPポートをnmapで探します。nmapについてはこちらを参照ください。

nmapの結果、上画像の通り、TCPポート番号135(http),8500(fmtp),49154(unknown)が開いていることが分かりました。もう少し、空いている各TCPポートを調査することにしました。

TCPポート8500の調査

TCPポート8500について調査をしていきました。試しにfirefoxを使用しブラウザーでアクセスした所、以下のようなサイトに接続しました。

「CFIDE/」と「cfdocs/」というリンクが見えます。「CFIDE/」というリンクにアクセスした所、以下サイトが表示されました。

色々興味深いリンクが見当たりますが、中でも「administrator」(管理者)に着目しました。クリックしてみると以下が表示されました。
Adobe ColdFusion 8のAdministrator(管理者)用のログインページのようでした。

管理者のログインページが見つかったので、こちら経由でlocal-shellが取得できないかを検討していくことにしました。

Local shellの取得

Adobe ColdFusion 8の脆弱性調査

「Adobe ColdFusion 8」の脆弱性を調査した所、以下が見つかりました。「Adobe ColdFusion」にはDirectory Traversal(ディレクトリトラバーサル)の脆弱性があるようでした。

こちらを参考に、実際に、ディレクトリトラバーサル攻撃を試してみました。その結果、パスワード「2F635F6D20E3FDE0C53075A84B68FB07DCEC9B03」を入手しました。ただし、このパスワードは暗号化されていました。(encrypted=trueと記載があります。)そのため、解読を検討しました。

解読にあたり、hashtoolkit.comのサイトを使用しました。
このパスワードは「SHA-1」のアルゴリズムで暗号化されており、解読した結果「happyday」が平文のパスワードであることがわかりました。

先ほどの「Adobe ColdFusion 8」の管理用ログインページで、username「admin」、password「happyday」でログインを試みた所、認証を通過することができました。

Adobe ColdFusion経由でreverse-shell用のファイルをアップロードする

ログイン後、「Adobe ColdFusion 8」の管理画面の調査を続けました。その結果、左バーから「Scheduled Tasks」を見つけました。以下画像のページです。この機能は、外部サイトへhttpでアクセスし、外部サイトにあるファイルをターゲット内部に保存できる機能のようです。
この機能を利用して、ターゲット内部にreverse-shell用のファイルを配置することを検討しました。

reverse-shell用のファイルは、以下の通りmsfvenomで作成しました。※jspを選択した理由としては、Adobe ColdFusionのwikipediaでjspをサポートしているという文言を見つけたからです。もし動かない場合は別のフォーマットで試してみるつもりでした。


reverse-shellファイル作成後は、以下の通り「SimpleHttpServer」を作動させ、ターゲットからのhttpアクセスを待つ状態にしました。

また、「Scheduled Tasks」機能では、ターゲット上の保存先のフォルダを指定する必要がありました。そちらは、以下を参考にしました。
保存したreverse-shellファイルをhttp経由で動作させるために、「CFIDE/」直下に配置することが理想でした。そのため、保存先を「C:\ColdFusion8\wwwroot\CFIDE」としました。

実際に以下の通り、新しいスケジュールのタスクを作成しました。入力した項目として、「Task Name」を「test4」、「URL」を「私のマシン上に格納されているreverse-shellファイルのパス」、「File」を「C:\ColdFusion8\wwwroot\CFIDE\test4.jsp」としています。

タスク作成後は、以下の緑のアイコン(Run the Scheduled task)をクリックしました。これにより、作成したタスクが実行されました。

以下の通り、「CFIDE/」上にreverse-shellファイル(test4.jsp)がアップロードされています。

ターゲット上のreverse-shellファイルを実行する

netcatを起動し、ターゲットに配置したreverse-shellファイルをhttp経由で実行した所、local-shellを取得できました。


取得したlocal-shellはユーザ「tolis」のものでした。続いてPrivilege Escalation(root権限昇格)を検討していきます。

Privilege Escalation

Privilege Escalationに利用できる脆弱性調査

Privilege Escalationに利用できる脆弱性を調査していきました。windows-exploit-suggesterツールを利用しました。ターゲットから「systeminfo」を取得し、「sysinfo2.txt」という名前で保存します。

実際に、「windows-exploit-suggesterツール」を実行した所、以下のような脆弱性が見つかりました。
今回は「MS10-059」を利用することにします。

「MS10-059」を利用した攻撃

こちらから攻撃に使用するexeファイルを入手しました。

ターゲットにexeファイルを配置するため、smbserver.pyを利用しました。smbで自分のマシンのフォルダを、ターゲットとシェアします。

ターゲット上で「MS10-059」用のexeファイルをダウンロードし、実行します。※事前に自分のマシンでnetcatを仕掛けてから実行します。

以下の通り、「nt authority\system」(root権限)のshellを取得できました。

flagを探す

user.txtは「tolis」ユーザのディスクトップ上にありました。root.txtは「Administrator」ユーザのディスクトップ上にありました。

以上で、Arcticのウォークスルーが完了です。