見出し画像

Writeup: Vulnhub BlueMoon

Vulnhub の BlueMoon 攻略メモ。
このVMは簡単に攻略できた。

1.仮想マシンのダウンロード

下記のリンクからダウンロード。サイズは 598MB。とても小さい。

ダウンロードしたファイルをVirtual Box へインポートして起動する。
ネットワークインターフェースは「ホストオンリーアダプタ」を使用。
メモリは 1GBで問題無く起動した。

2.攻略

1)ポートスキャン

netdiscover  でIPアドレスをスキャンする。
ターゲットのIPアドレスは 192.168.56.145 。
(192.168.56.1 と 100  は VirtualBox 自身のアドレス)  

netdiscover

ポートスキャンしてみる。
開いているポートは ftp (21/tcp) , OpenSSH (22/tcp), Apache( 80/tcp)のみ。

nmap

2)脆弱性探し

ポートスキャンで検出されたアプリケーションを調べてみたが、リモートコード実行などの脆弱性は見当たらなかった。

とりあえず、80/tcp  にブラウザでアクセスしてみる。
シンプルなページが表示された。

トップページに表示されている画像を調べてみたが、ステガノグラフィーなど、何か他の情報が隠されている形跡はなかった。

また、ftp (21/tcp)にも匿名ログインはできなかった。

あとはWebサーバー側に何か手がかかりが隠されていることになる。
ディレクトリをスキャンしてみた。結果は手掛かり無し。。

Webディレクトリスキャン(1回目)

スキャンに使用する辞書を少し大きめのものに変更して再度試してみる。
今度は  /hidden_text という、ワザとらしい名前のファイルが見つかった。

Webディレクトリスキャン(2回目)

/hidden_text をブラウザで眺めてみる。「メンテナンス中」という素っ気無い表示だが、よく見ると「Thank You…」というリンクがある。
クリックしてみる。

/hidden_text

リンクを開くと、QRコードが表示された。

QRコードの画像をダウンロードし内容を見てみる。
読み取りには下記のサイト(Web QR) を使用した。

どうやら、QRコードには ftp のユーザー、パスワードが書いてあるようだ。

QRコードの内容

3)侵入

QRコードに書いてあったユーザー/パスワードで  ftp にログインしてみる。
information.txt と p_lists.txt というファイルが置いてあった。
とりあえずダウンロードしてみる。

ftp

information.txt は robin 宛のメッセージ、p_lists.txt はパスワードのリストだった。どうやらこのリストを使って ssh へのログインを試せば良さそうだ。

information.txt,  p_lists.txt

パスワードの総当たりは、手作業だと面倒なので、hydra を使う。
コマンドラインは以下の通り。

hydra -v -l robin -P  p_lists.txt  ssh://192.168.56.145

robin の sshパスワードが判った。

このパスワードを使用して ユーザー robin で sshにログインする。
問題無くログインできた。

4)権限昇格

パスワードファイルを眺めてみる。robin 以外に2つユーザーが登録されていた。userftp は QRコードに書いてあったユーザーだから、次の権限昇格の目標は jerryなのかもしれない。

sudo を調べてみると、robin は jerryの権限でfeedback.sh が実行できることが判る。

sudo -l ( robin)

feedback.sh の内容を見ると、feedback に入力したコマンドがそのまま実行されるようになっていた。

sudo でこのスクリプトを 実行。問題無く jerry に権限昇格できた。
おや?  jerry は "docker" を起動する権限を持っているようだ。

docker があるなら話は早い。
ルートディレクトリをコンテナ側にマウントしてしまえば、コンテナからマシン上の全てのファイルにアクセス可能になる。

alpine linux のコンテナイメージがあることを確認し、docker でコンテナを起動。ルートディレクトリをコンテナにマウントした。

コンテナ起動

これで権限昇格完了。フラグを見てみる。
"root-hack the planet once again" と書いてあるのかな・・・。

これで完了。
めでたし、めでたし。


この記事が気に入ったらサポートをしてみませんか?