BETA

動かして学ぶ脆弱性(Chapter0: 環境構築編3)

投稿日:2020-02-17
最終更新:2020-02-20

注意事項

  • ここで得た知見は、自分が管理しているネットワーク内もしくは明示的に許可を得たネットワーク内でのみで利用してください。
    • 許可されたネットワーク外で利用した場合、不正アクセスなどとして検挙される可能性があります。

  • ※ この物語はすべてフィクションです。実際の企業・団体などは一切関係ございません。

前回までのあらすじ

  • VirtualBox上でUbuntu Server仮想マシンを立てました。
  • Ubuntu Serverに公開鍵認証で接続できるようにしました。
  • Ubuntu ServerにDockerをインストールしました。
  • Ubuntu Serverの内部ネットワークのIPアドレスを設定しました。
  • Ubuntu ServerのDockerでDVWAを起動しました。

Chapter0-10 Kali Linux導入

瀬季南:やぁ、未来の診断員たち。前回の記事ぶりだね。
今回はハンズオン環境のうち、残りの部分であるKali Linuxをインストールするよ。

瀬季南:まずはこのサイトにアクセスしよう。

Official Kali Linux Downloads

瀬季南:ここでは、Kali Linuxのisoファイルをダウンロードできるよ。
isoファイルは基本的に、installerバージョンを使用するのをおすすめするよ。
ちなみに、Kali LinuxにはVirtualBoxとVMware向けに仮想マシンファイルもダウンロードできるよ。
仮想マシンファイルは上のリンクではなく、このリンクから入手できるよ。

Kali Linux Custom Image Downloads - Offensive Security

瀬季南:今回は、isoファイルからインストールするよ。
「Download Kali Linux Image」の一番上にある「Kali Linux 64-Bit (Installer)」をクリックしてダウンロードしよう。
ダウンロードが始まるけど、約2GBあるので、時間に余裕を持ってダウンロードしよう。
Torrentを使用しているなら、その右の「Torrent」からダウンロードしてね。

瀬季南:ダウンロードが完了したら、ファイルのチェックサムを確認するよ。
このコマンドを使って、ファイルのチェックサムを確認するよ。
kali-linux-2020.1-installer-amd64.iso: OK」と表示されれば完了だよ。

echo "e399fa5f4aa087218701aff513cc4cfda332e1fbd0d7c895df57c24cd5510be3 *kali-linux-2020.1-installer-amd64.iso" | shasum -a 256 --check  

瀬季南:Ubuntu Serverのときと同じように仮想マシンを作成するよ。

瀬季南:前回のUbuntu Serverと違って、名前に「Kali」と入力しても自動的に「タイプ」がLinuxに変更されないので手動で変更しよう。
また、バージョンは「Debian (64-bit)」になるよ。
メモリサイズは、自分のホストマシンのメモリの4分の1ぐらいに設定しよう。
私の環境では、ホストマシンのメモリは16GBなので、「4096MB」になるよ。

瀬季南:その他の設定はUbuntu Serverと同じだよ。

瀬季南:起動してしばらくすると、この画面が表示されるよ。
ここでは、「Graphical install」を選択するよ。

瀬季南「Select a language」の画面が出たら、「English」を選択して、「Continue」ボタンをクリックするよ。
このタイミングで「Japanese」を選択すれば、以降は日本語で設定できるよ。
その場合、インストール完了直後はフォントの問題で豆腐文字になるから気をつけてね。

瀬季南:「Select your location」の画面が出たら、「other」を選択して、地域選択画面を表示させるよ。
「Asia」を選択してアジア地域を表示させて、「Japan」を選択して、「Continue」ボタンをクリックするよ。

瀬季南:「Configure locales」の画面が出たら、「United States - en_US.UTF-8」を選択して、「Continue」ボタンをクリックするよ。

瀬季南:「Configure the keyboard」の画面が出たら、使用しているキーボードに合わせて設定を行うよ。
今回はJISキーボードを使用しているので、「Japanese」を選択して、「Continue」ボタンをクリックするよ。

瀬季南:「Configure the network」の画面が表示されるよ。
ここでは、仮想マシンのホスト名を設定するよ。
今回は特に編集せず、デフォルトの「kali」で進めるので、そのまま「Continue」ボタンをクリックするよ。

瀬季南:「Configure the network」の画面が表示されるよ。
ここでは、ドメイン名の設定を行うよ。
今回は特に入力する必要はないので、そのまま「Continue」ボタンをクリックするよ。

瀬季南:「Set up users and passwords」の画面が表示されるよ。
ここでは、Kali Linux上のユーザ名とパスワードを設定するよ。
まず、この画面では新しいユーザのフルネーム名を設定するよ。
入力できたら、「Continue」ボタンをクリックするよ。

瀬季南:次の画面では、ユーザアカウント名を設定するよ。
デフォルトでは前の画面で入力した名前が入力されているので、そのまま「Continue」ボタンをクリックするよ。

瀬季南:次の画面では、前の画面に設定したユーザアカウントのパスワードを入力するよ。
2箇所入力するところがあるので、同じパスワードを入力してね。
入力が完了したら、「Continue」ボタンをクリックするよ。

瀬季南:「Partition disks」の画面が表示されるよ。
ここは、前回のUbuntu Serverのときと同じように設定しよう。

瀬季南:「Configure the package Manager」の画面が表示されるよ。
ここでは、HTTPプロキシ情報を設定するよ。
今回は、この段階では設定する必要はないので、そのまま「Continue」ボタンをクリックするよ。

瀬季南:「Software selection」の画面が表示されるよ。
ここでは、Kali Linuxセットアップ時にインストールするパッケージを選択できるよ。
ここも特別変更する必要はないので、そのまま「Continue」ボタンをクリックするよ。

瀬季南:「Install the GRUB boot loader on a hard disks」の画面が表示されるよ。
ここでは、GRUB boot loaderに使用する仮想ハードウェアを設定するよ。
「Partition disks」で設定した仮想ハードウェアが表示されているはずなので、それを選択して「Continue」ボタンをクリックするよ。


瀬季南:「Install the GRUB boot loader on a hard disks」の設定が完了すると、「Finish the installation」の画面が表示されるよ。
そうしたら、「Continue」ボタンをクリックして、再起動させるよ。
しばらく待つと、ログイン画面が表示されるよ。
先程設定したユーザ名とパスワードでログインしよう。

瀬季南:ユーザ名とパスワードを入力して、デスクトップが表示されたらオーケーだよ。
デスクトップ上部の左から4番目あたりの黒いアイコンをクリックして、ターミナルを起動するよ。
前回と同じように、パッケージを更新するよ。
時間がかかるから、十分な時間を確保してから実行しようね。

瀬季南:デスクトップ環境を日本語化していくよ。
次のコマンドを実行しよう。

sudo apt install task-japanese task-japanese-desktop  

瀬季南:続けて次のコマンドを実行しよう。

sudo dpkg-reconfigure locales  

瀬季南:「Configure locales」の画面が出たら、まず「en_US.UTF-8 UTF-8」までカーソルを移動させるよ。
そうしたら、「en_US.UTF-8 UTF-8」のチェックを外すよ。
チェックのオンオフは「スペース」キーで行われるので、「スペース」キーを押して、チェックされているフラグの*が外れたことを確認しよう。
次に、「ja_JP.UTF-8 UTF-8」までカーソルを移動させて、*チェックをつけるよ。
チェックが完了したら、「Enter」キーを押すよ。

瀬季南:この画面が表示されたら、先程選択した「ja_JP.UTF-8 UTF-8」に合わせて、「Enter」キーを押そう。
その後、2回再起動を実施すると日本語表示になるよ。

瀬季南:最後に、Chapter0-8を参考にして内部ネットワーク用のIPアドレスを割り当てるよ。
ただし、設定ファイルは/etc/network/interfacesになるよ。
設定ファイルに記載する内容の例は、次のようになるよ。

auto eth1  
iface eth1 inet static  
address 172.16.100.101  
netmask 255.255.255.0  

瀬季南:eth1の部分は、自身のKali Linuxの環境に合わせて変更してね。
変更が完了したら、Kali Linuxを再起動して設定を反映させるよ。

Chapter0-11 Kali LinuxとUbuntu Serverの疎通確認

瀬季南:Ubuntu Serverの仮想マシンを起動していない場合は、起動しておこう。
起動が完了したら、このコマンドを実行しよう。

ping -c 4 172.16.100.100  

瀬季南:pingが無事に通ればオーケーだよ。
ブラウザを立ち上げて、http://172.16.100.100にアクセスしてみよう。
DVWAのログイン画面が表示されれば、オーケーだよ。

Chapter0-12 OWASP ZAPとFoxyProxyインストール

瀬季南:Chapter0-11までで、やられアプリにアクセスできるようになっているよ。
これで勉強してもいいけど、より詳細に理解するために、脆弱線診断用ツールのOWASP ZAPを導入するよ。
Kali Linux上で、次のコマンドを実行しよう。

sudo apt install zaproxy  

瀬季南:インストールが完了したら、デスクトップ上部の一番左のアイコンをクリックして、zapと入力しよう。
owasp-zapが表示されたら、それをクリックしよう。

瀬季南:初回起動時は、OWASP ZAPのセッション保持方法について質問されるよ。
「継続的に保存せず、必要に応じてセッションを保存」を選択した上で、「選択を記憶して、再度問い合わせない。」にチェックを入れよう。
そうしたら、「開始」ボタンをクリックしよう。

瀬季南:OWASP ZAPに導入されているアドオンに更新があれば、アドオン管理画面が表示されるよ。
更新自体はバックグラウンドで行われるので、「全て更新」ボタンをクリックしよう。
そうしたらこの画面は不要なので、「閉じる」ボタンをクリックしよう。

瀬季南:続けて「ツール」から「オプション」を選択して、「ダイナミック SSL証明書」を選択するよ。
ここには、OWASP ZAPのルートCA証明書が記載されているよ。
これをブラウザの証明書にインポートすることで、HTTPSサイトであっても、証明書エラーを出させずに表示できるよ。
ただし、このような独自の証明書(いわゆるオレオレ証明書)をブラウザにインポートするのは、セキュリティ上のリスクを高めるので注意してね。
OWASP ZAPのルートCA証明書の下にある「保存」ボタンをクリックして、証明書を保存するよ。

瀬季南:「ローカル・プロキシ」をクリックしよう。
ここでは、OWASP ZAPをプロキシサーバとして利用する場合の設定を行うよ。
「ポート」の項目をデフォルトの「8080」から「18080」に変更しよう。
このポート番号は別に「18080」でなくてもオーケーだけど、後ほどFoxyProxyでも使用するので覚えておこうね。
入力が完了したら、次に「Security Protocols」項目に移動するよ。
「TLS 1.1」以下のプロトコルは2020年3月でサポートが終了する(もしくは終了済み)ので、「TLS 1.2」より左側にあるすべてのプロトコルのチェックを外しておこう。

瀬季南:最後に、「HUD」をクリックしよう。
v2.8から、OWASP ZAPが自動的にHTTPサイトに対してもHTTPS接続するようになったよ。
それに伴って追加されたオプションだけど、今回は使用しないので無効化しておくよ。
「Enable when using the ZAP Desktop」のチェックを外すよ。
そうしたら、「OK」ボタンをクリックして保存しよう。

瀬季南:OWASP ZAPはプロキシとして動作して、ブラウザとWebサーバのHTTP通信をチェック・改ざんできるよ。
これを行うためには、ブラウザにプロキシであるOWASP ZAPを認証させて、そのポートを通過させる必要があるよ。
その設定を容易にするため、「FoxyProxy」というブラウザアドオンをインストールするよ。
Firefox上で、「FoxyProxy」と検索して、インストールしよう。

FoxyProxy Standard – 🦊 Firefox (ja) 向け拡張機能を入手

瀬季南:ページを開いたら「Firefoxへ追加」ボタンを押してアドオンをインストールしよう。
インストールの際は許可が必要になるので、許可しよう。
インストール後、FoxyProxyのAbout画面が表示されればオーケーだよ。

瀬季南:FoxyProxyのアイコンをクリックして、「Options」ボタンをクリックしよう。
FoxyProxyのオプション画面が表示されるよ。
「Add」ボタンを押して、Proxy情報を追加していくよ。

瀬季南:この画面では、FoxyProxy上でのプロキシ設定を行うよ。
今回は、次のように項目を設定していくよ。

  • Title of Description:OWASP
  • Color:#4169E1
  • Proxy Type:HTTP
  • Proxy IP address or DNS name:127.0.0.1
  • Port:18080

瀬季南「Username」と「Password」はオプションなので、今回は空欄でオーケーだよ。
入力が完了したら、「Save」ボタンをクリックして保存しよう。

瀬季南:Firefoxの設定画面を開いて、「証明書」項目から「証明書を表示」ボタンをクリックしよう。
証明書マネージャー画面が表示されたら、「インポート」ボタンをクリックしよう。
ファイルダイアログが表示されるので、先程保存したOWASP ZAPのルートCA証明書ファイルを選択して、「開く」ボタンをクリックしよう。
証明書のインポート画面が表示され、「OWASP ZAP Attack Proxy Root CA」という名前が表示されていればオーケーだよ。
「この認証局によるウェブサイトの識別を信頼する」にチェックを入れたら、「OK」ボタンをクリックしよう。

瀬季南:設定が完了したら、試しにhttps://www.google.comへアクセスしてみよう。
正常にGoogleのサイトが表示されれば、オーケーだよ。

参考

補足:ネットワーク画像について

瀬季南:ネットワーク画像は次からお借りしているよ。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

みんな卵から始まった (Qrunchのアクセス機能停止に伴い、Google Analyticsを使用しています)

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう