第02回目は「ToolsRus」のwalkthroughをやっていきます。ターゲット、ローカルIPアドレスが変わっている場合がありますが、一日で記事を書ききれていないためです。あしからず。

<Task1 ToysRus>
ーQ1 What directory can you find, that begins with a "g"?ー
gから始まるディレクトリを探していきましょう。ですがその前に「nmap」を使ってポートスキャンしていきます。私はいつも「-oN」オプションを使ってテキスト(nmap.txt)に保存するようにしています。


22,80,1234(http),8009番ポートが開いているようです。httpが動いているとき、ディレクトリ探索は基本やっておきましょう。ディレクトリ探索コマンドはいくつかありますが、今回は「gobuster」を使っていきます。

今回使ったワードリストはcommon.txtです。最初の探索はこれで十分でしょう。

↑実行結果です。いくつかのファイルとディレクトリが見つかりました。この中に1つだけgから始まるディレクトリがありますね。
【Answwer:guidelines】
ーQ2 Whose name can you find from this directory?ー
先ほど見つけたディレクトリに誰かの名前(?)があるようです。ブラウザでアクセスしてみます。

トップページです。特に何もないようです。

「/guideline」へアクセスしてみると、「bob(ボブ)」さんへのメッセージが書かれていますね。
【Answer:bob】
ーQ3 What directory has basic authentication?ー
Basic認証を行うディレクトリがあるようです。gobusterの結果の中に、他にも見つけたディレクトリがあったので、アクセスしてみます。

「/protected」にアクセスしたところ、認証画面が出てきました。ブラウザ上にポップアップで画像のような認証を求める画面がでてきたらBasic認証です。
【Answer:protected】
ーQ4 What is bob's password to the protected part of the website?ー
bobのパスワードですね。hydraでのブルートフォースがいけるかもしれないので、準備してやってみましょう。
まずBurp Suiteを使ってリクエストメソッド(GETやPOSTなどのどれを使っているか)を調べます。
① Burp Suite起動後、「Proxy」タブの「Open Browser」からブラウザを起動

④ Burp Suiteに戻り、「HTTP history」を確認

GETメソッドが使われていることを確認できました。これでブルートフォースを試すことができます。

コマンド・オプション説明
hydra␣-l␣ユーザ名␣-P␣ワードリスト␣ターゲットIP␣http-get␣/ディレクトリ

ブルートフォース成功です。
【Answer:bubbles】
では実際にログインできるか試してみましょう。右側の「Server Status」をクリックすると認証が求められるため、入手したユーザ名とパスワードを試してみます。

↓

↓

サーバ管理者しか見ることのできないページを見ることができました。
ーQ5 What other port that serves a webs service is open on the machine?ー
80番ポート以外でwebサービスが使われているポートを探します。Q1で行ったnmapの結果に出ていますね。
【Answer:1234】
ーQ6 What is the name and version of the software running on the port from question 5?ー
1234番ポートで動いているソフトウェアのバージョンを調べます。とりあえずブラウザでアクセスしてみます。

使われているのは「Apache Tomcat 7.0.88」のようですね。
【Answer:Apache Tomcat/7.0.88】
__Q7 Use Nikto with the credentials you have found and scan the /manager/html directory on the port found above.
How many docume0ー
問題文が何かバグってますね。Niktoを使って1234番ポートの/manager/htmlをスキャンして・・・で?How many documeと言っているのでドキュメントの数を答えるのでしょうか?
さすがに答えられないので、他の方がアップしているwalkthroughを見てみたところ、以前の問題文は「How many documentation files did you Nikto identify?」のようです。ドキュメントファイルの数を答える問題のようす。
Niktoを使えと言っているのでやってみます。

↓

実行した結果、「Tomcat documentation found.」と5件表示されました。
【Answer:5】
__Q8 What is the server version?ー
サーバのバージョン?Apacheのバージョンのことでしょうか?これもQ1で行ったnmapの結果に出ていますね。
【Answer:Apache/2.4.18】
ーQ9 What version of Apache-Coyote is this service using?ー
Apache-CoyoteのバージョンもQ1で行ったnmapの結果に出ています。。
【Answer:1.1】
ーQ10 Use Metasploit to exploit the service and get a shell on the system.What user did you get a shell as?ー
Metsaploitを使って攻撃し、シェルをとっていきましょう。といってもアプローチすればいいのでしょう?
今回使っているアプリケーションは
・Apache Tomcat 7.0.88
・Apache Tomcat/Coyote 1.1
です。Q7でApache Coyoteについて言及してきたのは怪しいですね。まずCoyoteのほうから攻めていきたいと思います。
「msfconsole」でMetasploitを起動します。

「coyote」で検索してみます。

あれ?ヒットしない。ってことはTomcatの方なんですかね?

全部で65行分ヒットしました。どれを使えばいいのかわからなかったので、知っている単語「Code Execution」が含まれているものを上から順に試しました(涙)。
まず17行目を使う宣言をします。プロンプトが変化しましたね。

設定が必要なオプションを確認します。

「required」が「yes」となっているのが「必須設定項目」です。設定していきます。
・RHOSTS(ターゲットIPアドレス):10.48.156.5
・RPORT(ターゲットポート):1234
・TARGETURI(Tomcat managerが動いているパス):デフォルトのままでOK
・LHOST(自分のIPアドレス):192.168.142.6
・LPORT(自分のPCの待ち受けポート):デフォルトのままでOK
また今回は、ユーザ名とパスワードが判明しているので設定していきます。
・HttpPassword:bubbles
・HttpUsername:bob

設定した内容が反映されているか確認します。

設定内容が間違っていた場合(例:RHOSTSを変更したい場合)は「set RHOSTS X.X.X.X」などのようにして上書きすることができます。設定内容を削除したい場合(例:RHOSTSを削除したい場合)は「unset RHOSTS」で削除できます。
ではexploitしてみましょう!ちなみ私は「run」派です。入力が3文字でいいので・・・

プロンプトが「meterpreter」となりました。exploit成功のようです。ただmeterpreterだと限られたコマンドしか使えないため、「shell」コマンドでシェルを変更します。

プロンプトがなくなりましたが問題ありません。「whoami」を実行します。

「root」ユーザのようですね。
【Answer:root】
ーQ10 What flag is found in the root directory?ー
rootなので、/rootにもアクセスできるはずです。覗いてみましょう。「flag.txt」がありますね。

最終flagゲットです。お疲れさまでした。

【Answer:ff1fc4a81affcc7688cf89ae7dc6e0e1】
<今回の要点と感想>
・Webサイトの調査方法
・metasploit
・このRoom、45分じゃ終わらなくない?
<独り言>
コマンドはこまめに使わないと忘れちゃいますよね。


