IIS のショートファイル名を列挙するツールです。
Shortscan は、IIS ウェブサーバー上にどのショートファイル名のファイルが存在するかを迅速に特定するために設計されています。ショートファイル名が見つかると、ツールは自動的に完全なファイル名を特定しようと試みます。
標準的な発見方法に加えて、Shortscan は独自のチェックサム照合アプローチも使用して、ショートファイル名が Windows 独自のショートネーム衝突回避チェックサムアルゴリズムに基づいている場合に、長いファイル名を見つけようとします(この研究の詳細は後日公開予定です)。
go の最近のバージョンを使用して:
go install github.com/bitquark/shortscan/cmd/shortscan@latest
ローカルでビルド(および必要に応じてインストール)するには:
go get && go build
go install
Shortscan は最小限の設定で簡単に使用できます。基本的な使い方は以下の通りです:
$ shortscan http://example.org/
また、スキャンする URL のリストを含むファイルを指定することもできます:
$ shortscan @urls.txt
次の例では、--header/-H を複数回使用して複数のカスタムヘッダーを設定しています:
shortscan -H 'Host: gibson' -H 'Authorization: Basic ZGFkZTpsMzN0'
ファイル列挙を行わずにサイトが脆弱かどうかを確認するには、次を使用します:
shortscan --isvuln
以下のオプションでさらに調整が可能です:
🌀 Shortscan v0.9.2 · an IIS short filename enumeration tool by bitquark
Usage: main [--wordlist FILE] [--header HEADER] [--concurrency CONCURRENCY] [--timeout SECONDS] [--output format] [--verbosity VERBOSITY] [--fullurl] [--norecurse] [--stabilise] [--patience LEVEL] [--characters CHARACTERS] [--autocomplete mode] [--isvuln] URL [URL ...]
Positional arguments:
URL url to scan (multiple URLs can be provided; a file containing URLs can be specified with an «at» prefix, for example: @urls.txt)
Options:
--wordlist FILE, -w FILE
combined wordlist + rainbow table generated with shortutil
--header HEADER, -H HEADER
header to send with each request (use multiple times for multiple headers)
--concurrency CONCURRENCY, -c CONCURRENCY
number of requests to make at once [default: 20]
--timeout SECONDS, -t SECONDS
per-request timeout in seconds [default: 10]
--output format, -o format
output format (human = human readable; json = JSON) [default: human]
--verbosity VERBOSITY, -v VERBOSITY
how much noise to make (0 = quiet; 1 = debug; 2 = trace) [default: 0]
--fullurl, -F display the full URL for confirmed files rather than just the filename [default: false]
--norecurse, -n don't detect and recurse into subdirectories (disabled when autocomplete is disabled) [default: false]
--stabilise, -s attempt to get coherent autocomplete results from an unstable server (generates more requests) [default: false]
--patience LEVEL, -p LEVEL
patience level when determining vulnerability (0 = patient; 1 = very patient) [default: 0]
--characters CHARACTERS, -C CHARACTERS
filename characters to enumerate [default: JFKGOTMYVHSPCANDXLRWEBQUIZ8549176320-_()&'!#$%@^{}~]
--autocomplete mode, -a mode
autocomplete detection mode (auto = autoselect; method = HTTP method magic; status = HTTP status; distance = Levenshtein distance; none = disable) [default: auto]
--isvuln, -V bail after determining whether the service is vulnerable [default: false]
--help, -h display this help and exit
--version display version and exit
shortscan プロジェクトには shortutil という名前のユーティリティが含まれており、さまざまなショートファイル名操作や、ツールで使用するカスタムレインボーテーブルの作成に使用できます。
既存のワードリストからレインボーテーブルを作成するには次のようにします:
shortutil wordlist input.txt > output.rainbow
ファイルの一回限りのチェックサムを生成するには:
shortutil checksum index.html
各コマンドの完全なオプション一覧については shortutil <command> --help を実行してください。
Shortutil v0.3 · a short filename utility by bitquark
Usage: main <command> [<args>]
Options:
--help, -h display this help and exit
Commands:
wordlist add hashes to a wordlist for use with, for example, shortscan
checksum generate a one-off checksum for the given filename
shortscan 用にカスタムワードリストが作成されています。詳細については pkg/shortscan/resources/README.md を参照してください。
Soroush Dalili による IIS ショートファイル名の 研究 に基づいています。
追加の研究と本プロジェクトは bitquark によるものです。