ITオムライス

脆弱性診断ツールのskipfishを試す

2019-06-02 技術系

skipfishを使ってみました。

参考にする場合は、必ず自分の ローカルの環境に対してのみ行ってください。自分の管理下にない環境に対しては行わないでください。

インストール

CentOS7にインストールしました。

sudo yum install openssl-devel libidn-devel pcre-devel

公式のサイトからダウンロードしてmakeします。

Google Code Archive - Long-term storage for Google Code Project Hosting.

wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/skipfish/skipfish-2.10b.tgz 
tar xvzf skipfish-2.10b.tgz
cd skipfish-2.10b
make

診断対象

以前Niktoを試したときに使ったMetasploitable2をつかいました。
脆弱性診断ツールのNiktoを試す - ITオムライス

ツールの実行

公式ドキュメントに使い方が書いてありました。

Google Code Archive - Long-term storage for Google Code Project Hosting.

$ ./skipfish -o output_dir -S existing_dictionary.wl -W new_dict.wl \
   http://www.example.com/some/starting/path.txt

-o オプションで結果を保存するディレクトリを指定、-Sオプションで辞書ファイルを指定、-Wオプションでキーワード辞書ファイルを指定する必要があるようです。
キーワード辞書ファイルはあらかじめ作成しておく必要があるので、touchコマンドで作成しておきます。

辞書ファイルは最初から「complete.wl」、「extensions-only.wl」、「medium.wl」、「minimal.wl」の4つのファイルが用意されています。

./skipfish -o result -S dictionaries/minimal.wl -W new_dict.wl http://10.0.2.9/twiki/

実行画面なんかかっけぇ

長すぎたので、途中で止めたのですが実行結果はちゃんと出力されました。
html形式で出力されるので、ブラウザでアクセスすると、以下の画像のように表示されます。
必要な情報がわかりやすくまとめられているなと感じました。OWASP ZAPとかを使ったことのある人なら、すぐに結果画面の見方がわかると思います。

内容としては充実している感じですけど、時間がかかりすぎるので、大きいアプリに実行する際は、オプションをつけて実行する必要があると思います。
使いそうなオプションを下にまとめておきます。

オプション

高速化するときのオプション

-L サイトコンテンツからのキーワードの抽出を行わない
-Y 辞書からURLを生成する際、一部の組み合わせしか使用しない
-W- 抽出したキーワードを辞書に書き込まない

ログインが必要なサイトで使うオプション

-A ユーザー名:パスワード

Basic認証で使う

-C   Cookie名=値

認証情報を持っているCookieを指定する

-X /logout/

特定のディレクトリを無視する。ログイン後のCookieを使っている場合はログアウトのパスを指定する。

–auth-form ログインフォームのあるページのURL 
–auth-form-target ログインアクションURL
–auth-user-field ユーザ名のフィールド名
–auth-pass-field パスワードのフィールド名
–auth-user ユーザ名
–auth-pass パスワード
–auth-verify-url 認証できたか確認できるページのURL

参考

Google Code Archive - Long-term storage for Google Code Project Hosting.

「skipfish」でWebアプリの脆弱性をチェックする | さくらのナレッジ

セキュリティチェックツールskipfish入門 | apps-gcp.com