Writeup: Vulnhub Hacksudo2
Vulnhub の Hacksudo2 攻略メモ。
このVMは簡単に攻略できた。
1.仮想マシンのダウンロード
下記のリンクからダウンロード。サイズは 1.8 GB。
ダウンロードしたファイルをVirtual Box へインポートして起動する。
ネットワークインターフェースは「ホストオンリーアダプタ」を使用。
メモリは 1GBで問題無く起動した。
2.攻略
1)ポートスキャン
netdiscover でIPアドレスをスキャンする。
ターゲットのIPアドレスは 192.168.56.146 。
(192.168.56.1 と 100 は VirtualBox 自身のアドレス)
ポートスキャンしてみる。
80/tcp, 111/tcp, 1337/tcp , 2049/tcp などなど、派手にポートが開いている。
NFSが動いているようだ。
NFS で /mnt/nfs が共有されていたので、マウントしてみる。
とりあえず1つ目のフラグを入手。
次にWebサイトにアクセスしてみる。何やら面白そう。。
画像をクリックすると、インベーダーゲームが現れた。キーボードの [Z] を押すと下からビームが出てインベーダーをやっつけられる。
JavaScriptでこんなゲームができるのかと感心。しばし遊んでみた。
さて、気を取り直して、Webサーバのディレクトリをスキャンしてみる。
面白そうなディレクトリが幾つか見つかった。
特に /file.php というわざとらしい名前が気になる…。
2)脆弱性探し
/file.php にアクセスしてみる。
引数に指定したファイルが file.php でそのまま表示されそうな予感。。
引数の名前を調べるため、とりあえずファジングしてみよう。
パラメータの名前は "file"であることが判った。
/file.php?file=/etc/passwd でパスワードファイルが閲覧できた。
3)侵入
/file.php?file=[パス名] で指定したファイルを何でも読み込めるので、先ほどのNFS 共有(/mnt/nfs )に WebShell を置いておき、file.php から読み込みすれば侵入できる。
まずは NFS共有にWebShellを置く。スクリプト は下記のサイトから借用。backdoor.php として保存した。
次にローカルの 4444 で待ち受ける。
最後に、ブラウザで /file.php?file=/mnt/nfs/backdoor.php にアクセスする。
リバースシェル接続が成功し、サーバーに侵入できた。
4)権限昇格
nfs の設定を眺めてみる。no_root_squash となっていた。
この設定だと、リモートのrootユーザーがこのディレクトリをマウントした場合、そのまま root権限で共有ディレクトリにファイルを置いたり、パーミッションが設定できてしまう。これを利用すれば権限昇格は簡単。
まず、root で NFS共有に接続し、適当なディレクトリを 777 で作る。
次に、サーバー側のシェルで /mnt/nfs/hoge に bash をコピーする。
手元のシェルから、コピーした bash の所有者を root に変更し SUIDビットをオンにする。
最後にサーバー側のシェルで root に suid された bash を実行する。
これで root のシェルに権限昇格できた。
rootフラグを見てみよう。
これで完了。
めでたし、めでたし。
この記事が気に入ったらサポートをしてみませんか?