Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/h4ckforjob/dirmap
偵察脆弱性スキャナー情報収集ウェブセキュリティペネトレーションテスト
GitHubh4ckforjob/dirmap

dirmap

DirBuster、Dirsearch、cansina、Yu Jian(御剑)よりも強力な、高度なWebディレクトリおよびファイルスキャンツール。

リポジトリを見る
3.4k5551年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Dirmap

English

高機能Webディレクトリスキャンツール。DirBuster、Dirsearch、cansina、御劍よりも強力です。

dirmap

要件分析

広範な調査の結果、優れたWebディレクトリスキャンツールには少なくとも以下の機能が必要であることがわかりました。

  • 並行エンジン
  • 辞書を使用可能
  • 純粋なブルートフォース
  • ページをクロールして動的に辞書を生成
  • Fuzzスキャン
  • カスタムリクエスト
  • カスタムレスポンス処理...

それでは、Dirmapの特徴を見てみましょう。

機能特徴

  1. n個のターゲット×n個のペイロードの並行処理をサポート
  2. 再帰スキャンをサポート
  3. 再帰スキャンが必要なステータスコードをカスタマイズ可能
  4. (単一/複数)辞書スキャンをサポート
  5. カスタム文字セットによるブルートフォースをサポート
  6. クローラ動的辞書スキャンをサポート
  7. カスタムタグによるFuzz対象URLをサポート
  8. カスタムリクエストUser-Agent
  9. カスタムリクエストランダム遅延
  10. カスタムリクエストタイムアウト
  11. カスタムリクエストプロキシ
  12. カスタム正規表現で疑似404ページをマッチ
  13. 処理対象のレスポンスステータスコードをカスタマイズ
  14. サイズがxのページをスキップする設定
  15. Content-Type表示のカスタマイズ
  16. ページサイズ表示のカスタマイズ
  17. ドメインごとに重複を排除して結果を保存

使い方

環境準備

root@kitploit:~
git clone https://github.com/H4ckForJob/dirmap.git && cd dirmap && python3 -m pip install -r requirement.txt

クイックスタート

ターゲット入力

単一ターゲット、デフォルトはhttp

root@kitploit:~
python3 dirmap.py -i https://target.com -lcf
root@kitploit:~
python3 dirmap.py -i 192.168.1.1 -lcf

サブネット(CIDR形式)

root@kitploit:~
python3 dirmap.py -i 192.168.1.0/24 -lcf

ネットワーク範囲

root@kitploit:~
python3 dirmap.py -i 192.168.1.1-192.168.1.100 -lcf

ファイル読み込み

root@kitploit:~
python3 dirmap.py -iF targets.txt -lcf

targets.txt内では上記の形式がサポートされています。

結果の保存

  1. 結果はプロジェクトルートのoutputフォルダに自動保存されます。
  2. 各ターゲットに対して1つのtxtファイルが生成され、命名形式はターゲットドメイン.txtです。
  3. 結果は自動的に重複排除されるため、大量の冗長データを心配する必要はありません。

高度な使用法

カスタムDirmap設定を行い、Dirmapの高度な機能を探索します。

当面は設定ファイルを読み込んで詳細設定を行います。コマンドライン引数による詳細設定はサポートしていません!

プロジェクトルートのdirmap.confを編集して設定します。

dirmap.conf設定の詳細

root@kitploit:~
#再帰スキャン処理設定
[RecursiveScan]
#再帰スキャンを有効にするか: 無効:0; 有効:1
conf.recursive_scan = 0
#これらのステータスコードに遭遇したら再帰スキャンを開始。デフォルト設定 [301,403]
conf.recursive_status_code = [301,403]
#URLがこの長さを超えたらスキャンを終了
conf.recursive_scan_max_url_length = 60
#これらの拡張子は再帰スキャンしない
conf.recursive_blacklist_exts = ["html",'htm','shtml','png','jpg','webp','bmp','js','css','pdf','ini','mp3','mp4']
#スキャン対象外のディレクトリを設定。デフォルト設定は空。その他設定例: ['/test1','/test2']
#conf.exclude_subdirs = ['/test1','/test2']
conf.exclude_subdirs = ""

#スキャンモード処理設定(4つのモード、1回に1つだけ選択可能)
[ScanModeHandler]
#辞書モード: 無効:0; 単一辞書:1; 複数辞書:2
conf.dict_mode = 1
#単一辞書モードのパス
conf.dict_mode_load_single_dict = "dict_mode_dict.txt"
#複数辞書モードのパス、デフォルト設定 dictmult
conf.dict_mode_load_mult_dict = "dictmult"
#ブルートフォースモード: 無効:0; 有効:1
conf.blast_mode = 0
#辞書生成の最小長さ。デフォルト設定 3
conf.blast_mode_min = 3
#辞書生成の最大長さ。デフォルト設定 3
conf.blast_mode_max = 3
#デフォルト文字セット: a-z。未使用。
conf.blast_mode_az = "abcdefghijklmnopqrstuvwxyz"
#デフォルト文字セット: 0-9。未使用。
conf.blast_mode_num = "0123456789"
#カスタム文字セット。デフォルト設定 "abc"。abcを使用して辞書を構築
conf.blast_mode_custom_charset = "abc"
#カスタム継続文字セット。デフォルト設定は空。
conf.blast_mode_resume_charset = ""
#クローラモード: 無効:0; 有効:1
conf.crawl_mode = 0
#動的機密ファイルペイロード生成に使用する拡張子辞書
conf.crawl_mode_dynamic_fuzz_suffix = "crawl_mode_suffix.txt"
#robots.txtファイルの解析。未実装。
conf.crawl_mode_parse_robots = 0
#HTMLページを解析するxpath式
conf.crawl_mode_parse_html = "//*/@href | //*/@src | //form/@action"
#動的クローラ辞書生成を行うか。デフォルト設定 1、クローラ動的辞書生成を有効。その他設定例: 無効:0; 有効:1
conf.crawl_mode_dynamic_fuzz = 1
#Fuzzモード: 無効:0; 単一辞書:1; 複数辞書:2
conf.fuzz_mode = 0
#単一辞書モードのパス。
conf.fuzz_mode_load_single_dict = "fuzz_mode_dir.txt"
#複数辞書モードのパス。デフォルト設定: fuzzmult
conf.fuzz_mode_load_mult_dict = "fuzzmult"
#Fuzzタグの設定。デフォルト設定 {dir}。{dir}タグを辞書の挿入ポイントとして使用し、http://target.com/{dir}.php を http://target.com/辞書の各行.php に置き換えます。その他設定例: {dir};{ext}
#conf.fuzz_mode_label = "{ext}"
conf.fuzz_mode_label = "{dir}"

#ペイロード処理設定。未実装。
[PayloadHandler]

#リクエスト処理設定
[RequestHandler]
#カスタムリクエストヘッダー。デフォルト設定は空。その他設定例: test1=test1,test2=test2
#conf.request_headers = "test1=test1,test2=test2"
conf.request_headers = ""
#カスタムリクエストUser-Agent。デフォルト設定はchromeのUA。
conf.request_header_ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
#カスタムリクエストCookie。デフォルト設定は空、Cookieは設定しません。その他設定例: cookie1=cookie1; cookie2=cookie2;
#conf.request_header_cookie = "cookie1=cookie1; cookie2=cookie2"
conf.request_header_cookie = ""
#カスタム401認証。未実装。カスタムリクエストヘッダー機能でニーズを満たせるため(めんどくさいXD)
conf.request_header_401_auth = ""
#カスタムリクエストメソッド。デフォルト設定はgetメソッド。その他設定例: get;head
#conf.request_method = "head"
conf.request_method = "get"
#各リクエストのタイムアウト時間。デフォルト設定 3秒。
conf.request_timeout = 3
#ランダム遅延(0-x)秒でリクエストを送信。引数は整数である必要があります。デフォルト設定 0秒、遅延なし。
conf.request_delay = 0
#単一ターゲットあたりのリクエストコルーチンスレッド数。デフォルト設定 30スレッド
conf.request_limit = 30
#最大リトライ回数。未実装。
conf.request_max_retries = 1
#永続接続の設定。session()を使用するか。未実装。
conf.request_persistent_connect = 0
#302リダイレクト。デフォルト False、リダイレクトしません。その他設定例: True;False
conf.redirection_302 = False
#ペイロードに追加する拡張子。デフォルトは空、スキャン時に拡張子を追加しません。その他設定例: txt;php;asp;jsp
#conf.file_extension = "txt"
conf.file_extension = ""

#レスポンス処理設定
[ResponseHandler]
#記録するレスポンスステータスを設定。デフォルト設定 [200]、200ステータスコードを記録。その他設定例: [200,403,301]
#conf.response_status_code = [200,403,301]
conf.response_status_code = [200]
#Content-Typeレスポンスヘッダーを記録するか。デフォルト設定 1 記録
#conf.response_header_content_type = 0
conf.response_header_content_type = 1
#ページサイズを記録するか。デフォルト設定 1 記録
#conf.response_size = 0
conf.response_size = 1
#404ページを自動検出するか。デフォルト設定 True、自動検出を有効。その他設定例参照: True;False
#conf.auto_check_404_page = False
conf.auto_check_404_page = True
#503ページをマッチするカスタム正規表現。未実装。使う必要がなさそうで、非推奨になるかもしれません。
#conf.custom_503_page = "page 503"
conf.custom_503_page = ""
#ページ内容をマッチするカスタム正規表現
#conf.custom_response_page = "([0-9]){3}([a-z]){3}test"
conf.custom_response_page = ""
#サイズがxのページをスキップして表示しない。設定しない場合は"None"に設定、デフォルト設定"None"。その他サイズ設定例: None;0b;1k;1m
#conf.skip_size = "0b"
conf.skip_size = "None"

#プロキシオプション
[ProxyHandler]
#プロキシ設定。デフォルト設定"None"、プロキシを有効にしません。その他設定例: {"http":"http://127.0.0.1:8080","https":"https://127.0.0.1:8080"}
#conf.proxy_server = {"http":"http://127.0.0.1:8080","https":"https://127.0.0.1:8080"}
conf.proxy_server = None

#デバッグオプション
[DebugMode]
#ペイロードを出力して終了
conf.debug = 0

#アップデートオプション
[CheckUpdate]
#githubからアップデートを取得。未実装。
conf.update = 0

TODO

  • コマンドライン引数解析によるグローバル初期化
  • エンジン初期化
    • スレッド数設定
  • ターゲット初期化
    • 入力形式の自動解析処理(-i, inputTarget)
      • IP
      • Domain
      • URL
      • IP/MASK
      • IP開始-終了
    • ファイル読み込み(-iF, inputLocalFile)
  • bruter初期化
    • 設定読み込み方法()
      • コマンドライン引数値の読み取り
      • 設定ファイルの読み取り(-lcf, loadConfigFile)
    • 再帰モードオプション(RecursiveScan)

デフォルト辞書ファイル

辞書ファイルはプロジェクトルートのdataフォルダに格納されています。

  1. dict_mode_dict.txt 「辞書モード」用辞書、dirsearchのデフォルト辞書を使用
  2. crawl_mode_suffix.txt 「クローラモード」用辞書、FileSensorのデフォルト辞書を使用
  3. fuzz_mode_dir.txt 「Fuzzモード」用辞書、DirBusterのデフォルト辞書を使用
  4. fuzz_mode_ext.txt 「Fuzzモード」用辞書、一般的な拡張子で作成した辞書
  5. dictmult このディレクトリは「辞書モード」のデフォルト複数辞書フォルダで、以下を含む:BAK.min.txt(バックアップファイル小辞典)、BAK.txt(バックアップファイル大辞典)、LEAKS.txt(情報漏洩ファイル辞書)
  6. fuzzmult このディレクトリは「Fuzzモード」のデフォルト複数辞書フォルダで、以下を含む:fuzz_mode_dir.txt(デフォルトディレクトリ辞書)、fuzz_mode_ext.txt(デフォルト拡張子辞書)

既知の不具合

  1. 「クローラモード」は現在ターゲットの現在のページのみをクロールして動的辞書を生成します。将来的には「クローラモジュール」と「動的辞書生成機能」を分離する予定です。
  2. bruter.pyの517行目bar.log.start()でエラーが発生する場合。解決策:progressbar2をインストールしてください。progressbarをアンインストールし、同名モジュールのインポートを防ぎます。ある先輩からのアドバイスに感謝します。
root@kitploit:~
実行コマンド:
python3 -m pip uninstall progressbar
python3 -m pip install progressbar2

メンテナンス

  1. 使用中に問題が発生した場合は、issueを歓迎します。
  2. 本プロジェクトはメンテナンス中であり、今後新機能が追加される予定です。詳細は「TODO」リストの未チェック項目を参照してください。

謝辞

dirmapの開発にあたり、多数の優れたオープンソースプロジェクトのパターンやアイデアを参考にしました。ここに特記して感謝の意を表します。

  • Sqlmap
  • POC-T
  • Saucerframe
  • gwhatweb
  • dirsearch
  • cansina
  • weakfilescan
  • FileSensor
  • BBscan
  • werdy

作者連絡先

mail: [email protected]

donate

ツールをダウンロード
  • 再帰スキャン(-rs, recursive_scan)
  • 再帰が必要なステータスコード(-rd, recursive_status_code)
  • 除外するディレクトリ(-es, exclude_subdirs)
  • スキャンモードオプション(ScanModeHandler)
    • 辞書モード(-dm, dict_mode)
      • 単一辞書の読み込み(-dmlsd, dict_mode_load_single_dict)
      • 複数辞書の読み込み(-dmlmd, dict_mode_load_mult_dict)
    • ブルートフォースモード(-bm, blast_mode)
      • ブルートフォースディレクトリ長さ範囲(必須)
        • 最小長さ(-bmmin, blast_mode_min)
        • 最大長さ(-bmmax, blast_mode_max)
      • デフォルト文字セットに基づく
        • a-zに基づく
        • 0-9に基づく
      • カスタム文字セットに基づく(-bmcc, blast_mode_custom_charset)
      • ペイロードのブレークポイント再開生成(-bmrc, blast_mode_resume_charset)
    • クローラモード(-cm, crawl_mode)
      • カスタム解析タグ(-cmph, crawl_mode_parse_html)(a:href, img:src, form:action, script:src, iframe:src, div:src, frame:src, embed:src)
      • robots.txtの解析(-cmpr, crawl_mode_parse_robots)
      • クローラ動的Fuzzスキャン(-cmdf, crawl_mode_dynamic_fuzz)
    • Fuzzモード(-fm, fuzz_mode)
      • Fuzz単一辞書(-fmlsd, fuzz_mode_load_single_dict)
      • Fuzz複数辞書(-fmlmd, fuzz_mode_load_mult_dict)
      • Fuzzタグ(-fml, fuzz_mode_label)
  • リクエスト最適化オプション(RequestHandler)
    • カスタムリクエストタイムアウト(-rt, request_timeout)
    • カスタムリクエスト遅延(-rd, request_delay)
    • 単一ターゲットホストのコルーチン数制限(-rl, request_limit)
    • リトライ回数制限(-rmr, request_max_retries)
    • HTTP永続接続(-rpc, request_persistent_connect)
    • カスタムリクエストメソッド(-rm, request_method)(get, head)
    • 302ステータス処理(-r3, redirection_302)(リダイレクトするか)
    • カスタムヘッダー
      • その他のカスタムヘッダー(-rh, request_headers)(401認証が必要な場合に使用)
      • カスタムUA(-rhua, request_header_ua)
      • カスタムCookie(-rhc, request_header_cookie)
  • 辞書処理オプション(PayloadHandler)
    • 辞書処理(ペイロード修正 - スラッシュ除去)
    • 辞書処理(ペイロード修正 - 先頭にスラッシュ追加)
    • 辞書処理(ペイロード修正 - 単語の先頭大文字化)
    • 辞書処理(ペイロード修正 - 拡張子除去)
    • 辞書処理(ペイロード修正 - 英数字以外除去)
  • レスポンス結果処理モジュール(ResponseHandler)
    • サイズがxバイトのファイルをスキップ(-ss, skip_size)
    • 404ページの自動検出(-ac4p, auto_check_404_page)
    • カスタム503ページ(-c5p, custom_503_page)
    • カスタム正規表現でレスポンス内容をマッチして何らかの操作
      • カスタム正規表現でレスポンスをマッチ(-crp, custom_response_page)
      • 何らかの操作(未定義)
    • 出力結果をカスタムステータスコード(-rsc, response_status_code)
    • ペイロードを完全パスで出力(デフォルトは完全URLを出力)
    • 出力結果にContent-Typeを表示
    • 自動重複排除で結果を保存
  • 状態処理モジュール(StatusHandler)
    • 状態表示(開始待ち、実行中、一時停止中、異常、完了)
    • 進捗表示
    • 状態制御(開始、一時停止、続行、停止)
    • 再スキャンモジュール(未設定)
    • ブレークポイントからの再スキャン
    • 行選択による再スキャン
  • ログ記録モジュール(ScanLogHandler)
    • スキャンログ
    • エラーログ
  • プロキシモジュール(ProxyHandler)
    • 単一プロキシ(-ps, proxy_server)
    • プロキシプール
  • デバッグモードオプション(DebugMode)
    • debug(--debug)
  • アップデート確認オプション(CheckUpdate)
    • update(--update)