Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
dirmap — DirBuster, Dirsearch, cansina, 御剑보다 더 강력한 고급 웹 디렉토리 및 파일 스캐닝 도구입니다.一个高级web目录、文件扫描工具,功能将会强于DirBuster、Dirsearch、cansina、御剑。 | Kitploit
도구/GitHubGitHub/h4ckforjob/dirmap
ReconnaissanceVulnerability ScannersInformation GatheringWeb SecurityPenetration Testing
GitHubh4ckforjob/dirmap

dirmap

DirBuster, Dirsearch, cansina, 御剑보다 더 강력한 고급 웹 디렉토리 및 파일 스캐닝 도구입니다.一个高级web目录、文件扫描工具,功能将会强于DirBuster、Dirsearch、cansina、御剑。

저장소 보기
3.4k5551년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Dirmap

English

고급 웹 디렉토리 스캐닝 도구로, DirBuster, Dirsearch, cansina, Yujian보다 강력한 기능을 제공합니다.

dirmap

요구 사항 분석

광범위한 조사 결과, 훌륭한 웹 디렉토리 스캐닝 도구는 최소한 다음 기능을 갖추어야 합니다:

  • 동시성 엔진
  • 사전 사용 가능
  • 순수 브루트포스
  • 페이지 크롤링을 통한 동적 사전 생성
  • Fuzz 스캐닝
  • 사용자 정의 요청
  • 사용자 정의 응답 결과 처리
  • ...

이제 Dirmap의 특징을 살펴보겠습니다.

기능 특징

  1. n개의 target * n개의 payload 동시 실행 지원
  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. 각 대상마다 하나의 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']
#스캔에서 제외할 디렉토리 설정. 기본값은 비어 있음. 다른 예시: e.g:['/test1','/test2']
#conf.exclude_subdirs = ['/test1','/test2']
conf.exclude_subdirs = ""

#스캔 모드 처리 구성 (4가지 모드, 한 번에 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
#동적 민감 파일 payload 생성을 위한 접미사 사전
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, 크롤러 동적 사전 생성 활성화. 다른 예시: e.g: 비활성화: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로 바꿉니다. 다른 예시: e.g:{dir};{ext}
#conf.fuzz_mode_label = "{ext}"
conf.fuzz_mode_label = "{dir}"

#payload 처리 구성. 아직 구현되지 않음.
[PayloadHandler]

#요청 처리 구성
[RequestHandler]
#사용자 정의 요청 헤더. 기본값 비어 있음. 다른 예시: e.g: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"
#사용자 정의 요청 쿠키. 기본값 비어 있음, 쿠키 설정 안 함. 다른 예시 e.g:cookie1=cookie1; cookie2=cookie2;
#conf.request_header_cookie = "cookie1=cookie1; cookie2=cookie2"
conf.request_header_cookie = ""
#사용자 정의 401 인증. 아직 구현되지 않음. 사용자 정의 요청 헤더 기능으로 충족 가능(귀찮아서XD)
conf.request_header_401_auth = ""
#사용자 정의 요청 메서드. 기본값 get 메서드. 다른 예시: e.g: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, 리디렉션 안 함. 다른 예시: e.g:True;False
conf.redirection_302 = False
#payload 뒤에 접미사 추가. 기본값 비어 있음, 스캔 시 접미사 추가 안 함. 다른 예시: e.g:txt;php;asp;jsp
#conf.file_extension = "txt"
conf.file_extension = ""

#응답 처리 구성
[ResponseHandler]
#기록할 응답 상태 설정. 기본값 [200], 200 상태 코드 기록. 다른 예시: e.g:[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, 자동 404 감지 활성화. 다른 예시 참조 e.g: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". 다른 크기 구성 참조 e.g:None;0b;1k;1m
#conf.skip_size = "0b"
conf.skip_size = "None"

#프록시 옵션
[ProxyHandler]
#프록시 구성. 기본값 "None", 프록시 비활성화. 다른 예시 e.g:{"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

#Debug 옵션
[DebugMode]
#payload 출력 후 종료
conf.debug = 0

#update 옵션
[CheckUpdate]
#github에서 업데이트 확인. 아직 구현되지 않음.
conf.update = 0

TODO

  • 명령줄 인수 파싱 전역 초기화
  • engine 초기화
    • 스레드 수 설정
  • target 초기화
    • 입력 형식 자동 파싱 처리 ( -i,inputTarget)
      • IP
      • Domain
      • URL
      • IP/MASK
      • IP Start-End
    • 파일 읽기 (-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)
      • 중단점에서 payload 재개 (-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)(리디렉션 여부)
    • 사용자 정의 header
      • 기타 header 사용자 정의 (-rh,request_headers)(401 인증 필요 시)
      • 사용자 정의 UA (-rhua,request_header_ua)
      • 사용자 정의 쿠키 (-rhc,request_header_cookie)
  • 사전 처리 옵션 (PayloadHandler)
    • 사전 처리 (payload 수정 - 슬래시 제거)
    • 사전 처리 (payload 수정 - 첫 문자에 슬래시 추가)
    • 사전 처리 (payload 수정 - 단어 첫 글자 대문자)
    • 사전 처리 (payload 수정 - 확장자 제거)
    • 사전 처리 (payload 수정 - 알파벳/숫자 외 문자 제거)
  • 응답 결과 처리 모듈 (ResponseHandler)
    • 크기가 x 바이트인 파일 건너뛰기 (-ss,skip_size)
    • 404 페이지 자동 감지 (-ac4p,auto_check_404_page)
    • 사용자 정의 503 페이지 (-c5p,custom_503_page)
    • 사용자 정의 정규표현식으로 응답 내용을 일치시키고 특정 작업 수행
      • 사용자 정의 정규표현식 응답 일치 (-crp,custom_response_page)
      • 특정 작업 (아직 정의되지 않음)
    • 출력 결과를 사용자 정의 상태 코드로 (-rsc,response_status_code)
    • payload를 전체 경로로 출력 (기본값 완전한 URL 출력)
    • 출력 결과에 content-type 표시
    • 자동 중복 제거하여 결과 저장
  • 상태 처리 모듈 (StatusHandler)
    • 상태 표시 (대기 중, 진행 중, 일시 중지, 오류, 완료)
    • 진행률 표시
    • 상태 제어 (시작, 일시 중지, 계속, 중지)
    • 이어서 스캔 모듈 (아직 구성되지 않음)
    • 중단점에서 이어서 스캔
    • 특정 행부터 이어서 스캔
  • 로그 기록 모듈 (ScanLogHandler)
    • 스캔 로그
    • 오류 로그
  • 프록시 모듈 (ProxyHandler)
    • 단일 프록시 (-ps,proxy_server)
    • 프록시 풀
  • 디버그 모드 옵션 (DebugMode)
    • debug (--debug)
  • 업데이트 확인 옵션 (CheckUpdate)
    • update (--update)