『ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習』サポートサイト

ロゴ

本書に関する質問があれば、私宛にメール(ipusiron@gmail.com)あるいはTwitter(@ipusiron)のDMでお願いします。

書籍の通りに実行したがうまくいかない

誤字や誤植が原因の可能性もあるので、翔泳社の公式ページにある正誤表を確認してください。
(誤字・誤植等を発見した場合は、翔泳社のページから投稿していただければ助かります)

誤字等にも関係がなく、問題が解決しない場合は、このページを参考にしてください。

Kaliをダウンロードしたファイルがovaファイルではない 【第1部 第2章 P040】

仮想マシン用のKaliのダウンロードページは こちらになります。




ここにはVirtualBox用とVMware用のファイルが用意されています
7zファイルの場合は、おそらくVMware用のイメージファイルが選ばれています。

このページはわかりにくいのですがタブ形式になっています。
「Kali Linux VirtualBox Images」を選ぶとovaファイルをダウンロードできるはずです。

Kaliの仮想ファイル(ovaファイル)をダウンロードしようとすると文字化けしてダウンロードが始まらない。 【第1部 第2章 P040】

原因は不明ですが、一部のブラウザでovaファイルをダウンロードしようとすると文字化けの画面が表示されるという報告がありました。
別のブラウザ(Chromeなど)を用いるとダウンロードできるそうです。

Kaliのバージョンについて 【第1部 第2章 P041】

Kaliは日々進化しているので、最新バージョンをダウンロードしてください。
本書の執筆時はKaliのバージョンは2018.2が最新でしたが、2018年12月の時点でバージョン2018.4が出ています。ダウンロードしたバージョンに合わせて、本書内のファイル名や仮想マシン名を適時読み換えてください。

日本語入力の設定において、インストールがうまくいかない【第1部 第2章 P060】

ステップ①のapt intallがうまくいかない場合は、以下を試してみてください。  

VirtualBoxのネットワークの環境設定画面にて「ホストオンリーネットワーク」タブが存在しない【第1部 第2部 P081】

P081の上部の数行を再確認してください。
パターンA(ホストネットワークマネージャがメニューにない場合)は「ホストオンリーネットワーク」タブがありますが、パターンB(ホストネットワークマネージャがメニューにある場合)はそのタブが存在しません。その代わりに、ホストネットワークマネージャで同等の設定が可能になります。

仮想マシンのネットワークがおかしい 【第1部 第2章 P088など】

Kaliなどでifconfigコマンドを実行しても、本の結果と一致せず、ネットワークがおかしい状態になることがあります。この原因や対処法については、次のコラムを参照してください。  

ホストOSへのPingがうまくいかない 【第1部 第2部 P089】

この時点ではKaliの仮想マシンからインターネットでPingが通っていれば問題ありません。本書の後半でホストOSとゲストOSの通信が必要であるため、念のためにホストOSにPingしているだけです。よって、ホストOSではPing応答の設定をせずに、本書を読み進めてもよいでしょう。

もしPing応答を確認したい場合には、次の設定を確認してください。
 


ホストOSがWindows 7/10の場合、デフォルトではPing応答を返さない設定になっています。以下の設定を反映させてください。
 

ユーザーのホームディレクトリが生成されない 【第1部 第2部 P091】

ユーザーを追加するにはuseraddコマンドを用いますが、-mオプションを付け忘れると、ホームディレクトリが生成されません。
ホームディレクトリが存在しないと、そのユーザーでログインした直後のカレントディレクトリに"/"ディレクトリになります。また、P104のようにSCPでファイルを転送しようとしても、「TTSSH:SCP error」というエラー(エラーメッセージは"Could not chdir to home directory /home/<ユーザー名>: No such file or direcotory")が表示されます。

SSHでrootログインできない 【第1部 第2章 P100】

"/etc/ssh/sshd_config"ファイルを設定しますが、その際、PermitRootLoginの頭にあるコメントアウトを外すのを忘れないようにしてください。

SSHに公開鍵認証でログインできない 【第1部 第2章 P102】

ステップ②にて公開鍵認証したいユーザーを指定して、パスワード認証でSSHログインしています。本書ではrootユーザーで公開鍵認証するつもりなので、rootでSSHログインしています。そのため、このステップにおけるコマンドでは#での処理になっています。
もしその他のユーザーでSSHログインした場合は、$のプロンプトのまま(suでrootになる必要はない)で本書のコマンドを実行してください。

ステップ③(P106)では、/etc/ssh/sshd_configファイルを設定します。第1刷では"ssh_config"と誤植になっているので注意してください。もしまだ未修整であれば、翔泳社の正誤表を参照してください。

ステップ④(P107)の図2-68ではユーザー名にrootを指定して認証しようとしています。もしその他のユーザーで公開鍵認証するための設定をした場合には、そのユーザー名を指定してください。

以下の画像は、虎牙龍樹(@kogaryuju)さんに協力していただた結果です。ありがとうございます。参考にしてください。


↑一般ユーザーでSSHログインしたところ


↑検証のために.sshディレクトリを一度削除してもらったので、一般ユーザーで.sshディレクトリを作成している


↑一般ユーザーでauthrized_keysを作成する


↑一般ユーザーで公開鍵登録


↑一般ユーザーでパーミッション変更


↑TeraTermを起動して一般ユーザーで公開鍵認証する
なお、一般ユーザーに対して、sudoコマンドの権限を与えず、ログインシェルをbashにしなくても、公開鍵認証はうまく問題ないようです(ユーザーに対する各種設定についてはP092参照)。

Guest Additionsのインストール時にCDアイコンが表示されない 【第1部 第3章 P154】

Kaliを再起動してから、ステップ③以降を実行してください。再起動したらCDアイコンが表示されたという報告がありました。

それでもダメな場合は、「Virtualbox上のCentOSにGuest AdditionsをインストールしてWindowsとフォルダーを共有させる」を参考にしてください。この記事を参考にして、本書の状況に適用すると次のようなコマンドになります。

1:Kaliの仮想マシンのメニューの「デバイス」>「Guest Additions CD イメージ挿入」を選択する。

2:CDアイコンが表示されないだけで、内部的にはCDの挿入が認識されている可能性があるので、マウントする。

# mkdir -p /mnt/cdrom
# mount -r /dev/cdrom /mnt/cdrom
# ls /mnt/cdrom
(ファイルがあれば成功。空なら失敗)
3:インストールの開始。
# chmod +x /mnt/cdrom/VBoxLinuxAdditions.run ←不要かもしれない。
# sh /mnt/cdrom/VBoxLinuxAdditions.run
デスクトップにsf_shareフォルダーのアイコンは表示されないかもしれませんが、内部的には共有フォルダーのマウントに成功するそうです。anitech(@anitech19)さんに検証していただきました。ありがとうございます。

コマンドプロンプトでslmgr /rearmコマンドを実行してもエラーが出て猶予期間が延長されない 【第2部 第4章 P219-220】

次のようなエラーが出ている場合、コマンドプロンプトが管理者権限で実行されていません(カレントディレクトリが"C:\Windows\Users\IEUser"であることからも推測できる)。
P119に書いてありますが、コマンドプロンプトを管理者権限で起動してコマンドを実行してください。メニューの「コマンドプロンプト」を右クリックして「管理者として実行」を選択すると、管理者権限で起動します。


↑権限不足のエラー

WindowsがPing応答を返す設定する際に、似たような項目が複数ある 【第2部 第4章 P222】

Windows 7/10がPing応答を返すためには、「Inbound Rules」の「ファイルとプリンターの共有(Echo要求)」を有効にします。しかし、ここには同じような項目が4つあるはずです。それぞれは次のような違いがあります。

・ICMPv4受信、プロファイルがプライベート・パブリック
・ICMPv4受信、プロファイルがドメイン
・ICMPv6受信、プロファイルがプライベート・パブリック
・ICMPv6受信、プロファイルがドメイン

一番簡単な方法はこの4つの項目をすべて有効にしてしまうことです。
1つだけを有効にするのであれば、「ICMPv4 プロファイルがプライベート・パブリック」を有効にします(通常の家庭のネットワークであればActive Directoryはないので、プロファイルがドメインの設定は関係なし)。

細かい違いについては「Windowsのファイアウォールで「ping」コマンドへの応答を許可する」を参考にするとよいでしょう。

Netcatによるリバースシェルのステップ②で、ipconfigコマンドの出力結果が文字化けする 【第2部 第4章 P237】

リバースシェルの接続が確立すると、KaliのTerminalに"C:\Work\nc111nt"というプロンプトが表示されます。以降は、コマンドプロンプトのコマンドを入力できます。例えば、ipconfigコマンドを実行すると、その結果が返って来るはずです。
ただし、ターゲットのWindowsが日本語化されている場合、ipconfigコマンドの出力結果に日本語が含まれており、KaliのTerminalで文字化けして表示される可能性があります。その際は、TerminalをShift-JISに変更することで、正しく表示されるそうです。

suebo(@cd1086)さんのツイートを参考にしました。情報ありがとうございます。

空の仮想マシンにWindows 10をインストールしようとすると、OOBEエラーが発生して進まない 【第2部 第4章 P301~】

私の環境では発生しませんでしたが、Windows 10 Pro(64bit)の仮想マシンを作成中に、次のようなOOBEエラーが発生して、インストールが完了しないという現象が発生するという報告がありました。




↑OOBEエラーの一例


↑OOBEエラーと同時にデバッガーが起動した例

MSの情報によると、OOBE(Out-Of-Box Experience)とはWindowsのセットアップの際に走るプロセスらしく、OOBEエラーは何らかの原因でデッドロックが発生した際に起こるようです。2つの解決方法が提示されており、1つ目の方法は下部の「やり直す」(try again)ボタンを押すこと、2つ目の方法は強制終了して再起動することとなっています。
しかしながら、このOOBEエラーが再現する方に、2つの方法を試してもらいましたが、またOOBEエラーが発生してしまい、問題解決に至りませんでした。
もし、解決方法を知っている方がいれば、是非お知らせください。

虎牙龍樹(@kogaryuju)さんに協力していただいたところ、次のような結果が得られました。

○ノートPC(Windows 10 Home)
 Windows 10 Pro(64bit版、32bit版)、home(64bit版)をVBoxの仮想マシンにインストール
・VBox6.0⇒OOBEエラー
・VBox5.2.22⇒未確認

○デスクトップ(Windows 7 Pro)
 Windows 10 Pro(64bit版)をVBoxの仮想マシンにインストール
・VBox6.0⇒OOBEエラー
・VBox5.2.22⇒インストール成功

○別のノートPC(Windows 10 Home) ≪追加検証≫
 Windows 10 Pro(64bit版)をVBoxの仮想マシンにインストール
・VBox6.0⇒成功(バージョンの問題でもない??)

結論をいえば、VirtualBox v6.0だとOOBEエラーが発生し、v5.2.22に落としたところエラーは発生しなかったようです(ネット上での似たような議論)。バージョンをダウングレードして解決しても本来は意味がないので、いずれ新しいバージョンでは解決されると思います。

追加検証では、v6.0で普通にWindows 10の仮想マシンが作成できたようです。問題が解決したのはよいのですが、原因が逆にわからなくなってしまいました。
追って情報を追記していきます。何か情報を知っている方いれば、お知らせください。

John the Ripperが正しく起動しない 【第2部 第4章 P254】

John the Ripper(以下、Johnと略す)を実行したときに、次のようなエラーが発生する場合があるようです。sudoなしでも同様と報告を受けました。


↑"AVX2 is required for this build"エラー

おそらく違うJohnを優先して見に行っている可能性があります。Johnがインストールされていない可能性があるので、次のコマンドを実行してJohnをインストールしてください。
# apt install john
その後、オプションなしでJohnを実行して、Johnが起動しオプションの説明が表示されることを確認してください。もし確認できればJohnのインストールや起動は問題ありません。

その後、Johhを実行して"Crash recovery file is locked"のようなエラーが出た場合は、ファイルがロックされてしまっています。対応方法は色々ありますが、Kaliを再起動するのがもっとも簡単でしょう。


↑"Crash recovery file is locked"

VirtualBoxで空の仮想マシンを構築する際に、OSのバージョンに「Windows 10 (64-bit)」が表示されない 【第2部 第4章 P295】

虎牙龍樹(@kogaryuju)さんの報告によると、BIOS画面で次のように設定し直すことで、バージョンのプルダウンメニューに「Windows 10 (64-bit)」が表示されるそうです。

・AMDの場合
 AMD SVM TechnologyをDisabledからEnabledにする。

・Intelの場合
 Intel Virtualization TechnologyをDisabledからEnabledにする。


↑AMDの場合のBIOSの設定項目

設定後、VirtualBoxを再インストールしなくても反映されるようです。


↑プルダウンメニューに項目が表示された

hydraに設定している"Invalid username or password"という文字列はどこから取得しましたか? 【第2部 第5章 P388-389】

Kaliのブラウザ(Firefoxなど)からTomcatの認証画面でわざと誤ったパスワードを入力します。すると、認証エラーのWebページが表示され、そこに"Invalid username or password"という文字列が表示されます。

認証エラーのWebページに"Invalid username or password"ではなく、"ユーザ名またはパスワードが違います"という日本語が表示されてしまう。 【第2部 第5章 P389】

ブラウザが日本語優先になっている可能性が高いです。
WiresharkでHTTP要求を確認してください。Accept-Languageにて「ja,en-US;q=0.7,en;q=0.3」のようにjpという情報が入っていると、Tomcat側が日本語のページを表示するようです。

目標はTomcatの認証エラーページ(デフォルトの英語ページ)を表示することです。
対処法としては、①「そのブラウザを英語優先にする」か②「別のブラウザを用いる」のどちらかになります。

<アプローチ①>
1:「Firefoxで一部のサイトが英語で表示される場合の対処法【日本語化】」の記事を参考にして、逆にFirefoxを英語優先にします。
2:履歴を削除します。
3:Firefoxの起動中に[Shift]+[F2]キーを押すと、ウィンドウの下部にプロンプトが現れます。そこに"restart"と打ち込んでEnterを押すと、Firefoxが再起動します。
なお、Firefoxの再起動については「Firefoxの再起動はabout:profilesからが手軽」の記事が参考になります。
<アプローチ②>
以下の記事を参考にしてください。
「Linuxのコマンドライン(CUI)で使えるテキストベースWebブラウザを使い比べてみた」

Xplicoの認証ページを表示しようとすると"Internal Error"が発生する 【第2部 第6章 P436-437】

"/etc/init.d/xplico start"コマンドを実行した後に、http://localhost:9876にアクセスしても"Error: An Internal Error Has Occurred."と表示され、ログインページにならない現象が報告されています。

uname -aコマンドの結果
・Linux kali 4.18.0-kali2-amd64 #1 SMP Debian 4.18.10-2kali1 (2018-10-09) x86_64 GNU/Linux(うまくいったパターンとダメだったパターンあり)
・Linux kali 4.19.0-kali1-amd64 #1 SMP Debian 4.19.13-1kali1 (2019-01-03) x86_64 GNU/Linux


↑認証ページの表示でInternal Errorが発生

"/etc/init.d/xplico stop"コマンドを実行すると、"Xplico is not running!"画面に戻ります。この画面をよく見てください。起動コマンドの説明の下に同じエラーメッセージが出ていませんか?もし出ていれば、この時点で内部的にエラーが発生していると思われます。

↑実はこの時点でInternal Errorが発生

残念ながら、この問題に対する解決方法がまだわかりません。公式Wikiやフォーラムを確認しましたが、該当する情報は現状見当たりませんでした。解決方法がわかる方がいれば、是非お知らせください。

なお、"/opt/xplico/script/sqlite_demo.sh"コマンドを実行しても同様にInternal Errorになります。こちらを実行してしまうと止めるのが面倒になるので、実行しない方がよいでしょう(停止したければKaliを再起動するのが簡単)。

Demoページでアカウントを作成すれば、認証を進めることができますが、以降の挙動がおかしいようです。デモページ内でSessionを作成してもキャプチャファイルを指定できなかったり、作成したSessionを削除できなかったりします。

apt upgrade中にwireshark-commonの設定をしたが、改めて設定を変更したい

apt upgrade中にwireshark-commonの設定画面が表示されることがあります。その際に"Should non-superusers be able to capture packets?"(スーパーユーザー以外もパケットをキャプチャできるように許可しますか?)という質問が表示され、Yes/Noを選択する必要があります。デフォルトではNoが選択されており、通常はNoのままで構いません。root以外もキャプチャできるようにユーザーを追加するつもりであれば、ここでYesを選択します。

なお、後でこの設定を変更したければ、次のコマンドをTerminalに実行します。すると、wireshark-commonの設定画面が表示されます。

# dpkg-reconfigure wireshark-common


↑wireshark-commonの設定画面

PCはメモリが4GBなのですが耐えられますか?

本書では一般に2つのゲストOSを起動します。つまり、「ホストOSの分+ゲストOSの分×2」のメモリが必要になります。8GBあれば余裕がありますが、4GBの場合はぎりぎりでしょうか。ホスト2GB+ゲスト1GB×2とすることで、理論的には何とかなると思います(動作は重くなります)。

例えばPCを2台持っていたり、NASを持っていれば、そこにゲスト1台分を起動して、メインマシンはゲスト1台分という構成も可能です。ネットワーク的には仮想マシンをブリッジ接続にすれば、仮想マシンのゲストOSがLANにぶらさがる形になります。

クラウド上やNAS上に仮想マシンを立ち上げるというアプローチもあります。ラズパイという選択肢もありますね。ハッキング・ラボ本ではラズパイにKaliをインストールする方法も紹介しています。このKaliは最小構成ですが、ここからメインマシンの仮想マシン(ターゲットのゲストOS)に攻撃してみるという実験も可能です。

私はlenovoのX220というマシンをハッキング・ラボの実験に用いました。ノートPCなのに自分でばらばらにできるので、メモリ増設だけでなく色々拡張もできます。ヤフオクで20k以下で買えると思います。

なお、本書の一部では、1台の仮想マシンでできる実験もあります。

PCのメモリが少なくハッキング・ラボの実験のために工夫したといったことがあれば、是非Twitterに投稿していただけれると他の人(同じような境遇の人)も勇気付くと思います。

仮想マシンがWiFiのアイコンがなくWiredしか出ない

内蔵しているWiFi子機を用いている場合には、Kaliの仮想マシンから見るとWiFiは見えず有線LANのアクセスになります。つまり、Wiredアイコンしか出ないのは正しい動作です。

無線LANのハッキングのとき以外は、ノートPCの内蔵WiFi子機で、Kaliの仮想マシンからインターネットにアクセスできていれば問題ありません。ホスト側がWiFiであっても、仮想マシンからは有線LANとして見えます。

無線LANのハッキングと化する際にはUSBのWiFiアダプタを用います。これについてはP514辺りを参照してください。

VirtualBoxを起動すると"VT-x is not available."が出てしまう

WindowsのHyper-V機能が有効であったり、BIOSのIntelVTが無効になっている可能性があります。特典PDF1のP002でこの辺りの解説をしています。
対応方法は環境によって異なるのでネットで検索した方が早いと思います。特に、以下のサイトが参考になると思います。

「VirtualBoxが"VT-x is not available. (VERR_VMX_NO_VMX)"といって起動しなくなった」

例えば、sugimoto(@sugineko774)さんの報告によると、BIOSでVT-xが無効になっていると次のエラーメッセージが表示されたそうです。VT-xを有効にすることで起動できたようです。


↑"VT-x is disabled in BIOS for all CPU modes"エラー

macOSを使っていますが、ハッキング・ラボを構築できますか?

『ハッキング・ラボのつくりかた』ではWindows(ホストOS)をベースにして仮想環境を構築して、その仮想環境上でハッキングの実験をしています。ただし、macOSやLinuxであっても、一度VirtualBoxをインストールしてしまえば、同様にしてハッキング・ラボを構築できます。よって、一部に関して『ハッキング・ラボのつくりかた』に書いてある方法そのままではうまくいかないかもしれませんが、本質的なところはOSの種類に関係なく実験したり、攻撃手法を学んだりできるはずです。
Masahiro Oono(@words_oono)さんがmacOSにおけるハッキング・ラボの構築をTwitterで詳細にまとめてくれています。

第1部の検証

▲ページトップに戻る