見出し画像

Writeup: Vulnhub Vikings 攻略

Vulnhub の Vikings を攻略したのでメモ。
今回は簡単なパズルを解いているようで面白かった。

1.ダウンロード

この仮想マシンは 下記のリンクからダウンロードできる。

ダウンロード後、Virutal Boxにインポートし、メモリを1GBに設定、ネットワークインターフェースを「ホストオンリーアダプタ」に変更して起動。
起動すると下記の画面が表示される。

Vikings起動画面

起動後、Pingスキャン(nmap -sP  192.168.56.102-200 ) を行ってIPアドレスを確認する。筆者の環境では 192.168.56.126 だった。

2.攻略

1)ポートスキャン

nmap でポートスキャンしてみる。80/tcp,  22/tcp が開いていた。

ポートスキャン結果

2)脆弱性探し

ブラウザでアクセスしてみると、ディレクトリインデックスが表示された。

Index of /

"site/" をクリックしてみる。何やらイケメンのカッコいい写真が出てきた。
ページを調べてみたが特に有効なリンク等は無い。 

/site

site/ 以下のディレクトリをスキャンしてみる。
war.txt という意味ありげなファイルが見つかった。

ディレクトリスキャン結果

war.txt の内容は "/war-is-over" 
おそらくこの名前のディレクトリをチェックせよ、という意味なのだろう。

war.txt

指示通り、 /war-is-over をブラウザで開いてみる。
base64 エンコードされたテキストファイルのようなものが表示された。

/war-is-over

とりあえず curl でダウンロードしデコードしてみよう。
見た感じ base64 のようなので、以下のコマンドでデコードできるはず。

curl http://192.168.56.126/site/war-is-over/ | base64 -d > war-is-over

無事にダウンロードできた。このファイルは zip ファイルのようだ。

war-is-over をダウンロード

zip ファイルを解凍してみようとしたが、パスワードが必要なようだ。

zipの解凍にはパスワードが必要

zip ファイルの解凍パスワードを調べるには、John the Ripper を使うのが簡単だ。このツールは Kali Linux に標準で入っている、定番のパスワードクラッカーである。

zip2john を使用して、zipファイルから解析用のハッシュを作成する。 

zip2john

あとは john でこのハッシュファイルを解析するだけだ。
待つこと数分。パスワードが判明した。

zipファイルのパスワード解析

 zip ファイルを解凍してみると、king というファイルが出来上がった。
jpg画像のようだ。

zipファイルを解凍

中身は綺麗な船の画像だった。

king.jpg

jpg などの画像ファイルには別のファイルを埋め込んで隠すことができる。
binwalk を使って調べてみると案の定、user というファイルが隠されていた。

binwalk

binwalkを使って user というファイルを取り出してみる。
ユーザー名とパスワードのような内容が書かれていた。

JPG画像に隠されていたファイル

3)侵入

先ほど判明したユーザー名、パスワードの組み合わせを使って、ssh でログインすることができた。侵入成功である。

侵入成功

4)権限昇格

権限昇格のため、root 権限で実行できるファイルが無いか調べてみる。
pkexec が見つかった。

root権限で実行できるファイルの検索

pkexec が root権限で実行できるので、CVE-2021-4034 の脆弱性があるかもしれない。この脆弱性は pwnkit と呼ばれており、攻撃用のコードが数多く公開されている。今回は下記のリンクで公開されているものを使用した。

上記のリンクで公開されている攻撃用コードを入手して、攻撃マシン側で Webサーバを立てる。

Webサーバ起動(攻撃マシン側)

次にターゲット側で攻撃用コードをダウンロードする。

攻撃用コードをダウンロード

あとは、攻撃用コードをターゲット上でコンパイル、実行。
無事に root権限に昇格できた。

root権限奪取

今回はこれでおしまい。めでたし、めでたし。

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