見出し画像

Writeup: Vulnhub coffeeaddicts 攻略

Vulnhub の coffeeaddicts というマシンの攻略メモ。
ハッキングされたWordpressサイトに侵入して root を獲る、という面白い設定だった。

1.ダウンロード

下記のリンクからダウンロードできる。サイズは1.3GB 。

ダウンロード後、VirtualBoxにインポートし、ネットワークアダプタをホストオンリーアダプタに変更して起動。メモリは1GB で問題無く動作した。

2.攻略

1)ポートスキャン

とりあえずIPアドレスを調べる。 nmap -sP で Pingスキャンを実行。
ターゲットのIPアドレスは 192.168.56.132 。

Pingスキャン

次にポートスキャンを実行。
22/tcp (SSH) , 80/tcp (Apache) が稼働していた。

ポートスキャン

ブラウザで 80/tcp に接続してみる。
/etc/hosts に "coffeeaddicts.thm" を追加せよ、と親切なメッセージが表示された。TLD が "thm" なので TryHackMe に掲載されたマシンなのだろう。

というわけで、/etc/hosts にエントリを追加する。

/etc/hosts に追加

再度アクセスしてみると、「吾輩はこのサイトを占拠したぁ~♪」みたいなトップページが表示された。なんじゃこりゃ?

トップページ

とりあえずディレクトリをスキャンしてみる。
"wordpress"  というディレクトリが見つかった。

ディレクトリスキャン

改めて、http://coffeeaddicts.thm/wordpress  にアクセスしてみる。
どうやら、この wordpressサイト攻略が今回のお題のようだ。
眺めているとコーヒーが飲みたくなってきた。とりあえず一服。

2)脆弱性探し

Wordpress の脆弱性探しと言えば、WPScan だ。とりあえず調べてみよう。
Wordpressのバージョンは 5.7.1 、ユーザーは gus らしい。

WPScan (Wordpressバージョン)
WPScan (ユーザー列挙)

Wordpress 5.7.1 には CVEスコア 9.8 の致命的な脆弱性がある。
同梱のPHPMailer に関するもので CVE-2020-36326。詳細は下記。
小一時間くらい探してみたが、 PoCを見つけることはできなかった。

気を取り直して、Wordpressの記事を眺めてみる。
よく見ると最初の記事 "Lil Peep and coffee, ¿perfect combination?" に
コメントが2つ付いている。

コメントの記載はパスワードに関するものだった。
写真の下に書いてある "gus i need you back" がパスワードらしい。。

パスワード発見!

3)侵入

ユーザー gus , パスワード gusineedyoubackで ログインを試みる。

無事、Wordpress管理画面にログインできた。

Wordpress管理画面

次に行うことは、このサイトにWebシェルをアップロードすることである。

 401テンプレートを Webシェルに書き換えようとしたが、エラーになった。
おそらく、このサイト自身の名前解決に失敗して文法チェックができないからだろう。。

エラーが起きないようにするには、サイトの名前を coffeeaddicts.thm から IPアドレスに変更すればいい。

設定画面を開いてみたが、サイト名は変更不可になっていた。残念!

Wordpressサイト設定画面

なんとか、PHPのファイルをアップロードする方法は無いだろうか。。

よくよく考えてみると、gus はこのサイトの管理者なので、プラグインを追加できるはずである。つまり Webシェルをプラグインとしてアップロードすれば良い。

プラグインアップロード画面

調べてみると、Metasploit に Webシェルをプラグインとしてアップロードしてくれるモジュールがあることが判った。

Metasploitモジュール
モジュールの説明

ということで、必要なパラメータを指定して実行!
侵入に成功した。

侵入成功

4)権限昇格

とりあえず、meterpreter セッションのままシステムの探索を続ける。
「吾輩はこのサイトを占拠したぁ~♪」の badbyte と  gus がユーザーとして登録されているようだ。

badbyte は何か面白いファイルを持っているかもしれない。
ホームディレクトリを覗いてみると、SSHの秘密鍵が見つかった。
ダウンロードしておこう。

ssh秘密鍵のダウンロード

次に行うのは秘密鍵のパスフレーズ解読である。
ssh2john で 変換してから、john the ripperでパスワードをクラックする。

パスワードは password だった。。

パスワードクラック

ユーザー badbyte を使用して、 sshでログインしてみる。
問題無くログインできた。

budbyte で SSHにログイン

この badbyte が サイトを乗っ取ったことになっているので、root権限で動くシェルか何かを持っているはず。

コマンドの履歴(.bash_history)をチェックしてみる。
sudo で /opt/BadByte/shell を実行したようだ。

.bash_history

shell.cpp を眺めてみる。
入力されたコマンドを system()で実行するだけのようだ。

shell.cpp

あとは実行するだけ。 sudo で /opt/BadByte/shell を実行し、
その後、 bash -p を実行する。無事 root のシェルが手に入った。

フラグを見てみよう。
やっぱり TryHackMe だった。。

rootフラグ

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


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