TryHackMeで初心者ペンテスターになろう

こんにちは！
自分はふだん脆弱性診断の業務に従事しておりますが、そこから一歩進んだ知識を身につけたいと思い学習サイトを探しておりました。
最初はHackTheBoxというサイトを試してみたのですが、ある程度経験ある人向けの内容だったので、他にもさがしていたところ、**TryHackMe**というぴったりなサイトと出会いましたので、ここで紹介します！

# TryHackMeの概要

https://tryhackme.com/

TryHackMeはセキュリティエンジニアに必要な知識やツールの使い方が学べるサイトです。
最大の特徴は、仮想環境が用意されているので、　**実際に自分の手を動かし**ながら学べるところです。
各セクションごとにCTF[^CTF]形式の問題もあるので、実際に学んだことが身についたかの確認ができるのもポイントが高いです。
[^CTF]:CTF...Capture the Flagの略。演習用に用意されたサーバーに侵入して、そこに記載してある文言（Flag）を見つけるゲーム。腕試し用のCTFサイトや大会があるので、腕に自信のあるセキュリティエンジニアが参加したりしている。

### 学べること
- サイバーセキュリティの基礎知識
- ペネトレーションテスト
- SOC
- Red Team
などなどたくさんのコースがあります。

またそれに付随するソフトウェアの使い方も学べます。
受講できるコース一覧は下のリンクからどうぞ。

https://tryhackme.com/hacktivities

### 費用
~~月額$10なので、だいたい月1400円くらいです。~~
→$12に値上げしていました、、（2023年7月現在）。年額プランだともう少し安いみたいです。

無料版もありますが、講座の一部のみしか受講できないのと、仮想環境の利用に時間制限あるので、試用して気に入ったら課金した方が快適です。


### 注意点
**日本語対応していません！**　しかしご安心ください。
Google Chromeで右クリック→翻訳で、サイトのレイアウトそのままで日本語になります。これがなかなか精度が高いので大体いけます。ただしCTFの回答時に少々難があるので、その時は英語に戻した方が良いです。

自分は外国語学部を単位ギリギリで卒業した英語力を駆使し、頑張って英語のまま読み進めましたが、日本語の方が圧倒的にタイパが良いことに気づき、途中から日本語でやっていました。新しいことを学ぶときは、母語の方が理解が早いですね。

そもそも日本語の学習サイトがあれば、それを選択していたのですが、セキュリティ関連のものはなかなかないですね。Udemyのような講義形式のものだと多少はあるのですが、自分はProgateもみたいに手も一緒に動かしたかったので、TryHackMeを選択しました。



### 仮想環境について
TryHackMeでは、用意されたサーバーへ攻撃するのですが、そこへの接続方法は主に２つです。それぞれメリット、デメリットがあったので補足として説明させていただきます。

#### 1.ブラウザから仮想環境に入る
1つ目はブラウザからLinuxの仮想環境に入り、そこからサーバーに攻撃する方法です。リモートデスクトップに接続してそれを操作する感じです。クリックするだけで接続できます。実習に必要な全てのツールや環境が整っているので、すぐに学習を進めることができます。

#### 2.自分のPCからVPN接続する
2つ目は攻撃対象のサーバーにVPN接続する方法です。初回はVPNへの接続用ソフトをインストールし、アクセスキーをインポートする必要がありますが、2回目以降はボタンひとつで接続できます。
演習に使う環境の用意やツールのインストールは自分で行う必要があります。


#### 筆者は最終的に自分のPCでVPN接続しました。
最初は1の仮想環境を使ったのですが、すぐに2の手法に変えました。
というのも、仮想環境はちょっと重かったです。
また仮想環境側とPC側でクリップボードの共有するのにひと手間かかるので、値をコピペするの時間がかり、そこがストレス(特にCTFの回答時)でした。

ただし実習環境の用意に、不慣れなコマンドラインを使用したりしないといけないので、少々手こずりました。
また自分はMacだったのですが、Windowsだとまた一手間必要かもしれません。


## コースの紹介

### Jr Penetration Tester

今回は複数あるコースの中で、**Jr Penetration Tester**を受講してみました。
名前の通り、ペネトレーションテスト[^ペネトレーションテスト]をこれからやってみたい人向けのコースになります。
[^ペネトレーションテスト]:ペネトレーションテスト...ペンテストともいう。脆弱性を悪用しシステムに侵入して機微情報の奪取や情報の改竄ができるかを確かめる。脆弱性診断との違いは、脆弱性診断は脆弱性を洗い出すことを目的としているが、ペンテストは実際に攻撃が成立するかの確認する。（ただし、両者の言葉の違いは日本国内での認識で、海外でも同じ認識なのかはよくわかりませんでした）

現在自分は、業務で脆弱性診断については約2年ほど行っておりますが、そこから一歩進んだスキルを身につけたいと思ったのでこちらを選択しました。

脆弱性の説明や必要なソフトの基本的な使い方から始まりますので、特に脆弱性診断の経験がなくとも、学習難易度は高くないかと思います（そもそも経験がない人に向けての学習サイトかと思いますので、内容の説明も丁寧でした）。

また、セキュリティに馴染みのない方向けに、**Pre Security**コースがありますので、そちらを先に受講するのもお勧めです。


↓にコース内の各セクションでどんなことが学べるか、簡単に記載しました。


#### Introducution to WeB Hacking
ペンテストに必要な前提となる知識と、脆弱性の基礎知識と悪用の方法を学べます。
主に下記のことが学べます。
- 隠しディレクトリやサブドメインを探す手法
- 認証を回避できてしまう脆弱性
- IDOR(アクセス権限のないものにアクセスできてしまう脆弱性)
- パストラバーサル
- SSRF（サーバーサイドリクエストフォージェリー）
- XSS(クロスサイトスクリプティング)
- コマンドインジェクション
- SQLインジェクション

現場の診断業務でもよく目にするものが多く、知識を深めることができて全体的に勉強になりました。特にパストラバーサルは、なんとなくしか概要を掴んでいなかったので、発生メカニズムが理解できてとても勉強なりました。またXSS発生時の具体的な攻撃スクリプトの紹介も勉強になりました。

#### Burp Suite
脆弱性診断ではお馴染みすぎるプロキシツール、**Burp Suite**の使い方がわかります。
RepeaterやIntruderといった特徴的な機能も学べます。
診断業務ではプロキシツールがないととても効率が落ちるので学習は必須です。

また便利なエクステンダーの追加方法も学べます。


#### Network Security
主に**Nmap**を使った偵察方法を学べます。つまりターゲットへの侵入方法を学べるセクションとなります。
主に下記のことが学べます。
- 受動的な偵察方法と能動的な偵察方法の違い等の基礎的な部分
- ポートスキャンの方法
- ポートスキャン後に必要な手順
   - 特にサービスの検出、OS の検出、Nmap スクリプトの書き方、スキャン結果の保存方法



#### Vulnerability Research
主な脆弱性のカテゴリや、脆弱性の深刻度を表すスコアの種類を紹介しています。
**CVSS**など、システムのセキュリティ評価時によく使う手法もここで紹介されています。

他にも下記のことが学べます。
- 脆弱性のデータベースの紹介
- 特定のソフトウェアなどの特定のバージョンにある脆弱性の調べ方
- 脆弱性の発見手法について（自動化されたスキャナーと手動での調査方法）

#### Metasploit
ペネトレーションテストでよく使われるコマンドライン上のツールです。
脆弱性の情報収集から実際の侵入までの全ての段階で有用なツールです。

主に下記のことが学べます。
- ポートスキャンの実施
- データベース機能（複数プロジェクト実施時にワークスペースを分離できる）
- 脆弱性スキャンの実施
- 発見した脆弱性を悪用する方法
    - ペイロードを作成しエクスプロイトコード（攻撃成功時にサーバ上で実行させるコード）を生成
- Meterpreter(Metasploitのペイロードの作成ツール)の使用方法



#### Privilege Escalation
シェルを用いて、権限昇格（一般権限のアカウントを管理アカウントに権限を昇格させる方法）させる手法を学べます。またその際に役立つツール（Netcat,Socat）も学べます。

また攻撃対象が　LinuxとWindowsとで手法も異なってくるので、それぞれの手法を学べます。






## やってみて
業務の脆弱性診断で、脆弱性を洗い出すことのスキルは身についておりましたが、今回の学習で脆弱性そのものの根本的な理解と、悪用の実例を知れたことが大きい学びでした。

他にもさまざまなコースがあるので（一口にセキュリティと言っても本当に広いなあと改めて思いました）、また時間がある際にやってみようと思います！

また、HacktheBoxといったCTFサイトで力試しするのも面白そうだと思います！