Arctic 日本語でウォークスルー Hack The Box Machine:
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のウォークスルーが完了です。