
「LowNoiseHG(LNHG) Massive Web Fingerprinter」(以降「mwebfp」)は、2013年7月、大規模な外部または内部IPアドレス範囲のエンゲージメントにおいて、ペネトレーションテスターがWebサーバーのスクリーンショットを有用だと認識したことから考案されました。重要な資産の迅速な識別、容易に悪用可能なサービスの発見、忘れ去られた/時代遅れのサーバーの特定、ターゲットの基本的なネットワークアーキテクチャの把握を目的としています。
mwebfp の基本的な動作は、入力(ターゲットとTCPポート)を処理し、強力なポートスキャナー(nmap)を利用してWebサーバーのオープンポートを特定することです。見つかったすべてのオープンポートはHTTPおよびHTTPSで解析され、関連するWebサーバー情報が記録されるとともに、レンダリングされたWebページのスクリーンショット(ブラウザで見た状態)が取得されます。
# LowNoiseHG Massive Web Fingerprinter
# by F4Lc0N - LNHG - USA/Colombia
#
# Thanks to ET, c4an, Th3R3g3nt, ch0ks and ElJeffe311
# for inspiration, ideas and debugging/beta-testing help.
usage: mwebfp.py [-h]
[-i INPUT_RANGE | -n SERVER_NAME | -f INPUT_FILE | -r]
[-p HTTP_PORTS] [-s HTTPS_PORTS] [-o OUTPUT_DIR]
[-t {HTML,XLS,CSV,XML}] [-v {yes,no}] [-w {yes,no}]
optional arguments:
-h, --help show this help message and exit
-i INPUT_RANGE, --input-range INPUT_RANGE
input IP CIDR range
-n SERVER_NAME, --server-name SERVER_NAME
name of server (DNS name)
-f INPUT_FILE, --input-file INPUT_FILE
input file containing IP addresses and/or IP ranges
-r, --recover recover/continue previous process
-p HTTP_PORTS, --http-ports HTTP_PORTS
TCP HTTP ports (Default: 80/tcp)
-s HTTPS_PORTS, --https-ports HTTPS_PORTS
TCP HTTPS ports (Default: 443/tcp)
-o OUTPUT_DIR, --output-dir OUTPUT_DIR
working directory
-t {HTML,XLS,CSV,XML}, --output-format {HTML,XLS,CSV,XML}
output report format (Default: HTML)
-v {yes,no}, --vhosts {yes,no}
choice of processing vhosts for each IP address
(Default: no)
-w {yes,no}, --web-screenshots {yes,no}
choice of taking web schreenshots (Default: no)
LowNoiseHG(LNHG) におけるほとんどの研究開発と同様に、このツールは有用性のみを目的として設計・開発され、資金や時間は割り当てられていません。すべての開発は個人の時間のみで行われており、興味深い機能が登場し、他のプロジェクトを考慮して時間があれば継続されます。
現在のバージョンは非常にうまく動作しますが、まだいくつかの小さな問題(バグ)があり、改善できる基本的な機能もあります。
開発中の機能:
既知のバグ:
mwebfp およびこれに関連するすべてのコードは、GPL v3 オープンソースライセンスの下で公開されています。完全なライセンスは LICENSE.md ファイルに添付されています。
mwebfp を「out-of-the-git」ですべてのオプションを有効にして実行するには、以下が必要です。
注:mwebfp はKali、Ubuntu、Debianで開発・テストされています。他のプラットフォームでも動作させることができると確信しています ;)
$ sudo apt-get install -y nmap python python-nmap python-requests git
このためにはapt-getを使用しないでください。OSが提供するバージョンも使用しないでください。自分のバージョンが mwebfp で動作するかどうかは、'cutycapt --help' を実行し、'--insecure' オプションがあるかどうか、または著作権が '2003-2010' か '2003-2013'(ヘルプの最終行を確認)かを確認してください。mwebfp で cutycapt を使用するには、'--insecure' または著作権 '2003-2013' が必要です。 最新バージョンが必要な場合は、現在のバージョンをアンインストールし、次の手順を実行してください:
$ cd /opt
$ sudo apt-get install -y subversion g++ libqt4-webkit libqt4-dev
$ sudo svn checkout svn://svn.code.sf.net/p/cutycapt/code/ cutycapt
$ cd cutycapt/CutyCapt
ファイル ./CutyCapt.hpp を変更し、最初の行の '#include <QtWebKit>' の後に次の2行を追加します:
#include <QNetworkReply>
#include <QSslError>
その後:
$ sudo qmake
$ sudo make
$ sudo cp CutyCapt /usr/local/bin/
'--insecure' パラメータまたは '2003-2013' 著作権を次のようにテストできます:
$ cutycapt --help
$ cd /opt
$ sudo git clone https://github.com/falcon-lnhg/mwebfp.git
$ cd mwebfp
$ ./mwebfp -i 10.0.0.0/8 -o OutputDir -w yes -v no
オプションの全リストはいつでも次のように確認できます:
$ ./mwebfp -h