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.