本記事は『7日間でハッキングをはじめる本 TryHackMeを使って身体で覚える攻撃手法と脆弱性』(著:野溝のみぞう)の「Day 0:ブリーフィング」から抜粋したものです。掲載にあたって編集しています。
ハッカーに憧れる永遠の厨二病のあなたへ
本書は、いい歳して映画やアニメで見るようなスーパーハッカーに憧れている厨二病患者の方のために書きました(筆者のことです)。
ハッカーに必要なのは好奇心だと思います。新しいことを「知りたい」と思うことは素敵なことですが、「大いなる力には大いなる責任が伴う」の言葉どおり、知識とそれを扱う技術を得ることは注意を要することでもあります。
よく、悪意を持ったハッカー(クラッカー)を「ブラックハッカー(ブラックハットハッカー)」、正義のハッカーを「ホワイトハッカー(ホワイトハットハッカー)」と区別することがあります。しかし、これは「黒が悪者で白が正義」のような偏った抽象概念に基づくところがあるので避けるべきだ、と言われることも多いです。その是非はともかく、高度な知識や技術は、使い方によって毒にも薬にもなるということは間違いなさそうです。
一方で、「知りたい」と願ったあなたの好奇心がとても尊いものであるということも、紛れもない事実です。本書は、できるだけ安心・安全・快適・楽しく愉快に軽やかにその気持ちをガイドします。
一緒にかっこいいスーパーハッカーになりましょう!
ハッカーへの第一歩を踏み出そう
昨今、サイバー攻撃の増加に伴い、会社や学校などでサイバーセキュリティの教育を受けることが普通になってきています。
一方で、ハッカーを題材にした漫画やアニメやドラマや映画も人気があり、サイバーな世界で縦横無尽に活躍する彼ら彼女らに憧れる方もいるでしょう。黒い画面に緑色の文字が高速で流れるモニター、無言で指先だけを動かし、謎の超絶テクニックで華麗に難題を解決するスーパーハッカー……テンプレ的ですがやっぱりカッコいいですね。
とはいえ、会社や学校で勉強しても、あのカッコいいハッカーたちがいったい何をしているのかはよくわからないことが多いです。あくまでフィクションの存在ととらえることもできますが、すべてが嘘とも言い切れません。では、現実のハッキングとはどのようなものなのでしょうか? 興味はありませんか?
本書は、そんなあなたの好奇心に応えて、ハッキングの最初の一歩を踏み出すために必要な最低限の知識とテクニックを7日間に詰め込んだ本です。
ハッカーとは本来コンピューターやネットワークについて高度な知識や技術を持つ人を指し、悪意・悪用の有無は関係ない呼称です。本書でも、あえてハッカーやハッキングという言葉を使っている箇所がありますが、悪用をすすめる意図はありません。なお、本書の学習過程であえて悪用を行うシーンでは、ハッカーのことを攻撃者と呼び、使い分けています。
本書でできること
- 「ハッカーってカッコいいな~!」といったレベルの人が、7日間で無理なく雰囲気を味わえるようになります
- 将来の学習に必要な環境を構築し、ハッキングツールの使い方の基本を学べます
- 攻撃者の行動を知ることで、対策について考えるきっかけになります
大切な注意事項
本書で学んだ内容を、特別に許可されたサイトまたは自分の管理する環境以外で実行することは犯罪につながるおそれがあります。
日本の法律において、悪用の意図があるかどうかにかかわらず、他者が所有するサーバーへの攻撃試行や正当な理由のない攻撃コードなどの作成を行うことは、不正アクセス禁止法(通称)違反、ウイルス作成罪(通称)、電子計算機損壊等業務妨害罪などに問われる可能性があります。
本書ではTryHackMeという特別な環境に接続して学習を進めます。それ以外のサーバーやネットワークに対する攻撃および攻撃の試行は絶対にやめてください。
前提条件・知識
本書の内容に取り組むには、以下の条件をクリアしていることが必要です。
- 自分のパソコンを持っている:必須
- インターネットにつながる環境がある:必須
-
Linuxを触ったことがある:推奨
- 黒い画面にアレルギーがない
- ls、cd、catなどの基本的なコマンドを使って操作することができる
特に3については、少しハードルが高いかもしれません。今までLinuxにまったく触れたことがないという方や、あまり自信がないという方向けに、Day1の最後で「補習」を用意しています。補習を修了してからDay2以降へと進むことで問題なく続きを読み進めることができます。
本書におけるハッキングの楽しみ方
本書における毎日のハッキングは、おおむね次の図のような流れで進みます。
最初にロードマップを示してその日の目標を確認し、それを達成するまで情報収集と攻撃実行を繰り返し、目標を達成していきます。
一方通行ではなく「目標が達成されるまで情報収集と攻撃をぐるぐる回している」ところがポイントです。収集した情報をもとに攻撃し、攻撃によって得られた情報を使って追加の調査を行うことで違う観点の攻撃が可能になり、さらに大きな成果につながっていく……といったイメージです。
本書では便宜上、ロードマップ中の行動を「情報収集フェーズ」と「攻撃実行フェーズ」とに分けて図示しています。やってみるとわかるはずですが、やや強引に単純化して当てはめているため、分け方が微妙なこともあります。しかし、「一筋縄ではいかないけれど、わちゃわちゃしているのが楽しい」ハッキングの世界をやさしく表現するためにこの描き方としました。
サイバー攻撃のプロセスについて興味が湧いた方は、本書を読み終えたあとにMITRE ATT&CK®やCyber Kill Chain®などのキーワードで調べることで、本書で学んだ楽しさをさらに解像度高く味わえるかもしれません。
想定環境
本書は、以下の環境で動作確認を行っています。厳密にこのバージョンと同じである必要はありませんが、他の環境では画面や手順が違う可能性があります。
ホストOS:Microsoft Windows11 バージョン23H2
ゲストOS:Kali Linux 2024.1および 2024.2
仮想化ソフトウェア:Oracle VM VirtualBoxバージョン 7.0.14 r 161095および 7.0.18 r 162988
本書におけるIPアドレスの表記について
本書において、ターミナルの入出力時にIPアドレスを表記する場合は、ターゲットマシン(攻略対象のサーバー)のIPアドレスを「10.○.○.○」、ローカルマシン(自分が操作する端末)のIPアドレスを「10.△.△.△」と表記しています。ご自身の環境で適宜読み替えて解釈してください。
学習プラットフォーム「TryHackMe」について
本書では、TryHackMeというクラウドサービスを使って学習を進めていきます。初めて知ったという方のために、ここでは簡単に本サービスを紹介します。
無料でハッキングが学べるWebサービス
TryHackMeは、イギリスのTryHackMe社が運営しているサイバーセキュリティトレーニングプラットフォームであり、2018年の設立以降、世界中で320万人以上のユーザーに利用されている(本書執筆時点)非常に人気のあるサービスです。
メールアドレスの登録を行うだけで、多くの機能を無料で利用することができます。有料機能もありますが、本書では基本的に無料で利用できる範囲に絞って学習を進めていくため、クレジットカードの登録などは不要です。
TryHackMeを使うメリット
本書を執筆するにあたり、筆者がTryHackMeを選定した理由を挙げます。
1.ターゲットの準備が「超簡単!」にできる
筆者の個人的意見として、ハッキングの学習を始めた初学者が最初につまずくのは「攻撃対象を用意する」点だと思います。
前述のとおり、学習目的であっても他人のサイトで攻撃を試すのは絶対NGです。CTFの問題サーバーになっているなどの特別な場合以外は本当に、絶対!ダメです!!(CTFとはCapture The Flagの略で、情報セキュリティのスキルを競う競技のことです。技術や知識を駆使して隠されているフラグ(問題の答えとなる文字列)を見つけ出すことを目的とします)。
なので、ハッキングの勉強を始めるためには、最初に「他人に迷惑をかけないターゲット」(「やられサーバー」と呼ばれたりもします)を自分で用意する必要があります。
しかし初学者にとっては、きちんとしたやられサーバーを自分で準備するのが難しい、という問題があります。また仮に用意できたとしても、そこそこの手間がかかるのは事実です。もちろんそれはそれで勉強になるので、挑戦すること自体はとてもよいことではありますが、最初の環境構築で悩んでいるうちにうっかりSNSなどを見てしまい、虚無の時間を過ごしてしまってモチベーションを保てない……みたいなことも往々にして発生します(筆者の経験談)。
TryHackMeを使えば、やる気になったそのときにボタンクリック1つでターゲットの環境ができあがり、集中力が切れないうちにすぐハッキングに取りかかることができます。これはなかなか得難いメリットでしょう。
2.クエスト攻略で自然にレベルアップできる
やられサーバーの構築が終わったあと、初心者が次につまずくのが「で……、このあとどうしたらいいの?」というところでしょう。「なんとなくカッコいいから」で始めた初心者のうちは、自分で目的を見つけること自体が難しいものです。これも挫折の1つの要因ではないでしょうか。
その点、TryHackMeなら、タスクという形で次にやるべきことが指示されるので迷いません(正確には、Walkthroughsタイプのルームでのみタスクが詳しく指示されます)。
これは、与えられたクエストをクリアすることで、自然と経験値が貯まってレベルアップしていき、さらに難しいクエストに挑戦できるようになるという、ゲームに近い感覚です。説明さえちゃんと読めば、入門の手前で何もできずに終わるということもありません。
もちろん本書では、解説を交えながら一緒にターゲットを攻略していく形で進めていくので、本書の範囲を学習している限り、置いてけぼりにはならないはずです。しかし、この本は7日間、つまりたったの1週間で読み終わってしまいます。
本書で触れられる範囲は、深くて広いハッキングの世界のほんの上澄みの一部分だけ。筆者としては、本書の読者の方には、読了したあともレベルアップし続けることを願っています。本書を読み終えたあとも学習のプラットフォームとして継続的に利用できるという点も、TryHackMeを選定した理由の1つです。
TryHackMeの欠点
そんな「いいとこだらけ」のTryHackMeですが、もちろん欠点もあるので、理解したうえで活用していきましょう。
英語のサイトなので苦手な人は苦労するかも?
TryHackMeはイギリスの会社が運営するサービスです。したがって、サイトのメニューや説明書きはすべて英語です。そのため、(筆者含め)英語が苦手な日本語話者には少し取っつきにくいかもしれません。
とはいえ、TryHackMeは世界中で使われている学習プラットフォームであり、おおむね翻訳ソフトを使えばだいたい何が書いてあるかわかるレベルのやさしい英語で書かれているので、それほど心配しなくて大丈夫です。
最近の翻訳ツールは優秀なので、翻訳して読んでわからないものは日本語でも大抵わかりません。そういう部分は、追加で別の文献やサイトなどで調べることが必要になることもありますが、それは言語にかかわらず必要なことだと言えるでしょう。
中級者以上の人には物足りないかも?
前述のとおり、TryHackMeは初心者の方にやさしいプラットフォームではありますが、その一方で中級者以上の方には物足りない部分があることも事実です。
すべてがそうではありませんが、基本的にタスクで問われている設問の解答を導き出すことになるという点は、裏を返せば自由に解法の道筋を立てることができないというデメリットでもあります。ハッキングに慣れてきた方には、用意されたシナリオの中で問題を解くということがお遊びのような、少し物足りない感覚を抱くかもしれません。
筆者としてもハッキングの醍醐味は、挑戦の仕方の自由さや攻略のための想像力の豊かさにあると考えているので、タスクを消化する作業のようになってしまうと面白くないなと感じることもあります。
そういう方は、Challenges系のルームや、King of the Hillに挑戦してみると、より長く楽しめるかもしれません。もしくは、TryHackMeを卒業してHack The BOXやVulnHubなどの別のサービスを使ってみるのもおすすめです。卒業しても、本書で学んだことはきっと役に立ちますよ。