こんにちは、ゆるいぞITチャンネルです。

今回はTryhackmeの「Simple CTF」という演習環境(ルーム)を使用してハッキングの学習していきたいと思います。

※「ハッキングラボの初期構築」、「TryHackMeへの接続方法」については下記のページをご参照ください。

※Youtubeでは動画版をご視聴いただけます。

この記事はこんな人にオススメ
  • ハッキングスキルについて知りたい
  • セキュリティの知識を学習したい
  • ITインフラの知識を学習したい

※実務や演習等を除き、インターネット上のサーバへクラッキングすることは違法行為となりますのでご注意ください。

0.使用する環境

ゆるいぞIT

今回はTryHackMeの演習用サーバにVPN接続して実施します。

ソフトウェア

  • 仮想環境 : Virtual Box
  • 攻撃用サーバ : Kali Linux
  • ターゲットサーバ : TryHackMeのWebサーバ

 演習環境

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

1.演習の流れ

大まかな流れとしてはKali LinuxからTryHackMeのWebサーバに接続し、サーバ内に仕込まれたフラグを回収することでゴールを目指すという流れになっています。

2.演習問題

問1:How many services are running under port 1000?

ポート1000以下で実行されているサービスはいくつありますか?」ということで、まずはターゲットホストに対してnmap(ポートスキャン)を実行しましょう。

”nmap”はサーバに対して開いてるポートをスキャンする偵察用ツールになります。

ポートとは?
簡単にいうとサービス毎に開いているドアのようなものです。
Webサービスならhttp・https 、メールならSMTP・POP、ポートが開いておきことで、それぞれのサービスを提供できるようになります。

スキャン結果を確認すると、1000番以下のポートは「21/tcp open ftp」、「80/tcp open http」になります。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

問1の答えは「 2つ 」になります。

問2:What is running on the higher port?

上位ポートでは何が実行されていますか?」ということで、スキャン結果から分かる通り「2222/tcp open ssh」になります。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

問2の答えは「 ssh 」になります。

問3:What’s the CVE you’re using against the application?

アプリケーションに対するCVEは何ですか?」ということで、使用しているアプリケーションに関連する脆弱性は何ですか?という問題になります。

この設問ではターゲットホストのディレクトリ情報を取得する必要があるので、まずは”gobuster”を実行します。

ディレクトリの説明については下記ページをご参照ください。

/simple」という隠しディレクトリが見つかりました、このディレクトリが少し怪しいので確認してみます。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

ページにアクセスすると「CMS Made Simple」というソフトウェアの”version2.2.8”を使用していることが分かりました。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

バージョン情報が分かったので、このソフトウェアの脆弱性を確認してみましょう。

Kali Linux上で脆弱性情報を確認する為には”searchsploit”というexploitを検索するコマンドを使用します。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

「CMS Made Simple < 2.2.10 – SQL Injection」の記載からSQLインジェクション関連の脆弱性があるようです。

/php/webapps/46635.py」に詳細情報が載っているので、こちらのファイルも確認してみます。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

該当する脆弱性のCVE番号が確認できました。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

ちなみにソフトウェアの脆弱性情報は”exploitDB”でも検索できます。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

問4:To what kind of vulnerability is the application vulnerable?

このアプリケーションには、どのような脆弱性がありますか?」ということで、さきほど確認した通りSQLインジェクションに関する脆弱性があります。

問4の答えは「 SQLインジェクション 」になります。

問5:What’s the password?

パスワードは何ですか?」ということで、さきほどsearchsploitで見つけたプログラムを使ってターゲットホストにログインする為のアカウント情報を見つけていきます。

実行結果からユーザID「mitch」、パスワード「secret」ということが分かりました。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

問5の答えは「 secret 」になります。

問6:Where can you login with the details obtained?

ターゲットホストにどうやってログインしますか?」ということで、最初に実行したポートスキャンでSSH(22番ポート)が開いていることが確認できているのでSSHでターゲットホストにログインします。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

問6の答えは「 SSH 」になります。

問7:What’s the user flag?

ここまででフラグ獲得の準備が整いましたので「一つ目のフラグ(userフラグ)」をゲットしていきます。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】
TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

問7の答えは「 G00d j0b, keep up! 」になります。

問8:Is there any other user in the home directory? What’s its name?

ホームディレクトリに他のユーザーはいますか?」ということで、ターゲットホストの/home配下を確認してみるとmitch以外に「sunbath」というユーザを確認することができます。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

問8の答えは「 sunbath 」になります。

問9:What can you leverage to spawn a privileged shell?

特権に昇格する為に何が使用できますか?」ということで、root権限になる為に何か使えそうなものを探しましょう。という問題になります。

ここではsudoコマンドを使用します。

-lオプションをつけることで特権ユーザーで実行できるプログラムを確認することができます。

mitchは次のコマンドを実行できます」という記載があり、vimコマンドを使用するとパスワード無しでroot権限になれてしまう…ということが分かりました。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

問9の答えは「 vim 」になります。

問10:What’s the root flag?

rootフラグは何ですか?」ということで、二つ目のフラグ(rootフラグ)をゲットしていきます。

まずはさきほど確認したvimを使ってroot権限にに昇格します。

GTFOBins」という権限昇格についてのテクニックが纏まっているサイトを参照します。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

vimについて記載されているページを確認すると、下記コマンドでroot権限になれることが分かりました。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

コマンドを実行するとroot権限になれました。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

root権限になれたら「root.txt」のフラグを確認して完了になります。

TryHackMeの「Simple CTF」を解いてみよう【ハッキングスキル】

問10の答えは「 W3ll d0n3. You made it! 」になります。

ということで、TryHackMeの「Simple CTF」の解説は以上になります。

それではまた次回お会いしましょう!