ハッキングラボのつくりかたをやってみて試行錯誤した点 

今更ながら[ハッキングラボのつくりかた](https://www.amazon.co.jp/dp/B07JJKLZNW/ref=cm_sw_r_tw_dp_U_x_WHNSEbTNGHYA4)をやりました。
2020年4月中に3週間程度で終えました。

この書籍が発行されたのが2018年12月。それからだいぶ月日が経ったこともあり、本のとおりにはいかない部分がいくつかありました。
これからやる方のために少しでも参考になればと、詰まった部分についてまとめておきたいと思います。
ただ、終わったあとでまとめているので、だいぶ抜けてる気が...。

また、初めに保険をかけておきますが（笑）、私の力不足でただ分かっていないだけの可能性もあります。誤りがあればご指摘いただけると幸いです。

# 環境情報

前提として構築環境について、記しておきます。

## ハードウェア

* PC : VAIO S13
* CPU : Intel Core i7-8550U(1.80GHz/4Core)
* Memory : 8GB

無線のUSBドングルやらNASやらラズパイやらは持ってないので、残念ながらそれを使った実験はしてません。

## ソフトウェア

* ホストOS ： Windows 10 Home 1909 (OSビルド 18363.778)
* Oracle VM Virtual Box : 6.0.20 r137117 (Qt5.6.2)
* Oracle VM Virtual Box Extention Pack : 6.0.20 r137117
* Kali Linux : Kali 2020.1 x64 (VBox仮想イメージ版)

# 試行錯誤した点

## はじめに

困ったらまずは公式のFAQを確認しました。（存在に気づいたのはだいぶあとになってからですが...）
[『ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習』サポートサイト](http://s-akademeia.sakura.ne.jp/main/books/lab/faq.html)

それをしても分からない部分は英語に臆さずググりまくりました。
その試行錯誤や、本のとおりにはいかなかった点について、これから記載していきます。

## Kali Linuxのインストール

ovaでなく、isoからインストールする場合、仮想マシンのディスクサイズに注意が必要です。
Oracle VMではデフォルトで8GBが指定されますが、それだと不足してインストールに失敗します。（しかも、エラーメッセージからはディスクが足りないってわからない...）

結局ovaで作り直しましたが、最終的に18GBぐらいになっていました。一部やってない部分があることを考慮すると、30GBぐらいあれば十分なんじゃないかと思っています。
なお、ovaは可変で80GBになっていますので、それに揃えるのもありかと思います。

## Kaliのroot廃止

バージョン2020.1から`root/toor`が廃止され、基本的に使用するユーザーが`kali/kali`に変更になりました。
本来限定的な利用を想定していたKali Linuxでしたが、常用する人が増えたからとのことです。
rootをデフォルトで使うべきでないのは確かなので良い改変だと思います。あまりrootログインは使わず、sudoを使うようにしたいですね。

## Windows 7 のインストール (P.216)

この時点では[サポートサイト](http://s-akademeia.sakura.ne.jp/main/books/lab/faq.html)の存在を知らなかったため、以下にお世話になりました。
[Windows7 評価版 のダウンロード方法 | Windows7 - ITブログ時々なんでもブログ](https://itblogdsi.blog.fc2.com/blog-entry-129.html)

### こちらを利用した場合の影響（ほかにもあるかも）

* iso提供のため、インストールが必要
* ユーザー名/パスワードが`IEUser/Passw0rd!`ではない
* 日本語版のため、Kaliからアクセスした際に文字化けする（Encodeを変更したSSHクライアントで操作するなどの対応が必要）

## Windows 10 のインストール (P.289)

Windows 10は以下からovaをダウンロードして環境構築しました。
[Virtual Machines - Microsoft Edge Developer](https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/)

### こちらを利用した場合の影響（ほかにもあるかも）

* 英語版OSのため、キーボード配置が英字配置
* USBがデフォルトで有効化されていないため、Virtual Boxの設定でUSBの有効化が必要（やらないとWebカメラハック（P.325）で躓く）
* バージョンが1809(Build 17763.379)で最新版ではない  
  [サポートサイトに記載されたURL](https://developer.microsoft.com/en-us/windows/downloads/virtual-machines)の方はバージョンが最新（1909）なのでサポートサイトの方を利用したほうがよさそうです。  
ただ、1809の方がWindows Defenderの強度が少し弱いと思いますので、「ハッキングラボのつくりかた」を進めるという観点では多少やりやすいかもしれません。

## Veil Frameworkの初回起動・セットアップ (P.334)

`Veil Framework`のインストール後、初回起動時にSetupスクリプトが実行されますが、途中で行われるwineのインストールで失敗しました。
どうやらrootログインで実行すると失敗するようで、Kaliユーザーでsudo実行することで回避できました。

`$DISPLAY`がないからエラーになるといった情報もありましたが、`export DISPLAY=:0.0`をしても完全解決せず、結果的に上記の方法で解決しました。

## Shellterの起動 (P.343)

Veil同様に、`Shellter`の起動もrootログインだとうまくいかず、kaliユーザーでsudo実行することでうまくいきました。
rootだと何か環境変数が足りないんでしょうか...。

## John the Ripperの途中経過表示 (P.386)

本には以下の記述がありましたが、私の環境では表示されませんでした。
> [Space]キーを押すと途中経過を表示します。

[Ctrl] + [C]で一度中断し再開すると、どこから再開するのかが表示されるので、私はそれで把握しました。中断/再開を繰り返さないといけませんが。

## BeEF 起動 (P.499)

### パスワード変更

BeEF初回起動時にパスワード変更を求められるようになったようです。

```shell

sudo beef-xss

[-] You are using the Default credentials
[-] (Password must be deifferent from "beef")
[-] Please type a new password for the beef user: hogehoge
```

### BeEFコントロールパネルの起動

起動後、以下のエラーが表示され、自動でブラウザ表示はされませんでした。
> Failed to execute default Web Browser.
> Input/output error.

Webブラウザーで以下のURLを直接入力することで確認できました。（本のとおり）
`http://localhost:3000/ui/panel`

### Appendix : BeEFパスワード変更方法

初回起動のパスワード変更時にタイポしてしまい、ログインができなくなりました（笑）
その場合、以下の手順を踏むと変更が可能です。

1. config修正

    ```shell
    sudo vim /usr/share/beef-xss/config.yaml
    ```

    以下の部分を修正

    ```yaml
    credentials:
    user: beef
    passwd: hogehoge  ← ここを変える
    ```

2. beefのプロセスをkillして再起動

    netstatでPIDを特定し、対象のプロセスをkillした後に、再起動します。

    ```shell
    sudo netstat -lntup

    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address  Foreign Address  State   PID/Program name
    tcp        0      0 0.0.0.0:3000   0.0.0.0:*        LISTEN  11222/ruby

    sudo kill 11222
    sudo beef-xss
    ```

## 【結局断念】findmyhashのインストール（P.611)

`findmyhash`はKaliにデフォルトインストールされなくなったようです。
https://pkg.kali.org/pkg/findmyhash

そのため、なんとかインストールしようと頑張りましたが、結局できませんでした...。
ご助言いただけると大変ありがたいです。

`findmyhash`のインストールにあたり、`httplib2`やら`libxml2`やらが必要とのことで色々とやりましたが、最終的に上手くいかず...

### やったこと

1. pipインストール
2. httplib2インストール
3. libxml2インストール
4. findmyhashインストール

    ```shell
    wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/findmyhash/findmyhash_v1.1.2.py
    sudo chmod 755 findmyhash_v1.1.2.py
    sudo python findmyhash_v1.1.2.py
    
    ～～～
    Execution error:  
        The Python library libxml2 is not installed in your system.  
        Because of that, some plugins aren't going to work correctly.  
        Please, install it before use this application.
    ```

## Burp SuiteでHTTP要求を補足しない (P.618)

DVWAにおいてBlind SQL Injectionを試す際に、Burp Suiteが通信を補足してくれない事象が発生しました。（ブラウザはKali付属のFirefox ESR(68.7.0esr)を使用）

localhostへの通信はプロキシ経由が許されていないため、Firefoxに以下の設定が必要です。

* アドレスバーに`about:config`と入力し遷移（警告があるが突き進む）
* `network.proxy.allow_hijacking_localhost`を`true`に変更

具体的な手順は以下がとても分かりやすいです。
[Firefoxでlocalhostの通信をBurpに通す方法](https://qiita.com/shoooooo/items/bcea7ab8c07c4ea1afac)

## bWAPP bee-boxセットアップ (P.624)

本ではVMware OVF Toolを使って、ovfファイルを作成した後にインポートする手順となっていましたが、以下エラーが発生し、ovfへの変換が上手くいきませんでした。

> Error: Failed to open file: C:\hogehoge\bee-box\bee-box.vmx
> Completed with errors

そのため、vmdkをそのままVirtual Boxで使用することにしました。
OVF Toolのみダウンロードしてやったのがダメだったのかも？

# 感想

ハッキングの体験をしてみよう！というコンセプトの書籍だと思いますが、その前提となる仮想環境の構築からスタートしているので、初学者に優しい書籍だと思いました。
たくさん躓くポイントはありますが、躓くからこそ学習に繋がるというものです。

個人的にはMetasploitの体験が非常に興味深かったです。簡単に攻撃できることを体験することで、セキュリティ対策の重要性を再確認できました。

今回無線LANのドングルを持っていなかったので無線LANハッキングの実験をできませんでしたが、是非手に入れてやりたいと思います。
<br>
最後になりましたが、この「ハッキングラボのつくりかた」はあくまでも導入部だと思いますので、より深堀りして技術力を高めていきたいところです。CTFも最近やってないので、また参加しよう。

\# 日頃から英字キーボード使ってると色々捗りますね。ベルギー配列は意味わからないけど笑
\# 「ハッキングラボのつくりかた」についてTweetすると著者のIPUSIRONさんからリプライもらえるかもしれないので、Tweetしてみるといいかも。モチベ上がる:arrow_heading_up: