見出し画像

Writeup: Vulnhub BLOGGER 攻略

Vulnhub の BLOGGER を攻略したのでメモ。
この仮想マシンは下記からダウンロードできる。

このマシンは他の仮想マシンに比べて、攻略は難しくなかった。

0.セットアップ

1) 仮想マシンの設定変更

仮想マシンをVirutal Box にインポートした後、下記の設定を変更し起動。

  ・プロセッサの数を2⇒1に変更する
  ・シリアルポートを無効化する
  ・ネットワークインターフェースを「ホストオンリーアダプタ」に変更

2) 仮想マシンのIPアドレス調査

起動したら、IPアドレスを調べる。
攻撃マシン側から nmap で ping スキャンすればすぐにわかる。
「ホストオンリーアダプタ」はデフォルトで 192.168.56.101以後のアドレスをDHCPで配布する。コマンドは下記の通り。

nmap -sP -n 192.168.56.102-200

ターゲットのIPが判ったら、最後に攻撃マシン側の /etc/hosts にエントリを追加する。(冒頭に記載のダウンロードページに追加が必要と書いてある)

sudo echo '192.168.56.110  blogger.thm ' >> /etc/hosts

これで準備完了。いよいよ攻略である。

1.攻略

1) ポートスキャン

80/tcp (httpd) と 22/tcp (ssh ) のみ開いていることが判った。
OpenSSH 、Apache とも侵入に直結する脆弱性は無さそうなバージョンなので、Webサイトを調べてみることにする。

map scan report for 192.168.56.110
Host is up, received arp-response (0.00040s latency).
Scanned at 2022-10-09 08:01:28 EDT for 10s
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE REASON         VERSION
22/tcp open  ssh     syn-ack ttl 64 OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    syn-ack ttl 64 Apache httpd 2.4.18 ((Ubuntu))

2) Webサイトの調査

ブラウザで Webサイトを眺めてみる。
なかなか格好良いデザイン。しばらくソースを眺めてみるが特に怪しそうなところは無い。

Webサイト(blogger.thm)

とりあえず、gobuster でWebサイトのディレクトリをスキャンしてみる。

gobuster dir -u http://blogger.thm/ -w /usr/share/wordlists/dirb/common.txt

/.hta                 (Status: 403) [Size: 276]
/.htaccess            (Status: 403) [Size: 276]
/.htpasswd            (Status: 403) [Size: 276]
/assets               (Status: 301) [Size: 311] [--> http://blogger.thm/assets/]
/css                  (Status: 301) [Size: 308] [--> http://blogger.thm/css/]
/images               (Status: 301) [Size: 311] [--> http://blogger.thm/images/]
/index.html           (Status: 200) [Size: 46199]
/js                   (Status: 301) [Size: 307] [--> http://blogger.thm/js/]
/server-status        (Status: 403) [Size: 276]

スキャン結果をブラウザでチェックしていくと、/assets/fonts/blog/ の下にブログサイトが隠されているのが見つかった。
ぱっと見た感じ、画面のデザインが Wordpressっぽい。

http://blogger.thm/assets/fonts/blog/ 

隠されたブログサイト

3) 脆弱性スキャン

Wordpress の脆弱性チェックといえば、wpscan である。
標準だとバージョンチェックしかしてくれないが、以下のリンクからユーザー登録しておけば脆弱性チェック用のトークンを無料で発行してくれる。

https://wpscan.com/wordpress-security-scanner

プラグインのチェックは、デフォルトだと主要なものしかチェックしてくれないため、検出モードを指定する。(--plugins-detection aggressive)

wpscan --url http://blogger.thm/assets/fonts/blog/ -e ap --plugins-detection aggressive --api-token=7kcHhdo8qgGSkaLe597aYl5WtZEBnj3XkP97NQdDyMM -o wpscan.log

スキャン結果を見ると、wpDiscuz というプラグインで、「認証無しで任意のファイルがアップロードできる脆弱性」が検出されていた。つまり、WebSehll をアップロードすれば侵入が可能になるということだ。

| Title: Comments - wpDiscuz 7.0.0 - 7.0.4 - Unauthenticated Arbitrary File Upload
|     Fixed in: 7.0.5
|     References:
|      - https://wpscan.com/vulnerability/92ae2765-dac8-49dc-a361-99c799573e61
|      - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-24186
|      - https://www.wordfence.com/blog/2020/07/critical-arbitrary-file-upload-vulnerability-patched-in-wpdiscuz-plugin/
|      - https://plugins.trac.wordpress.org/changeset/2345429/wpdiscuz
|

Exploit DB で調べると、この脆弱性を攻略するためのMetasploit モジュールがあることが判る。

4) 侵入
Metasploit は Kali Linux に標準搭載の攻撃フレームワークで、様々な攻撃用モジュールが統合されている便利なツールである。
下記のコマンドで起動する。

msfconsole -q  

Metasploit 起動後、モジュールを検索して選択する。

Metasploit:モジュールの検索と選択

必要なパラメータを設定してチェックし問題無いことを確認。

パラメータの設定とチェック

準備ができたので、攻撃。
侵入に成功。Metepreterセッションでターゲットに接続できた。

侵入成功

5) 脆弱性スキャン(内部)

次の目的は権限昇格である。カーネルの脆弱性を突くのが最も手っ取り早い。 linPEAS を使ってサーバー内部から脆弱性をチェックする。

上記のリンクから linpeas.sh を攻撃マシンにダウンロードし、metepreter を使ってターゲットマシンの/tmp にアップロードする。

ターゲットにlinpeas.sh をアップロード

無事にアップロードできたら、いよいよ実行である。
metepreter から shell を起動して実行権限を付与し linpeas.sh を実行する。
いつもながら、linpeasのロゴは愛嬌があるなぁ。。

linpeas 起動

実行結果を見ると、CVE-2021-4034 (pwnkit)の脆弱性が検出されていた。
これでroot に権限昇格できそうだ。

linpeas実行結果

6) root権限奪取

github で探すと手頃な Exploit が見つかった。下記のリンクからダウンロードして、ターゲットマシンの /tmp にアップロードする。

あとは、このExploit を実行するだけである。

CVE-2021-4034.py  実行

uid=0 なので 想定通り root 権限が奪取できた。
めでたし、めでたし。


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