はじめに
TryHackMeとは
TryHackMe(トライハックミー) は、世界中で人気のあるサイバーセキュリティ学習プラットフォームです。
クラウド上に用意された仮想環境を使って、ハッキング技術やセキュリティ対策を実際に手を動かしながら学べるのが特徴です。環境構築がほぼ不要で無料の会員登録だけでハッキング演習をできるので、ハッキングをやってみたいけれど、何から始めればいいのか分からない方に特におすすめです。

7日間でハッキングをはじめる本とは
TryHackMeを利用してハッキングをしてみる本です。
最初は環境構築からはじまり、簡単な攻撃や各種ハッキングツールの利用方法などが学べます。
環境構築から始まるため、初心者でもつまずかずにTryHackMeに挑戦できる良書でした。
初心者向けのため、業務経験がある方や、すでに勉強を始めている方には物足りないかもしれません。
本書によると前提条件・知識は
①自分のパソコンを持っている:必須
②インターネットにつながる環境がある:必須
③ Linuxを触ったことがある:推奨
・黒い画面にアレルギ-がない
・ ls 、 cd 、cat などの基本的なコマンドを使って操作することができる
とのことです。

この本を手に取ったきっかけ
CISSPに合格したもののインプットだけでアウトプットができていなかったので次は手を動かした勉強がしてみたいと思い、初心者向けらしいこの本から取り掛かってみることにしました。特に「この本でなければいけない!」というこだわりはありませんでしたが、ハッキング最初の一歩としては正解の一冊だったと感じています。
ちなみにCISSP合格体験記も書いているので興味があればご覧下さい。

Day1~Day7
本書はタイトルの通り7日間で無理なく学べるように内容が区切られています。
目標がはっきりしているので取り組みやすかったです。
各日の内容は以下のとおりです。
Day1 ハッキングの準備をしよう
Day2 はじめてのハッキング
Day3 悪用厳禁のエクスプロイトを試してみよう
Day4 よくある脆弱性を使って怪しいショップで遊ぼう
Day5 Webフォームから侵入しよう
Day6 Active Directoryのハッキング実践
Day7 WordPressのハッキング実践
Day1 ハッキングの準備をしよう
まずは環境構築です。
Kali LinuxやVirtual Boxのインストール、TryHackMeの登録などを行います。
私はLinuxの業務経験があったので特に難しいと感じることはなかったですが、設定したパスワードをタイプミスして
Linuxにログインできなくなるというまさかの凡ミスをしました。実務でやってしまうと非常にまずい。気を付けなければ。
後はInternal Virtual IP Addressが0.0.0.0のまま変わらず躓きました。
他の方のブログを見ていても同じ事象が起きているようで、最終的にここは変わっていなくてもVPN接続ができていれば問題なさそうだったので本書の通りとはいかなかったですが、そのまま進めました。

Day2 はじめてのハッキング
ここからが本書の本題です。
このセクションでは辞書攻撃とマシンへの侵入を行います。
ここで利用するツールは以下のとおりです。
・nmap
・dirb(辞書ファイルはsmall.txt)
・hydra(辞書ファイルはrockyou.txt)
本書の通りにやっていれば特に問題なく進めるかと思います。
本書を進めていくと色々なツールが出てきてだんだん分からなくなってくるので、何の目的でツールを使っているのか、自分は今攻撃のどの段階にいるのか一言メモなどで残しておくといいかもしれません。
【本セクションでの個人的メモ】
・dirbとhydraの違い
どちらもブルートフォース系のツール
dirb→ディレクトリ探索用
hydra→認証システム用
・ロードマップ
1.ポートスキャン
2.ディレクトリ探索
3.共有フォルダーへ侵入
4.辞書攻撃
5.侵入
Day3 悪用厳禁のエクスプロイトを試してみよう
このセクションでは脆弱性を悪用したマシンへの侵入と侵害を行います。
ここで利用するツールは以下のとおりです。
・nmap
・Metasploit
・xfreerdp
今回のターゲットマシンはWindowsです。
Windowsの業務経験がなかったので少し不安でしたが、事前知識がなくても問題なく進められました。
【本セクションでの個人的メモ】
・Metasploitの「モジュール」と「ペイロード」
モジュール→攻撃や支援のための部品
ペイロード→エクスプロイト成功後にターゲット上で実行されるコード
・ロードマップ
1.ポートスキャン
2.脆弱性調査
3.脆弱性を悪用したマシンへの侵入
4.ターゲットマシンの操作
5.情報窃取
Day4 よくある脆弱性を使って怪しいショップで遊ぼう
このセクションではWebサービスへの侵入と侵害を行います。
ここで利用するツールは以下のとおりです。
・BurpSuite(辞書ファイルはbest1050.txt)
このあたりから本格的なハッキングになってきます。
BurpSuiteは初めて触ったのですが、HTTPログの閲覧、デベロッパーツール、POSTデータの改変など簡単に便利機能を使えて感動しました。
【本セクションでの個人的メモ】
・ロードマップ
1.Webサイトを探索
├ユーザー登録
└レビュー投稿
2.SQLインジェクション、管理画面アクセス
3.サイト改変
4.辞書攻撃
Day5 Webフォームから侵入しよう
このセクションではWebフォームへの侵入と権限昇格を行います。
ここで利用するツールは以下のとおりです。
・nmap
・FTP
・dirb
・BurpSuite(辞書ファイルはextensions-most-common.fuzz.txt)
・リバースシェル(php-reverse-shell.php)
内容が濃くなってきて今まで1時間30分~2時間程度でセクション完了していましたが、3時間くらいかかるようになってきました。
今回は初期侵入→権限昇格と現実のハッカーっぽい挙動です。
【本セクションでの個人的メモ】
・SUID
実行時に「ファイル所有者」の権限で動作する。典型例はpasswd。
・ロードマップ
1.ポートスキャン
2.FTPへの侵入→失敗
3.サイト調査
└ディレクトリ探索
4.アップロードフォーム調査
└利用可能拡張子の探索
5.リバースシェルによる初期侵入
6.権限昇格
Day6 Active Directoryのハッキング実践
このセクションではActive Directoryのハッキングを行います。
ここで利用するツールは以下のとおりです。
・nmap
・Kerbrute
・Impacket
・hashcat
・Evil-WinRM
Kerberos認証やNTLM認証などが登場してきました。これらは仕組みを知らなかった人には少し難しく感じるかもしれません。私自身もActive Directoryへの攻撃に詳しくなかったのでAS-REP Roasting攻撃やDCsync攻撃は初めて知りました。個人的にはこのセクションが最も難しかったです。
【本セクションでの個人的メモ】
・Kerbrute
Kerberos環境での「ユーザー列挙」や簡単なブルートフォースを行うツール
・Impacket
Pythonベースのライブラリ兼ツール群で、Windows/AD のプロトコル(SMB, DCE/RPC, Kerberosなど)を操作するための実装集
・hashcat
GPU(やCPU)で超高速にハッシュを総当たり/辞書攻撃するためのパスワードクラッキングツール
・Evil-WinRM
Windows 標準のWinRM(Windows Remote Management)サービスを使ってPowerShellリモートシェルを得るためのツール
・AS-REP Roasting攻撃
Pre-Authentication(事前認証)を無効化しているアカウントに対してAS-REQを送り、KDCが返す暗号化された応答(AS-REP)を取得し、オフラインで解析(総当たり/辞書攻撃)してパスワードを推測する攻撃
・DCsync攻撃
ADのレプリケーション機能(Directory Replication Service Remote Protocol, MS-DRSR)を悪用して、ドメインコントローラから直接ユーザーのハッシュ(NTLMなど)やkrbtgtのハッシュを取得する攻撃
・ロードマップ
1.ポートスキャン
2.ポートスキャン(詳細調査)
3.Kerbruteによる辞書攻撃でユーザー名を割り出す
4.上記3で入手したユーザー名を使いAS-REP Roasting攻撃
5.hashcatでハッシュ値からパスワードを特定
6.得られたユーザー名とパスワードを使い、共有フォルダーを探索(ここで別ユーザのパスワードを発見)
7.上記6で見つけたユーザーはバックアップ用のユーザーなのでDCsync攻撃
8.上記7のDCsync攻撃で得られたAdministratorでPass the Hash攻撃
Day7 WordPressのハッキング実践
ついに最後のセクションです。
このセクションではWordPressのハッキングを行います。
ここで利用するツールは以下のとおりです。
・steghide
・wpscan(辞書ファイルはrockyou.txt)
・Metasploit
・LinPEAS
このサイトもWordPressで作成しているため実際にハッキングしていて恐怖を感じました。(もちろんセキュリティには気を付けていますが…)
最後のセクションなので長丁場になるかと思いましたが、Day6よりも時間がかからず比較的簡単でした。
【本セクションでの個人的メモ】
・LinPEAS
Linuxシステム用の権限昇格に使える設定ミスを教えてくれるツール。Windows用はWinPEAS、Mac用はMacPEAS。
・ロードマップ
1.ポートスキャン
2.共有フォルダーへ侵入
3.共有フォルダーからダウンロードしたファイルの解析
4.WordPressの探索
5.WordPress脆弱性を悪用し初期侵入
6.権限昇格
感想
楽しかったです!
上述の通り、CISSP合格後のアウトプットのために始めたので、終始「これCISSP(の練習問題)でやったところだ!」とテンション上がりっぱなしでした。
しかし、以前にLinuxの勉強はしていてそれなりにできると思っていたのですが、SUIDなどについて一瞬、「それって何だっけ?」となってしまう場面があり、愕然としました。
もう数年Linuxの業務から離れていたので知っていて当たり前のことが曖昧になっているようです。
新しいスキルを身に付けるだけでなく、一度勉強したことも定期的に振り返らないとまずいですね。
この本でTryHackMeの取り組み方については理解できたと思うので、これからはLinuxの復習をしつつどんどん新しいルームにも取り組んでみようと思います。
コメント