【VulnHub】Raven 1 walkthrough
VulnHubのRaven 1を実施
Ravenは初心者/中級者のboot2rootマシンです。見つけるべき4つのフラグと2つの意図的なルート取得方法があります。
4つもflagがあるとのこと
初期偵察
・netdiscoverでIPアドレスを特定
IPアドレスは192.168.23.133
・公開されているポートを確認
以下の情報を取得
・Webページにアクセスしてみる
Security Servicesという会社のページ
リンクをたどっていくとservice.htmlのコメントにflag1の記載発見
またリンクをたどっていくとCMSにWordpressを使用しているということはわかった。
とりあえずwp-adminにアクセスしようとするとraven.localにリダイレクトされるので名前解決できるようにhostsに追加
調べるとwordpressの初動調査にはwpscanというツールが有効であることが分かった。
以下のサイトを参考に使ってみる
kali linuxでも標準で入っているようだ
michaelとstevenというユーザがいることが分かった。
パスワードをリストから検索するオプションもあったので試してみるも以下のようなエラーが出てしまいうまく実行できない。
Scan Aborted: invalid byte sequence in UTF-8
Trace: /usr/lib/ruby/vendor_ruby/xmlrpc/create.rb:51:in `gsub!'
/usr/lib/ruby/vendor_ruby/xmlrpc/create.rb:51:in `text'
/usr/lib/ruby/vendor_ruby/xmlrpc/create.rb:21:in `tag'
/usr/lib/ruby/vendor_ruby/xmlrpc/create.rb:197:in `conv2value'
/usr/lib/ruby/vendor_ruby/xmlrpc/create.rb:119:in `block in methodCall'
/usr/lib/ruby/vendor_ruby/xmlrpc/create.rb:118:in `collect'
/usr/lib/ruby/vendor_ruby/xmlrpc/create.rb:118:in `methodCall'
/usr/share/rubygems-integration/all/gems/cms_scanner-0.0.41.1/app/models/xml_rpc.rb:40:in `method_call'
/usr/share/rubygems-integration/all/gems/wpscan-3.4.2/app/finders/passwords/xml_rpc.rb:9:in `login_request'
/usr/share/rubygems-integration/all/gems/cms_scanner-0.0.41.1/lib/cms_scanner/finders/finder/breadth_first_dictionary_attack.rb:32:in `block (2 levels) in attack'
/usr/share/rubygems-integration/all/gems/cms_scanner-0.0.41.1/lib/cms_scanner/finders/finder/breadth_first_dictionary_attack.rb:31:in `each'
/usr/share/rubygems-integration/all/gems/cms_scanner-0.0.41.1/lib/cms_scanner/finders/finder/breadth_first_dictionary_attack.rb:31:in `block in attack'
/usr/share/rubygems-integration/all/gems/cms_scanner-0.0.41.1/lib/cms_scanner/finders/finder/breadth_first_dictionary_attack.rb:26:in `each'
/usr/share/rubygems-integration/all/gems/cms_scanner-0.0.41.1/lib/cms_scanner/finders/finder/breadth_first_dictionary_attack.rb:26:in `attack'
/usr/share/rubygems-integration/all/gems/wpscan-3.4.2/app/controllers/password_attack.rb:40:in `run'
/usr/share/rubygems-integration/all/gems/cms_scanner-0.0.41.1/lib/cms_scanner/controllers.rb:43:in `each'
/usr/share/rubygems-integration/all/gems/cms_scanner-0.0.41.1/lib/cms_scanner/controllers.rb:43:in `run'
/usr/share/rubygems-integration/all/gems/cms_scanner-0.0.41.1/lib/cms_scanner.rb:137:in `run'
/usr/share/rubygems-integration/all/gems/wpscan-3.4.2/bin/wpscan:15:in `block in <top (required)>'
/usr/share/rubygems-integration/all/gems/cms_scanner-0.0.41.1/lib/cms_scanner.rb:128:in `initialize'
/usr/share/rubygems-integration/all/gems/wpscan-3.4.2/bin/wpscan:5:in `new'
/usr/share/rubygems-integration/all/gems/wpscan-3.4.2/bin/wpscan:5:in `<top (required)>'
/usr/bin/wpscan:23:in `load'
/usr/bin/wpscan:23:in `<main>'
確認したところrubyバージョン2.5.0-2.5.3ではうまくいかないとのこと
バージョン2.4.5に下げるか2.6.0が出るのを待つしかないようだ。
侵入
パスワードを使いまわしていることも考えて以前覚えたhydraで
linuxのログインユーザにbluteforceを仕掛けてみる。
パスワードリストはkali linuxに標準で入っている/usr/share/wordlists/rockyou.txt.gz
を使用する。
user.lstにはwpscanで得られた2つのユーザ名を記載した。
権限昇格に使えそうなコマンドはない
Linux Raven 3.16.0-6-amd64 #1 SMP Debian 3.16.57-2 (2018-07-14) x86_64 GNU/Linux
LinEnum.shを使えばLinuxの情報を列挙できる。
以下からダウンロードする。
LinEnum/LinEnum.sh at master · rebootuser/LinEnum · GitHub
Listening TCPよりmysql(127.0.0.1:3306)が起動していることがわかる。
/var/www/html/wordpress/wp-config.txtにmysql関連の情報が記載されている
得られた情報を元にmysqlにログイン
michael@Raven:/var/www/html/wordpress$ mysql -u root -pR@v3nSecurity
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 373
Server version: 5.5.60-0+deb8u1 (Debian)Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use wordpress
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> show tables;
+-----------------------+
| Tables_in_wordpress |
+-----------------------+
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+-----------------------+
12 rows in set (0.00 sec)
wp_usersというテーブルにユーザ情報とみてテーブルデータを参照
ユーザ名とパスワード(ハッシュ値)が格納されている
得られたハッシュ値パスワードクラックツールjohnを使用してパスワードクラックを実施
stevenのパスワードも判明
得られたパスワードを用いて、wordpressの管理画面へログイン
Postsをたどっていくとflag3が得られた。
あとflagは一つなので、rootに昇格すればflagがあるはず。
stevenユーザで先ほど得られたパスワードを用いsshでログインし、root権限で許可されているコマンドを確認
pythonが許可されているのでこれを利用して権限昇格を行う。