ZAPROXYでサイト診断(2)

Kalilinux

前回の続きです。

ZAPROXY(以下単にZAPと省略します)を使用して、他人に迷惑をかけない方法でWEBサーバーの監査を行う方法です。

Protected modeの設定

まずは左上の ” Standard Mode ” を ” Protected Mode ” に変更します。

protected mode

この操作で攻撃ボタンが押せなくなります。

プロキシ設定

プロキシは ” 代行 ” という意味。(本来的には、 ” 近く ” という意味ですが)

普通は、

ブラウザ ↔️ サーバー 

という関係ですが、ここでは途中にZAPを入れて、

ブラウザ ↔️ ZAP ↔️ サーバー 

という関係にします。

つまりブラウザとWEBサーバーの間にZAPを入れてデータ流通の仲介をさせます。

基本的な方法

ZAP側の設定

上段メニューの ” Tools ” から ” Options ” を選択します。

ZAP Options

左欄の ” Network ” から ” Local Servers/Proxies ” を選択し、右のAddressは ” localhost ” (デフォルトのまま)。

その下欄のPort番号はデフォルトでは ” 8080 ” となっていますが、この番号は他のツールでもよく使う(つまりしばしば被る)番号らしく、別の番号に変更した方が良いようです。

下の例では ” 18080 ” にしています。

ZAP Options

ブラウザ側の設定

ここでは FireFoxを例に取って説明します。

ブラウザ右上の ” 三 ” アイコンから ” Settings ” を選択します。

FireFox Proxy setting

左欄 ” General ” を選択し、右欄を一番下までスクロールして ” Network Settings ” 欄の ” Settings… ” をクリックします。

FireFox Settings2

” Connection Sttings ” ダイアログが出るので、 ” Manual proxy configuration ” を選択します。

HTTP Proxy欄に ” localhost ” と入力。Port番号は先ほどZAPで設定した番号を入力します。(下例では18080)

その下の ” Also use this proxy for HTTPS ” にもチェックを入れておきます。

FireFox Settings3

” OK ” でダイアログを閉じて設定終了です。

この設定方法では、ZAPを終了させてしまうとプロキシが終了するので、それ以後はブラウザからWEBサイトへの接続が出来なくなります。

より簡単な設定の仕方

別な方法として、より簡略な方法があります。

ZAP右上の ” FireFox ” アイコンをクリックします。

FireFox on ZAP

すると既にプロキシに設定されたFireFoxブラウザが立ち上がります。

立ち上がる際のアラート。

Alert

立ち上がったブラウザのネットワーク設定を見ると、プロキシ設定が自動的にされています。

FireFox Settings ZAP proxy

ちなみにこの方法を使うと、別窓で普通にブラウザを立ち上げた場合(別セッションのFireFox)にはプロキシが設定していない状態の普通のブラウザが立ち上がります。

FireFox Settings no proxy

この方法でプロキシを設定した場合は、以下のようになります。

ZAPの右上アイコンからFireFoxを起動したセッション(窓)普通にFireFoxを起動したセッション(窓)
プロキシとしてZAPが設定されるプロキシが設定されない
ZAPを終了させるとWEBサイトに接続できなくなる。ZAPを終了させても関係なく接続できる。

証明書の設定

上記の設定にて、 ” http:// ” のサイトに接続出来るようになりました。

しかし、 ” https:// ” のサイトに接続する場合にはZAP側から証明書を発行してもらい、それをブラウザ側に登録しておく必要があります。

以下、その手順です。

ZAP側の操作

上段メニューの ” Tools ” から ” Options ” を選択します。

ZAP Options

” Options ” ダイアログにて、左欄の ” Network ” から ” Server Certificates ” を選択します。

新たに証明書を作成する場合

” Generate ” をクリックします。

zap server certificate

既存の証明書を上書きするダイアログが出ますので ” Yes ” をクリックします。

既存の証明書が作成してあり、これを利用する場合は上記操作は不要です。

右上の ” Save ” ボタンをクリックし保存します。

デフォルトではホームディレクトリに ” zap_root_ca.cer ” という名前で保存されます。

Save CA

ホームには確かに ” zap_ root_ca.cer ” が保存されています。

ZAP CA

ブラウザ側の操作

ブラウザはFireFoxを例に取ります。

ブラウザ右上の ” 三 ” アイコンから ” Settings ” を選択します。

FireFox Proxy setting

左欄で ” Privacy & Security ” を選択し、右欄を下にスクロールして、 ” Security ” 欄の ” certificates ” 欄の、 ” View Certificates… ” をクリックします。

privacy security setting

” Certificate Manager ” ダイアログが出ますので、下の ” Import… ” をクリック。

Certificate Manager

証明書の位置を指定する画面となるので、先ほど保存した証明書を指定します。

CA locate

次のダイアログでは、証明書の目的を聞いてきます。WEBサイトの証明に利用する場所にチェックを入れます。

trust

証明書欄を下にスクロールすると、先程取り込んだ ” ZAP Root CA ” が入っています。

FireFox CA manager

” OK ” でダイアログを閉じます。

以上で準備は完了です。

まとめ

ZAPの準備編その2:プロテクトモードの準備の解説でした。

ここまででやっと安全に接続出来るようになりました。

接続先はラズパイ4B(写真右)に立っているWEBサイトの予定です。

rasberry pi

長くなりましたので、続きの接続編は次回で。

付録

前回やらかした失敗の件についてChatGPTで検索してみました。

すなわち前回「 ” Standard Mode ” では外部リンクを攻撃する。」と書きましたが、本当にそうなのかの疑問をChatGPTに聞いてみました。

初めてChatGPTを使いました。

以下は、実際にはZAPに関連する何回かのChatGPTとの問答の後でのやり取りです。

ZAP link1
ZAP kink2

要約すると、「通常は外部リンクまでスキャンしに行かないが、設定によっては外に出て行く」との結論でした。

これによると前回の私の行為は一応違法行為までにはなっていなかった模様です。

まあ、ChatGPTはネットの平均的世論みたいなものなので、(=つまりネット上で嘘が蔓延している場合には普通に平気で嘘をつくので)これが100%真実とまでは言えませんが、一応セーフということで一安心。

しかしこれ、機械でブログが書けてしまうよ。恐るべし、ChatGPT。

でもChatGPTにブログを全部書いてもらったら、自分のボケ防止には全然役立ちませんが。

コメント

タイトルとURLをコピーしました