Help us understand the problem. What is going on with this article?

Hack The Boxを楽しむためのKali Linuxチューニング

はじめに

本稿では、「Hack The Box」(通称、HTBとも呼ばれています)を快適に楽しむために必要となるKali Linuxのチューニングについて解説します。

Hack The Boxとは

Hack The Boxは、2017年6月に設立されたサイバーセキュリティトレーニングのオンラインプラットフォームです。 いくつかのソーシャル要素とゲーミフィケーション要素が採用されていることで、学習体験を楽しくやりがいのあるものにしています。

  • ダッシュボード HackTheBox.png

Hack The Boxを楽しむ手順

  1. 攻撃環境としてペネトレーションテスト用のOS(Kali Linux / Parrot Security Linux など)を用意する。
  2. Hack The Boxの[Invite Challenge]ページのHTMLソースコードを解析し、「Invitation Code(招待コード)」を入手。アカウント登録を行う。
  3. Hack The Boxのダッシュボードにある[Access]ページからOpenVPNアクセスファイル(「connection pack」と呼ばれる)をダウンロードする。
  4. Hack The Box VPN 仮想ネットワークへ接続する。

Kali Linux仮想イメージのダウンロード

Offensive SecurityのサイトでVMwareおよびVirtualBoxイメージを入手することが可能です。
ここでは、Kali-Linux-2020.1-vmware-amd64を使用します。

kali@kali:~$ cat /etc/os-release 
PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
ID=kali
VERSION="2020.1"
VERSION_ID="2020.1"
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では、英語キーボードが選択されています。日本語キーボードを使用している場合、次の手順にて設定変更を行います。

  1. 左上のメニューから[Settings] > [Keyboard]を選択する。
    Keyboard_001.png

  2. [Layout]タブを選択し、[Use system defaults]チェックボックスを外す(OFF)。
    Keyboard_002.png

  3. [+ Add]をクリックする。その後[Japanese]を選択し、[OK]ボタンをクリックする。
    keyboard_003.png

  4. [English(US)]を選択し、[- Remove]で取り除く。
    Keyboard_004.png

  5. [x Close]をクリックし、[Keyboard]ウインドウを閉じる。
    Keyboard_005.png

タイムゾーンを変更する

  1. 右上の時刻表示部分を右クリックし、[Properties]を選択する。
    Timezone_001.png

  2. [Clock]ウインドウにて、[Timezone:]に[Japan]を選択する。
    TImezone_002.png

OpenVPN クライアントの設定

  1. Hack The Boxのダッシュボードにある[Access]ページより、connection packをダウンロードする(ここでは、<your_username>.ovpnとする)。
  2. 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)の範囲です。

Aliasesの設定

$HOME/.bashrcファイルを編集し、そのファイルの末尾にエイリアスを追加します。

kali@kali:~$ nano $HOME/.bashrc
## 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

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つは無料プランで取り組むことが可能です。

Active Machinesメニュー

Active Machine.png

項目 概要
Name マシンの名前と公式による難易度が表示されます。左側の色付きのバーが難易度を示しています。評価は、Easy(緑)、Medium(オレンジ)、Hard(赤)、Insane(グレー)です。
Owns UserとRootアカウントが表示されます。適切なフラグを送信すると、グレーアウトから色つきに変わります。
Expiry マシンの有効期限が切れて電源が切れるまでの時間が表示されます。
Action マシンの制御が可能です。所有権を取得したら、マシンを起動または停止したり、有効期限を延長したり、マシンをデフォルト設定にリセットしたり、フラグを送信したりできます。一度に1台のマシンを実行でき、いつでもマシンを変更できます。

To-Doメニュー

[Action]列のハートボタンをクリックすると、To-Doリストにマシンを追加できます。To-Doメニュー項目を選択してリストを表示したり、フィルターツールでリストをフィルターすることが可能です。
To-Do.png

Filtersメニュー

マシンをフィルタリングすることができます。フィルターオプションは、[Actions]列のすぐ上にあります。マシンのステータス、難易度、オペレーティングシステムの種類に関して、並べ替えや、マシンを表示または非表示にするなどのオプションがあります。
Filters.png

マシンの攻略には、各システムからuser.txt(ユーザーアクセス)とroot.txt(ルートアクセス)の2つのファイルを取得する必要があります。これらのファイルを取得した後、各テキストファイルに含まれているコードを入力することでポイントを獲得することができます。

マシンへのアクセスを簡略化するために、マシンのIPv4アドレスを/etc/hostsファイルに追加しておくことも有効です。

# Active
10.10.10.144    re.htb
10.10.10.148    rope.htb
10.10.10.151    sniper.htb
10.10.10.154    bankrobber.htb
10.10.10.155    scavenger.htb
10.10.10.156    zetta.htb
10.10.10.158    json.htb
10.10.10.159    registry.htb
10.10.10.160    postman.htb
10.10.10.161    forest.htb
10.10.10.162    mango.htb
10.10.10.165    traverxec.htb
10.10.10.167    control.htb
10.10.10.168    obscurity.htb
10.10.10.169    resolute.htb
10.10.10.170    playertwo.htb
10.10.10.172    monteverde.htb
10.10.10.173    patents.htb
10.10.10.178    nest.htb

Challenges攻略

Challenges(課題)をクリアすることでもポイントを獲得することが可能です。問題は9つのカテゴリから出題されます。フラグ(HTB{s0m3_t3xt}形式で記述されたテキスト文字列)を取得し、入力することでポイントを獲得することができます。

Challenges カテゴリ

  • Reversing
  • Crypto
  • Stego
  • Pwn
  • Web
  • Misc
  • Forensics
  • Mobile
  • OSINT

なお、Challenges攻略で得られるポイントは、Machine攻略で得られるポイントの10分の1程度です。このため、ランクアップを狙うなら、積極的にマシン攻略を狙っていくことをオススメします。

  • Challenges(課題):画面は[OSINT]カテゴリ、攻略した課題にはトロフィーマークが付与されます。
    OSINT Challenges.png

  • Flagの登録:「Difficulty(難易度)」を選択し、テキストボックスにフラグを入力して、[Submit]ボタンをクリックします。
    flag.png

Hack The Boxの招待コード (Invitation Code)

Hack The Boxにて個人がアカウントを作成するには、Invite Challengeページの課題をクリアする必要があります。
Invite Challenge.png
このページでは、「Invitation Code(招待コード)」を尋ねるテキストボックスが表示されます。

招待コードはページのソースを解析していくことで入手することができます。Firefoxの場合、右クリックして「要素を調査」をクリックします。Chromeでは右クリックして「検証」(ショートカットキー:OSXの場合、[command] + [option] + [I](Windowsの場合、[Ctrl] + [Shift] + [I])です。
検証.png
ソースコードの解析には、Webアプリケーション「CyberChef」を使ってみてはいかがでしょうか。

招待コードの取得方法について、直接的な解答を明かすことはできません。ただし、次の資料が参考になるはずです。

ルールの遵守

Hack The Boxにはいくつかの[ルール]が定められています。特にルール1、7が重要です。ルールを違反した場合、最悪、アカウントの永久追放などの罰則があります。
Rule_1.png

1.We know that nobody sent you the invite code - You don't have to inform anyone about "hacking" the invite code

Rule_7.png

7.Dont spoil! - Dont share how you hacked each machine with other members. This includes the invite code generation and all challenges.

解答方法を明かせるのは、RetiredステータスのMachineChallengesだけです。
解法がわからない場合には、公式フォーラム「Hack The Box :: Forums」をチェックしてみましょう。

YouTubeのIppSecチャネル

Hack The Boxにて、RetiredとなったマシンのWalkthrough(攻略方法)は、YouTubeのIppSecチャネルにて公開されています。
ippsec.png

参考情報

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした