Writeup: Vulnhub coffeeaddicts 攻略
Vulnhub の coffeeaddicts というマシンの攻略メモ。
ハッキングされたWordpressサイトに侵入して root を獲る、という面白い設定だった。
1.ダウンロード
下記のリンクからダウンロードできる。サイズは1.3GB 。
ダウンロード後、VirtualBoxにインポートし、ネットワークアダプタをホストオンリーアダプタに変更して起動。メモリは1GB で問題無く動作した。
2.攻略
1)ポートスキャン
とりあえずIPアドレスを調べる。 nmap -sP で Pingスキャンを実行。
ターゲットのIPアドレスは 192.168.56.132 。
次にポートスキャンを実行。
22/tcp (SSH) , 80/tcp (Apache) が稼働していた。
ブラウザで 80/tcp に接続してみる。
/etc/hosts に "coffeeaddicts.thm" を追加せよ、と親切なメッセージが表示された。TLD が "thm" なので TryHackMe に掲載されたマシンなのだろう。
というわけで、/etc/hosts にエントリを追加する。
再度アクセスしてみると、「吾輩はこのサイトを占拠したぁ~♪」みたいなトップページが表示された。なんじゃこりゃ?
とりあえずディレクトリをスキャンしてみる。
"wordpress" というディレクトリが見つかった。
改めて、http://coffeeaddicts.thm/wordpress にアクセスしてみる。
どうやら、この wordpressサイト攻略が今回のお題のようだ。
眺めているとコーヒーが飲みたくなってきた。とりあえず一服。
2)脆弱性探し
Wordpress の脆弱性探しと言えば、WPScan だ。とりあえず調べてみよう。
Wordpressのバージョンは 5.7.1 、ユーザーは gus らしい。
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管理画面にログインできた。
次に行うことは、このサイトにWebシェルをアップロードすることである。
401テンプレートを Webシェルに書き換えようとしたが、エラーになった。
おそらく、このサイト自身の名前解決に失敗して文法チェックができないからだろう。。
エラーが起きないようにするには、サイトの名前を coffeeaddicts.thm から IPアドレスに変更すればいい。
設定画面を開いてみたが、サイト名は変更不可になっていた。残念!
なんとか、PHPのファイルをアップロードする方法は無いだろうか。。
よくよく考えてみると、gus はこのサイトの管理者なので、プラグインを追加できるはずである。つまり Webシェルをプラグインとしてアップロードすれば良い。
調べてみると、Metasploit に Webシェルをプラグインとしてアップロードしてくれるモジュールがあることが判った。
ということで、必要なパラメータを指定して実行!
侵入に成功した。
4)権限昇格
とりあえず、meterpreter セッションのままシステムの探索を続ける。
「吾輩はこのサイトを占拠したぁ~♪」の badbyte と gus がユーザーとして登録されているようだ。
badbyte は何か面白いファイルを持っているかもしれない。
ホームディレクトリを覗いてみると、SSHの秘密鍵が見つかった。
ダウンロードしておこう。
次に行うのは秘密鍵のパスフレーズ解読である。
ssh2john で 変換してから、john the ripperでパスワードをクラックする。
パスワードは password だった。。
ユーザー badbyte を使用して、 sshでログインしてみる。
問題無くログインできた。
この badbyte が サイトを乗っ取ったことになっているので、root権限で動くシェルか何かを持っているはず。
コマンドの履歴(.bash_history)をチェックしてみる。
sudo で /opt/BadByte/shell を実行したようだ。
shell.cpp を眺めてみる。
入力されたコマンドを system()で実行するだけのようだ。
あとは実行するだけ。 sudo で /opt/BadByte/shell を実行し、
その後、 bash -p を実行する。無事 root のシェルが手に入った。
フラグを見てみよう。
やっぱり TryHackMe だった。。
今回はこれでおしまい。
めでたし、めでたし。
この記事が気に入ったらサポートをしてみませんか?