【VulnHub】Raven: 1 -Walkthrough-
はじめに
今回は以下のVM。
- VM:Raven: 1
- Level:Beginner
- URL:https://www.vulnhub.com/entry/raven-1,256/
今回はVMware Workstation(NAT)を使った。flagは4つあるとのこと。
情報収集
ターゲットのIPアドレスの特定から。(攻撃側(kali linux)のIPアドレスは192.168.196.129)
#netdiscover -r 192.168.196.0/24
-r:スキャン範囲の指定。デフォルトでは、192.168.0.0/16。
続いてポートスキャン。
#nmap -sV -A -p- 192.168.196.131
- -sV:バージョンスキャン
- -A:詳細情報取得
- -p-:フルポートスキャン
22番(ssh)、80番(http)、111番、33921番がopen。ブラウザで80番へアクセス。
右上にあるリンクに一つずつアクセスし、ソースを「flag」で文字列検索。SERVICEのリンク先にflag1を発見。
dirbでリンクされていないコンテンツを探す。
#dirb http://192.168.196.131
/vendor/と/wordpress/がある。/vendor/にアクセス。
PATHが怪しかったが、特に有力な情報ではなかった。
ブラウザから、/wordpress/wp-adminへアクセスしてみたが、アクセスできなかった。URLを見てみると「raven.local」へリダイレクトされている。(dirbの結果にも301とある。)
そこで、以下のようにhostsファイルに追記したことでアクセスできるようになった。
wordpressの脆弱性診断ツールであるwpscanを使う。
#wpscan --url http://raven.local/wordpress -e u
- --url:URLの指定
- -e u:ユーザ名の列挙
「michael」、「steven」がいることが分かった。
侵入
以下のuser.lstを用いて22番をhydraでパスワードクラックする。辞書ファイルには事前に解凍したrockyou.txtと、-e nsrオプションを用いる。
#hydra -L user.lst -P /usr/share/wordlists/rockyou.txt -e nsr ssh://192.168.196.131
- -L:ユーザリストファイルの指定
- -P:パスワードリストファイルの指定
- -e nsr:nは"null"で空欄を設定、sは"same"でユーザ名と同じパスワードを設定、rは"reverse"でユーザ名を逆転したパスワードを設定
ユーザ名:michael、パスワードmichaelを発見。これを使ってsshへアクセス。
入れた。flagを探す。
&find / -name flag* 2>/dev/null
/var/www配下にflag2.txtを発見。
権限昇格
rootへの権限昇格を目指す。前回記事同様、wordpressの設定ファイル(wp-config.php)を見に行く。
MySQLの認証情報、ユーザ名:root,、パスワード:R@v3nSecurityを発見。この情報を使って権限昇格を試みたが失敗。
sudoで実行できるコマンドの確認。なし。
$sudo -l
- -l:実行を許可サレタコマンド、パスを一覧表示
SUIDが設定されたファイルの中でも権限昇格に使えそうなものはない。
$find / -perm -4000 -type f 2>/dev/null
そもそも発見したのはMySQLのアカウント情報。MySQLへアクセスして、そこから権限昇格を目指す。
MySQLのポート(3306)が開いていることも確認。
発見したアカウント情報でMySQLへログイン成功。
$mysql -u root -p
- -u:ユーザ名指定
- -p:パスワード指定
以下の手順でテーブルを見つける。
mysql>show databases;
mysql>show tables;
ここまでで、「wp_users」というテーブルの存在が確認できた。
続いて、SQL文で「wp-users」テーブルを見に行く。
mysql>select * from users;
michael、stevenのパスワードハッシュを発見。mychaelのパスワードは既に判明している(michael)。stevenのパスワードが分かれば、そこからrootへの昇格ができそう。
john the ripperでパスワードクラックするために、まずは以下のようなpasshash.txtを作成。
パスワードクラック。
#john passhash.txt
結構時間はかかったが、stevenのパスワードが見つかった。
stevenとして侵入することに成功。
sudoで実行可能なコマンドを探す。
$sudo -l
- -l:実行を許可されたコマンド、パスを一覧表示
pythonが使えるので、以下を実行。
rootに権限昇格できた。/root配下にflag4.txtを発見。
flag3
flag3よりflag4が先に見つかったが、flag3は以下の手順で見つけた。
Username:steven、Password:pink84でログイン。
ログイン後、左メニューのPostsにflag3を発見。