はじめに
本稿では、「Hack The Box」(通称、HTBとも呼ばれています)を快適に楽しむために必要となるKali Linux
のチューニングについて解説します。
Hack The Boxとは
Hack The Boxは、2017年6月に設立されたサイバーセキュリティトレーニングのオンラインプラットフォームです。 いくつかのソーシャル要素とゲーミフィケーション要素が採用されていることで、学習体験を楽しくやりがいのあるものにしています。
- ダッシュボード
Hack The Boxを楽しむ手順
- 攻撃環境としてペネトレーションテスト用のOS(Kali Linux / Parrot Security Linux / CommandoVM など)を用意する。
- Hack The Boxの[Invite Challenge]ページのHTMLソースコードを解析し、「Invitation Code(招待コード)」を入手。アカウント登録を行う。
- Hack The Boxのダッシュボードにある[Access]ページからOpenVPNアクセスファイル(「connection pack」と呼ばれる)をダウンロードする。
- Hack The Box VPN 仮想ネットワークへ接続する。
「Complete Mandiant Offensive VM(Commando VM)」とは、ペネトレーションテストとレッドチーミングのためのカスタマイズ可能なWindowsベースのセキュリティディストリビューションです。Githubから入手することが可能です。詳細については、FireEye社のブログをご確認ください。
Kali Linux仮想イメージのダウンロード
Offensive SecurityのサイトでVMwareおよびVirtualBoxイメージを入手することが可能です。
ここでは、kali-linux-2021.2-vmware-amd64.7z
を使用します。
┌──(kali㉿kali)-[~]
└─$ cat /etc/os-release
PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
ID=kali
VERSION="2021.2"
VERSION_ID="2021.2"
VERSION_CODENAME="kali-rolling"
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="https://www.kali.org/"
SUPPORT_URL="https://forums.kali.org/"
BUG_REPORT_URL="https://bugs.kali.org/"
キーレイアウトを日本語配列にする
初期設定のKali Linuxでは、英語キーボードが選択されています。日本語キーボードを使用している場合、次の手順にて設定変更を行います。
- 左上のメニューから[Settings] > [Keyboard]を選択する。
- [Layout]タブを選択し、[Use system defaults]チェックボックスを外す(OFF)。
- [+ Add]をクリックする。その後[Japanese]を選択し、[OK]ボタンをクリックする。
- [English(US)]を選択し、[- Remove]で取り除く。
- [x Close]をクリックし、[Keyboard]ウインドウを閉じる。
ロケール(locale)設定を確認、変更する「localectl
」コマンドにて日本語配列を指定することもできます。
┌──(kali㉿kali)-[~]
└─$ localectl status
System Locale: LANG=en_US.UTF-8
VC Keymap: jp-OADG109A
X11 Layout: jp
X11 Model: jp106
X11 Options: terminate:ctrl_alt_bksp
localectlの主なコマンド
コマンド名 | 意味 |
---|---|
status | 現在のロケール設定を表示する(デフォルト) |
set-keymap 配列 | キーボード配列を設定する |
$ sudo localectl set-keymap jp106
$ sudo localectl set-keymap jp-OADG109A
タイムゾーンを変更する
- 右上の時刻表示部分を右クリックし、[Properties]を選択する。
- [Clock]ウインドウにて、[Timezone:]に[Japan]を選択する。
OpenVPN クライアントの設定
- Hack The Boxのダッシュボードにある[Access]ページより、
connection pack
をダウンロードする(ここでは、<your_username>.ovpn
とする)。 -
Terminal Emulator
を実行し、次のコマンド構文を実行する。
kali@kali:~$ sudo openvpn <your_username>.ovpn
接続に成功すると、次のような最終行を含む大量の出力が表示される。
Initialization Sequence Completed
openvpn
コマンド実行後に、sudo ifconfig
コマンドにて、tun0:
のIPアドレスを確認する。
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 10.10.14.XXX netmask 255.255.254.0 destination 10.10.14.XXX
inet6 dead:beef:2::XXXX prefixlen 64 scopeid 0x0<global>
inet6 fe80::e262:e52f:1660:XXXX prefixlen 64 scopeid 0x20<link>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 22 bytes 1056 (1.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Hack The Box の標的 Networkは、10.10.10.0/24 (10.10.10.1-10.10.10.254)
の範囲です。
OpenVPN接続時のIPアドレスをパネルに表示する
@takahoyo さんによるカスタマイズ記事, Kali Linux で OpenVPN接続時のIPアドレスをパネルに表示する
Alternate TCP接続
初期設定において、VPNはUDP port 1337
を使用しています。このポートが接続環境においてブロック対象となっている場合、.ovpn
ファイルを編集してTCP 443
に切り替えてみてください。
-
proto udp
項目をproto tcp
に変更します。 -
remote {serverAddressHere} 1337
項目をremote {serverAddressHere} 443
に変更します。 -
<tls-auth>
項目を<tls-crypt>
に変更します。 -
</tls-auth>
項目を</tls-crypt>
に変更します。
Aliasesの設定
$HOME/.zshrc
ファイル1を編集し、そのファイルの末尾にエイリアスを追加します。
kali@kali:~$ nano $HOME/.zshrc
## ALIASES
alias htb='sudo openvpn $HOME/vpn/<your_username>.ovpn'
alias mapshare='sudo $HOME/mapshare/mount-shared-folders.sh'
- htb: この設定により、ターミナルにて
htb
と入力し、実行すれば HackTheBox のネットワークへ接続することができます。事前に$HOME/vpn
ディレクトリを作成し、connection pack
(<your_username>.ovpn
ファイル)をダウンロード、配置しておく必要があります。 - mapshare: この設定により、ターミナルにて
mapshare
と入力し、実行すればVMwareの[共有フォルダ]設定を回復することができます。
VMware関連のチューニング
ゲストOS(Kali Linux)からホストOSのフォルダに直接アクセスできる「共有フォルダ」機能を使用するための設定を行います。
Open VM Tools インストール
kali@kali:~$ sudo apt update && sudo apt full-upgrade -y
[ -f /var/run/reboot-required ] && sudo reboot -f
kali@kali:~$ sudo apt install -y --reinstall open-vm-tools-desktop fuse
kali@kali:~$ sudo reboot
共有フォルダの設定
- デスクトップ上に
mount-shared-folders.sh
スクリプトを作成。
#!/bin/bash
vmware-hgfsclient | while read folder; do
echo "[i] Mounting ${folder} (/mnt/hgfs/${folder})"
mkdir -p "/mnt/hgfs/${folder}"
umount -f "/mnt/hgfs/${folder}" 2>/dev/null
vmhgfs-fuse -o allow_other -o auto_unmount ".host:/${folder}" "/mnt/hgfs/${folder}"
done
sleep 2s
- ホームディレクトリにシンボリックリンクを作成する。
kali@kali:~$ ln -s /mnt/hgfs/OffsecVM $HOME/OffsecVM
Kali Linuxに追加すべきツール
単語リスト / Fuzz
Webに対する調査
Windows OS - Active Directoryに対する調査
- Active Directory Assessment and Privilege Escalation Script
- AdExplorer
- BloodHound
- CrackMapExec
- Evil-WinRM
- Impacket
- Mimikatz
- Ping Castle
- PowerSploit
- Ranger
- Responder
Hack The Boxのランキング制度
Hack The Boxが人気な理由の一つが、そのゲーム性の高さといえます。攻略したマシンの数や課題提出に応じてポイントが付与されます。このポイント保有数に応じて7つのランクに認定されます。
ランク | 必要なポイント |
---|---|
Noob | >= 0% |
Script Kiddie | > 5% |
Hacker | > 20% |
Pro Hacker | > 45% |
Elite Hacker | > 70% |
Guru | > 90% |
Omniscient | = 100% |
攻略によってポイントが獲得できるのはActive
状態のMachine
またはChallenges(課題)
です。
Machine攻略
Machine
は合計20台提供されています。毎週最も古いマシンがドロップ Retired
され、代わって新しいマシンが追加されます。
このため、常に新鮮な状態のマシン攻略に取り組むことができます。
なお、Active
マシンへの挑戦は無料プランにて可能です。これに対して、Retired
マシンはVIPアカウント(有償アカウント)を用意することで挑戦できます。
ただし、Retired
マシンであっても、直近の2つは無料プランで取り組むことが可能です。
Starting Point
[Labs]メニューの[Starting Point]項目では、HTBラボのMachine/Challengeに関する具体的な攻略方法について、ステップバイステップで解説しています。
はじめたばかりの方はまず、この項目に従って、操作方法について確認することをオススメします。
@YuasaJunki さんが、Starting PointのWalkthroughをまとめています。「【Hack The Box】Starting Point(Archetype)」
Active Machinesメニュー
項目 | 概要 |
---|---|
Name | マシンの名前と公式による難易度が表示されます。左側の色付きのバーが難易度を示しています。評価は、Easy(緑)、Medium(オレンジ)、Hard(赤)、Insane(グレー)です。 |
Owns | UserとRootアカウントが表示されます。適切なフラグを送信すると、グレーアウトから色つきに変わります。 |
Expiry | マシンの有効期限が切れて電源が切れるまでの時間が表示されます。 |
Action | マシンの制御が可能です。所有権を取得したら、マシンを起動または停止したり、有効期限を延長したり、マシンをデフォルト設定にリセットしたり、フラグを送信したりできます。一度に1台のマシンを実行でき、いつでもマシンを変更できます。 |
To-Doメニュー
[Action]列のハート
ボタンをクリックすると、To-Do
リストにマシンを追加できます。To-Do
メニュー項目を選択してリストを表示したり、フィルターツールでリストをフィルターすることが可能です。
Filtersメニュー
マシンをフィルタリングすることができます。フィルターオプションは、[Actions]列のすぐ上にあります。マシンのステータス、難易度、オペレーティングシステムの種類に関して、並べ替えや、マシンを表示または非表示にするなどのオプションがあります。
マシンの攻略には、各システムからuser.txt
(ユーザーアクセス)とroot.txt
(ルートアクセス)の2つのファイルを取得する必要があります。これらのファイルを取得した後、各テキストファイルに含まれているコードを入力することでポイントを獲得することができます。
アクセス簡略化のためのHOSTSファイル
マシンへのアクセスを簡略化するために、マシンのIPv4アドレスを/etc/hosts
ファイルに追加しておくことも有効です。
Weekly Release Arena
Release Arena
は、毎週リリースされるActive
マシンの数百のインスタンスを含むラボです。マシンはリリース時点(毎週土曜日の19:00 UTC)で利用可能になり、次の水曜日まで利用可能になります。
リリース直後の混み合うマシンについてはこちらからアクセスするのが良さそうです。
Challenges攻略
Challenges(課題)
をクリアすることでもポイントを獲得することが可能です。問題は9つのカテゴリから出題されます。フラグ(HTB{s0m3_t3xt}
形式で記述されたテキスト文字列)を取得し、入力することでポイントを獲得することができます。
Challenges カテゴリ
- Reversing
- Crypto
- Stego
- Pwn
- Web
- Misc
- Forensics
- Mobile
- OSINT
なお、Challenges攻略で得られるポイントは、Machine攻略で得られるポイントの10分の1程度です。このため、ランクアップを狙うなら、積極的にマシン攻略を狙っていくことをオススメします。
- Challenges(課題):画面は[OSINT]カテゴリ、攻略した課題にはトロフィーマークが付与されます。
- Flagの登録:「Difficulty(難易度)」を選択し、テキストボックスにフラグを入力して、[Submit]ボタンをクリックします。
国別ランキング
Hack The Boxでは、Profileにて設定されたCountry情報を元に、「Country Rankings(国別ランキング)」が毎日集計され、公表されています。
2021/3/9現在、1位 インド、2位 アメリカ、3位 イギリスとなっています。
同日における日本の順位は、13位(メンバー数:319人)です。
なお、各国のリンクをクリックすると、当該国における上位100人のメンバーを確認することができます。
日本からも、より多くの方に参加いただき、日本の順位を上げていきましょう!
2020/3/12 時点のランキング
2020/3/12現在、1位 アメリカ、2位 イギリス、3位 イタリアとなっています。 同日における日本の順位は、36位(メンバー数:179人)です。 ![screencapture-hackthebox-eu-home-country-rankings-2020-03-13-16_54_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/eb219279-a802-617b-0a63-ebcf562d7043.png)Hack The Boxの招待コード (Invitation Code)
Hack The Boxにて個人がアカウントを作成するには、Invite Challengeページの課題をクリアする必要があります。
このページでは、「Invitation Code(招待コード)」を尋ねるテキストボックスが表示されます。
招待コードはページのソースを解析していくことで入手することができます。Firefoxの場合、右クリックして「要素を調査」をクリックします。Chromeでは右クリックして「検証」(ショートカットキー:OSXの場合、[command] + [option] + [I](Windowsの場合、[Ctrl] + [Shift] + [I])です。
ソースコードの解析には、Webアプリケーション「CyberChef」を使ってみてはいかがでしょうか。
- CyberChef, https://gchq.github.io/CyberChef/
招待コードの取得方法について、直接的な解答を明かすことはできません。ただし、次の資料が参考になるはずです。
- 猫とセキュリティ, Hack The Boxに登録してみた, https://nekotosec.com/i-registered-with-hack-the-box/
- 初心者向けCTFのWeb分野の強化法, https://www.slideshare.net/kazkiti/ctfweb
- CyberChefの使い方(HamaCTF2019 WriteUp編), https://www.slideshare.net/Sh1n0g1/cyberchefhamactf2019-writeup
ルールの遵守
Hack The Boxにはいくつかの**[ルール]**が定められています。特にルール1、7が重要です。ルールを違反した場合、最悪、アカウントの永久追放などの罰則があります。
>7.Dont spoil! - Dont share how you hacked each machine with other members. This includes the invite code generation and all challenges.1.We know that nobody sent you the invite code - You don't have to inform anyone about "hacking" the invite code
解答方法を明かせるのは、Retired
ステータスのMachine
とChallenges
だけです。
解法がわからない場合には、公式フォーラム「Hack The Box :: Forums」をチェックしてみましょう。
YouTubeのIppSecチャネル
Hack The Boxにて、Retired
となったマシンのWalkthrough(攻略方法)は、YouTubeのIppSecチャネルにて公開されています。
オススメ Walkthrough
- Raj Chandel's Blog, https://www.hackingarticles.in/ctf-challenges-walkthrough/
- sckull, https://sckull.github.io/
- NAV1N.COM, https://www.nav1n.com/
- HackingResources, https://hackingresources.com/category/ctf-writeups/hackthebox-writeups/
- hackNos, https://www.hacknos.com/category/ctf-walkthrough/
- INFOSEC, https://resources.infosecinstitute.com/category/capture-the-flag/
- 0xdf hacks stuff, https://0xdf.gitlab.io/
@security_index さんが、「Hack The Box 日本語 Walkthrough/Writeup まとめ」記事を公開しています。
Qiita Walkthrough 投稿
- @v_avenger による 【HackTheBox】 - Walkthrough - シリーズ
- @MarshMallow_sh さんによる Hack The Box: Walkthrough (Japanese) シリーズ
- @mr-wacker さんによる 【Hack the Box】 シリーズ
- @sanpo_shiho さんによる 【Hack the Box write-up】 シリーズ
- @yukitsukai47 さんによる Hack The Box -Writeup- シリーズ
- @reacon4234 さんによる 初心者の為のhack the box100本ノック シリーズ
チートシート
- 高林の雑記ブログ 「Windows Kernel Exploit Cheat Sheet for [HackTheBox]」, https://kakyouim.hatenablog.com/entry/2020/05/27/010807
- yukitsukai47 「ペネトレーションテスト用チートシート」, https://github.com/yukitsukai47/PenetrationTesting_cheatsheet
Hack The Box 体験談
- マイナビ ニュース「ホワイトハットハッカーになろう! - 第4回 実際に脆弱性を攻撃してみよう」, https://news.mynavi.jp/article/whitehathackers-4/
- NECセキュリティブログ「トレーニングコンテンツ:「Hack The Box」を触り始めてみた」, https://jpn.nec.com/cybersecurity/blog/200619/index.html
- Security Index 「Hack The Boxって何?と思ったら読むブログ」, https://security-index.hatenablog.com/entry/2020/06/21/221151
- Security Index 「Hack The Boxを始めて1つrootを取るまでのメモ」, https://security-index.hatenablog.com/entry/2020/06/14/134334
- さんぽしのBLOG 「どぶ素人がHack the BoxでHackerになるまでの道のり」, https://sanposhiho.hatenablog.com/entry/2020/06/08/172650
- さんぽし「ハッキングという言葉に憧れるエンジニア達に贈るHack the Box入門」, https://speakerdeck.com/sanposhiho/hatukingutoiuyan-xie-nichong-reruenziniada-nizeng-ru-hack-the-box-ru-men
- Aqua「Hacktheboxの歩き方」, https://speakerdeck.com/aqua/hacktheboxfalsebu-kifang
- @daihi_t 「非エンジニアがHack The Boxを始めてHackerになるまで」, https://qiita.com/daihi_t/items/95d5adfc4b2cea1d4c5c
🏆実績解除🏆 #Udemy 講師
— Noriaki Hayashi (@v_avenger) June 23, 2021
Boot2Root💻 CTFに関する初心者向け講座を開設しました。
nmapやmetasploitは知っている。
でも #HackTheBox や #TryHackMe で userフラグが獲れなぁ〜い😢
そんな人にレベルアップ🆙してもらうことを目的に設計しました。#100DaysOfHackinghttps://t.co/SY0PShnhpd
参考情報
- Udemy 『【はじめてのフラグ獲得】Boot2Root CTFチャレンジで学ぶハッキングの手口とローカル特権昇格』, 2021/06/23
- 【ハッキングに挑戦】脆弱性が残された仮想イメージ公開プラットフォーム(VulnHub)で練習をする, https://qiita.com/v_avenger/items/8accd0cecba2c8f1a923
- 敵対的思考を支援するWindows ディストリビューション - Commando VM, https://qiita.com/v_avenger/items/c8ba0e594f9c34bfc2fd
- Hack The Box at Open Coffee Athens CIV, https://www.slideshare.net/opencoffeegr/hack-the-box-at-open-coffee-athens-civ
- VMware Tools for a Kali Guest, https://www.kali.org/docs/virtualization/install-vmware-tools-kali-guest/
- Beginner Tips to Own Boxes at HackTheBox !, https://medium.com/bug-bounty-hunting/beginner-tips-to-own-boxes-at-hackthebox-9ae3fec92a96
- Commando VM - The First Of Its Kind Windows Offensive Distribution, https://tenochtitlan-sec.blogspot.com/2019/04/commando-vm-first-of-its-kind-windows.html
- CUSTOMIZING KALI LINUX, https://www.offensive-security.com/kali-linux/kali-linux-customization/
- Unofficial OSCP Approved Tools, https://medium.com/@falconspy/oscp-approved-tools-b2b4e889e707
-
Kali Linuxは「Kali Linux 2020.4 Release」より、初期設定のシェルが
Bash
からZSH
に変更されました。 ↩