はじめに
Kali Linuxというハッキングツールを色々兼ね備えたOSがあるのですが, 2019年末にrootユーザがデフォルトで廃止されて見た目も大きく変わりました.
Kaliを普段使いする人はあまりいないと思いますが, Capture The FlagやHack The Boxなど, セキュリティ方面のあれやこれやでKaliを導入したいという人の役に立つよう綴っていくつもりです.
OSスペック等
参考までに, 自分の環境を記しておきます.
- ホストOS(要は元からあるPCの本体の方です):Windows 10 Pro
- ゲストOS(これから導入する仮想環境の方):Kali Linux 2020.1a(64bit)
- ハイパーバイザ(仮想環境を実現するソフトウェア):VMware Workstation 15.5 Player
VMware, Kali linuxディスクイメージ入手
既に仮想環境に触れたことのある人は, VMWareの導入は飛ばしてOKです.
VMwareの公式ページからWorkstation 15.5 Player for Windowsをダウンロードします. VMWareのバージョン(15.5の部分)は適宜読み替えてください.
その後, セットアップウィザードに従って進めていきます. 途中のカスタムセットアップ等の選択はお好みでどうぞ.
迷うことはないと思いますが, 困ったら以下も参照してください.
【手順】Windows10にVMWare WorkStation Player 15 インストール
また, Kali Linuxのディスクイメージを公式ページから一番上の**Kali Linux 64-Bit(Installer)**をダウンロードします. サイズの小さい.torrentファイルでも大丈夫ですが素直に.isoファイルでいいと思います. 気長に待ちましょう.
以下の画像からもわかりますが, 2020年5月19日時点で最新のバージョンは2020.2です.
また, 下の方にKali linux 64-bit VMwareというのもありますが.7zで圧縮されているうえ, その後の日本語入力などの初期設定がすべてスキップされる(もちろん後で変更可能です)ので無視して構いません.
Windows 10 Homeの場合
Kali Linuxを立ち上げる, あるいはそもそもVMWareを立ち上げる際に, 「VMware PlayerとDevice/Credential Guardには互換性がありません」とメッセージが出ることがあります.
解消するには, コマンドプロンプトを管理者権限で立ち上げ1,
C:> bcdedit /set hypervisorlaunchtype off
として再起動しましょう. なお, 補足ですがこれによりWSL2(Windows Subsystem for Linux 2)が使えなくなってしまうので, KaliではなくWSL2を使いたい方は同じくコマンドプロンプトにて
C:> bcdedit /set hypervisorlaunchtype auto
として再起動します. 面倒ですが, これがWindows 10 Homeの宿命です.
Kali Linuxセットアップ
まずはVMware Workstationを立ち上げ, 「新規仮想マシンの作成」→真ん中の「インストーラディスクイメージファイル」→「参照」から先ほど入手したKali Linuxのディスクイメージを選択します.
ここで「このディスクイメージのOSの種類を検出できませんでした」と表示されても特に問題はありません.
"ゲストOSの選択"画面では
- ゲストOS:Linux
- バージョン:Debian 7.x 64ビット2
を選択します.
"仮想マシンの名前"画面では好きな名前を入れましょう. VMwareを立ち上げたときに表示される名前になります. 自分は
- 仮想マシン名:Kali-Linux-2020.1a
- 場所:(デフォルトのまま変更なし. Windowsのドキュメントフォルダに格納されます.)
としました.
"ディスク容量の指定"画面はストレージを調節できます. ホストOS(Windows 10)のストレージと相談しつつ設定します. ここでは
- ディスク最大サイズ:200GB(ホスト側に余裕があったので大きめにとりました)
- 「仮想ディスクを単一ファイルとして格納」を選択
としました.
最後に「ハードウェアをカスタマイズ」を選択してメモリとプロセッサを変更します. ここも自分のPCスペックと要相談です.
- メモリ:8GB(2GB以上を推奨したいです)
- プロセッサコアの数:2(2以上を推奨)
としました.
これにて準備完了です. わかりにくい点があれば以下が画像付きで大変わかりやすいと思います.
Vmwareを使ってLinuxOS(Kali-Linux)を導入しよう
##Kali Linux初期設定
VMwareを立ち上げて「仮想マシンの再生」をクリックします.
「Graphical install」→「Japanese」→「日本」→「日本語」を選択.
最初のGraphical installのみ(ゲストOS上で)マウスカーソルが出ないと思うのでキーボードで操作します.
なお, この段階でホストOSに戻りたい場合はCtrl + Altで.
ホスト名は特に変更ありません. 初期設定「kali」のままで.
ドメイン名も空白のままで問題ありません.
次は"ユーザとパスワードのセットアップ"です. 上でも述べた通り, Kali Linuxのrootユーザが廃止されてしまったのでユーザアカウントを作成する必要があります.
あなたのフルネームを入力するのが妥当な選択でしょう
とありますが, まぁお好きなように. 次のユーザ名とパスワードはログイン画面で必要になります.
以下, 「ガイド-ディスク全体を使う」→「SCSI3(0,0,0)(sda) …」(1つしか表示されないはず)→「すべてのファイルを1つのパーティションに」→「パーティショニングの終了とディスクへの変更の書き込み」→「はい」を選択.
次のHTTPプロキシの情報は空白のままでOKです.
次の"インストールするソフトウェアの選択"はお好きなものを選択してください. 自分はデフォルトで選択されている
- Kali desktop environment Xfce
- Generic metapackages
- Generic metapackages default
- 標準システムユーティリティ
の他に
- Install tools by purpose
を選択しました. ここは結構バージョンが変わるたびに大きく表記が変わるので適宜読み替えてください.
長いインストールが終わった後, 最後の"ハードディスクへのGRUBブートローダのインストール"で「はい」→「dev/sda」を選択し無事終了です.
これもわからない点があれば
Vmwareを使ってLinuxOS(Kali-Linux)を導入しよう
を参照するといいと思います(多少異なる点もありますが).
zshへの変更(任意)
意地でもbash
を使いたいという強いこだわりがある方は読み飛ばしてください.
Kali linuxを立ち上げ, ターミナル(左上の黒い四角です)を起動し, 以下のコマンドで/bin/zsh
があることを確認します.
$ cat /etc/shells
確認ができたら以下でログインシェルをzsh
にします.
$ chsh -s /bin/zsh
ここで一度再起動し, 再度ターミナルを立ち上げると, なんとも味気ないものに変わっていると思います.
まずは設定ファイル.zshrc
の作成から.
$ touch ~/.zshrc
ここからのカスタマイズは各自にお任せするので, 最低限のものだけ以下に記載しておきます.
~/.zshrc
ファイルに以下を記入します.
$ vi ~/.zshrc
として, i
を押すと挿入モードになり編集可能です.
以下を入力し終えたら(ターミナル上でのペーストはCtrl
+ Shift
+ v
), Esc
を押して編集モードを終了したのち, :wq
と入力します.
コロンも必須です.
# /sbinへのPATHを通す
export PATH=/sbin:$PATH
# 上下矢印キーでヒストリーの表示
bindkey "^[[5~" history-beginning-search-backward
bindkey "^[[6~" history-beginning-search-forward
# プロンプトの色付け
PROMPT='%F{red}%m@%n%f:%F{cyan}%~%f$ '
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias dir='dir --color=auto'
alias grep='grep --color=auto'
fi
# laコマンド(全ディレクトリ表示)の設定
alias la='ls -la'
あとはzsh-autosuggestionの導入を以下に載せます.
$ git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
$ echo 'source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh' >> ~/.zshrc
ここまでを実行してターミナルを再び立ち上げるとbash
の時とほぼ変わらない状況が出来上がっていると思います.
とは言っても, zsh
のautosuggestionが入っているので長ったらしいコマンドを打つ際には格段にzsh
の良さが感じられると思います。
日本語入力の有効化
以下を入力.
$ sudo apt -y update
$ sudo apt -y upgrade
$ sudo apt install -y ibus-anthy
以下のコマンドで一度再起動.
$ sudo reboot -f
その後ターミナルか何かを開いて右上に「JA」のように表示されていればOKです. クリックすると以下のように表示されるはずです. ここで「日本語-Anthy」を選択することで, 以下半角/全角ボタンで日本語とアルファベット入力の切り替えができるようになります.
上手くいかないようなら一番左上のメニュー(Kali Linuxのドラゴンっぽいアイコン)から「すべてのアプリケーション」→「IBusの設定」→「入力メソッド」を選択し, 「日本語-Anthy」が入っているか確認してください3.
この部分は以下を参考にしました.
VMware Toolsのインストールと共有フォルダ設定
ホストOS(Windows 10)とゲストOS(Kali Linux)との間でファイル共有するには大抵VMware Toolsを用いるのですが, VMware Workstationの「Player」→「管理」→「VMware Toolsの再インストール」がグレーアウトしてインストールできない場合があります. 色々調べてみると, フロッピーディスクの検出を有効にするだとか, 最初のBIOS画面からログインするまでならグレーアウトされないだとかいろいろ出てきますが結局のところフォルダ共有までには至りません.
上の画像はグレーアウトされていない場合です. この場合は「VMware Toolsの再インストール」をクリックすることでデスクトップ上にVMware Toolsというディスクが登場すると思いますので以下を参照しつつ共有フォルダを作成してください(ここでは割愛).
以下ではグレーアウトする場合を取り上げます.
まずはホストOS(Windows10)で共有するフォルダを作っておきます. 中身は空っぽで構いません. 自分はvm_share
という名前にしました.
次にVMware左上の「Player」→「管理」→「仮想マシン設定」→「オプション」→「共有フォルダ」を選択し「常に有効」を選択します.
また, 「追加」を押すと共有フォルダ追加ウィザードが立ち上がります. ホストパスには先ほど作成したフォルダ(vm_share
)を選択します. 名前は変更してもかまいませんが, ゲストとホストで共通のものにしておいたほうがいいと思います.
最後の「この共有を有効化」 のみ にチェックをいれ(おそらく初期の状態からこうなっているはず), 「完了」を押します.
これでホストOS側の操作は終了です. 次はKali Linuxのターミナルを開き, 以下を実行します.
$ sudo apt install -y --reinstall open-vm-tools-desktop fuse
$ sudo reboot -f
再起動したら以下を実行. 名前は.mount-shared-folders.sh
にしましたが何でもOKです.
$ touch ~/.mount-shared-folders.sh
$ chmod 755 ~/.mount-shared-folders.sh
.mount-shared-folders.sh
には以下を書き込みます.
#!/bin/zsh
vmware-hgfsclient | while read folder; do
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
viでもどんなテキストエディタでも構いません. 書き込めたらターミナルで以下を実行.
$ sudo ~/.mount-shared-folders.sh
あとは操作しやすいようにシンボリックリンクを設定しておきます. 以下のvm_share
の部分は各自で設定した共有フォルダの名前に置き換えてください.
$ ln -s /mnt/hgfs/vm_share ~/vm_share
Kali Linux立ち上げ時と共にマウント
このままだと, Kali Linuxを立ち上げるたびに
$ sudo ~/.mount-shared-folders.sh
を実行しないといけません. さすがにこれでは面倒なので, 起動時に自動的にマウントするようにします.
$ sudo su
でrootに切り替えます.
# crontab -e
とすると, 初回に限りどのエディタを使うか聞いてくるので選択します(デフォルトはnanoで, viは2です).
viの使い方は~/.zshrc
の作成の際に少し書いてあるのでそちらを参考にしてください.
いろいろとシャープから始まる記述がありますが, 一番下に以下を追加して保存するだけでOKです.
@reboot /home/(ユーザ名)/.mount-shared-folders.sh
特に何もしていなければこの.mount-shared-folders.sh
はホームディレクトリにあると思うので, 上のように記入しましょう.
ユーザ名が分からなければ(そんなことはないと思いますが), 別のターミナルを開いて
$ pwd
とすれば確認できます.
以上で設定完了です. 再起動すると, ホスト側とのフォルダの共有ができていると思います.
Hack The BoxのためのVPN設定
Hack The Boxでアカウント作成するためのInvite Codeは各自挑戦してください.
調べればいくらでも解法は出てきますので一例を挙げておきます.
Hack The Box: How to get invite code
ここでは既にアカウント作成, ログインまでは済んでいるものとします.
ログイン出来たら左の"Labs"から「Access」をクリック→"Getting Started"から"connection pack"をダウンロード(here
の部分)
その一行下に書かれている通り, ターミナル上で
$ sudo openvpn (username).ovpn
を実行します. (username)
の部分は各自Hack The Boxに登録したユーザ名に置き換えてください.
なお, Hack The Boxのサイトにはsudo
は書かれていませんが, これがないと最終2行が
Sat Mar 14 17:50:50 2020 ERROR: Cannot ioctl TUNSETIFF tun: Operation not permitted (errno=1)
Sat Mar 14 17:50:50 2020 Exiting due to fatal error
のようになり上手くいかないので注意. 上手くいった場合は最後の1行が
Sat Mar 14 17:51:46 2020 Initialization Sequence Completed
となるはずです. また
$ ifconfig
で下のほう(tun0
の部分)に10.10.xx.xx
のようなIPアドレスが出てくると思います. これが手元のマシンのアドレスになります.
あとは別のターミナルを立ち上げ、nmap
でもmsfconsole
でも好きなだけ使いましょう