569
582

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-02-08

はじめに

本稿では、「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 / CommandoVM など)を用意する。
  2. Hack The Boxの[Invite Challenge]ページのHTMLソースコードを解析し、「Invitation Code(招待コード)」を入手。アカウント登録を行う。
  3. Hack The Boxのダッシュボードにある[Access]ページからOpenVPNアクセスファイル(「connection pack」と呼ばれる)をダウンロードする。
  4. 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では、英語キーボードが選択されています。日本語キーボードを使用している場合、次の手順にて設定変更を行います。

  1. 左上のメニューから[Settings] > [Keyboard]を選択する。
Keyboard_001.png
  1. [Layout]タブを選択し、[Use system defaults]チェックボックスを外す(OFF)。
Keyboard_002.png
  1. [+ Add]をクリックする。その後[Japanese]を選択し、[OK]ボタンをクリックする。
keyboard_003.png
  1. [English(US)]を選択し、[- Remove]で取り除く。
Keyboard_004.png
  1. [x Close]をクリックし、[Keyboard]ウインドウを閉じる。
Keyboard_005.png

ロケール(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

タイムゾーンを変更する

  1. 右上の時刻表示部分を右クリックし、[Properties]を選択する。
Timezone_001.png
  1. [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)の範囲です。

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に対する調査

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に関する具体的な攻略方法について、ステップバイステップで解説しています。
はじめたばかりの方はまず、この項目に従って、操作方法について確認することをオススメします。
スクリーンショット 2020-03-23 10.38.44.png

@YuasaJunki さんが、Starting PointのWalkthroughをまとめています。「【Hack The Box】Starting Point(Archetype)

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つのファイルを取得する必要があります。これらのファイルを取得した後、各テキストファイルに含まれているコードを入力することでポイントを獲得することができます。

アクセス簡略化のためのHOSTSファイル

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

Weekly Release Arena

Release Arenaは、毎週リリースされるActiveマシンの数百のインスタンスを含むラボです。マシンはリリース時点(毎週土曜日の19:00 UTC)で利用可能になり、次の水曜日まで利用可能になります。
リリース直後の混み合うマシンについてはこちらからアクセスするのが良さそうです。
Release Arena.png

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では、Profileにて設定されたCountry情報を元に、「Country Rankings(国別ランキング)」が毎日集計され、公表されています。
20210309_Country Rankings.png
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ページの課題をクリアする必要があります。
Invite Challenge.png
このページでは、「Invitation Code(招待コード)」を尋ねるテキストボックスが表示されます。

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

CyberChef.png

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

ルールの遵守

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

オススメ Walkthrough

@security_index さんが、「Hack The Box 日本語 Walkthrough/Writeup まとめ」記事を公開しています。

Qiita Walkthrough 投稿

チートシート

Hack The Box 体験談

参考情報

  1. Kali Linuxは「Kali Linux 2020.4 Release」より、初期設定のシェルがBashからZSHに変更されました。

569
582
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
569
582

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?