
Apache Tomcat 서버 취약점을 스캔하는 파이썬 스크립트.

Apache Tomcat 서버 취약점을 스캔하는 파이썬 스크립트.
-tt/--target 옵션으로 개별 대상(IP/DNS/CIDR) 읽기.-tu/--target-url 옵션으로 개별 대상 URL 읽기./manager/html 접근 가능 여부 테스트.--list-cves 옵션으로 각 버전의 CVE 나열, --show-cves-descriptions로 상세 CVE 설명 출력.이제 PyPI에서 설치할 수 있습니다 (최신 버전은 ) 다음 명령어를 사용하세요:
sudo python3 -m pip install apachetomcatscanner
$ ./ApacheTomcatScanner.py -h
Apache Tomcat Scanner v3.4 - by Remi GASCOU (Podalirius)
usage: ApacheTomcatScanner.py [-h] [-v] [--debug] [-C] [--show-cves-descriptions] [-T THREADS] [-s] [--no-colors] [--only-http] [--only-https] [--export-xlsx EXPORT_XLSX] [--export-json EXPORT_JSON] [--export-sqlite EXPORT_SQLITE]
[-PI PROXY_IP] [-PP PROXY_PORT] [-rt REQUEST_TIMEOUT] [--tomcat-username TOMCAT_USERNAME] [--tomcat-usernames-file TOMCAT_USERNAMES_FILE] [--tomcat-password TOMCAT_PASSWORD]
[--tomcat-passwords-file TOMCAT_PASSWORDS_FILE] [-tf TARGETS_FILE] [-tt TARGET] [-tu TARGET_URL] [-tp TARGET_PORTS] [-ad AUTH_DOMAIN] [-ai AUTH_DC_IP] [-au AUTH_USER] [-ap AUTH_PASSWORD]
[-ah AUTH_HASHES] [--ldaps] [--subnets]
Apache Tomcat 서버 취약점을 스캔하는 파이썬 스크립트.
options:
-h, --help 도움말 메시지 표시 후 종료
-v, --verbose 자세한 출력 모드. (기본값: False)
--debug 디버그 모드, 매우 상세한 출력. (기본값: False)
-C, --list-cves 발견된 각 버전에 영향을 미치는 CVE ID 목록 표시. (기본값: False)
--show-cves-descriptions
발견된 CVE의 설명 표시. (기본값: False)
-T THREADS, --threads THREADS
스레드 수 (기본값: 250)
-s, --servers-only ActiveDirectory를 쿼리할 때 모든 컴퓨터 객체 대신 서버만 가져옴. (기본값: False)
--no-colors 컬러 출력 비활성화. (기본값: False)
--only-http HTTP 스킴으로만 스캔. (기본값: False, HTTP와 HTTPS 모두 스캔)
--only-https HTTPS 스킴으로만 스캔. (기본값: False, HTTP와 HTTPS 모두 스캔)
Export results:
--export-xlsx EXPORT_XLSX
결과를 저장할 XLSX 출력 파일.
--export-json EXPORT_JSON
결과를 저장할 JSON 출력 파일.
--export-sqlite EXPORT_SQLITE
결과를 저장할 SQLITE3 출력 파일.
Advanced configuration:
-PI PROXY_IP, --proxy-ip PROXY_IP
프록시 IP.
-PP PROXY_PORT, --proxy-port PROXY_PORT
프록시 포트.
-rt REQUEST_TIMEOUT, --request-timeout REQUEST_TIMEOUT
HTTP 요청 시간 제한 설정.
--tomcat-username TOMCAT_USERNAME
로그인 테스트할 단일 Tomcat 사용자 이름.
--tomcat-usernames-file TOMCAT_USERNAMES_FILE
로그인 테스트할 Tomcat 사용자 이름 목록이 포함된 파일.
--tomcat-password TOMCAT_PASSWORD
로그인 테스트할 단일 Tomcat 비밀번호.
--tomcat-passwords-file TOMCAT_PASSWORDS_FILE
로그인 테스트할 Tomcat 비밀번호 목록이 포함된 파일.
Targets:
-tf TARGETS_FILE, --targets-file TARGETS_FILE
한 줄에 하나씩 대상 목록이 포함된 파일 경로.
-tt TARGET, --target TARGET
대상 IP, FQDN 또는 CIDR.
-tu TARGET_URL, --target-url TARGET_URL
Tomcat 관리자의 대상 URL.
-tp TARGET_PORTS, --target-ports TARGET_PORTS
Apache Tomcat 서버 검색을 위해 스캔할 대상 포트.
-ad AUTH_DOMAIN, --auth-domain AUTH_DOMAIN
인증할 Windows 도메인.
-ai AUTH_DC_IP, --auth-dc-ip AUTH_DC_IP
도메인 컨트롤러 IP.
-au AUTH_USER, --auth-user AUTH_USER
도메인 계정의 사용자 이름.
-ap AUTH_PASSWORD, --auth-password AUTH_PASSWORD
도메인 계정의 비밀번호.
-ah AUTH_HASHES, --auth-hashes AUTH_HASHES
이 사용자에 대해 해시 전달에 사용할 LM:NT 해시.
--ldaps LDAPS 사용 (기본값: False)
--subnets 도메인에서 모든 서브넷을 가져와 대상으로 사용 (기본값: False)

--list-cves 옵션을 사용하여 각 버전의 CVE도 나열할 수 있습니다:

스캐너는 자동 CVE 데이터베이스 업데이트 확인 기능을 포함하여 항상 최신 취약점 데이터를 유지합니다.
스캐너를 실행하면 CVE 데이터베이스가 30일보다 오래되었는지 자동으로 확인합니다. 만료된 경우 다음과 같이 표시됩니다:
[!] CVE 데이터베이스가 오래되었습니다 (마지막 업데이트: 2025-11-01T13:00:00)
[*] 다음 명령어로 업데이트할 수 있습니다: python apachetomcatscanner/data/update_db_nvd.py
[?] 지금 업데이트하시겠습니까? 몇 분 정도 소요될 수 있습니다. (y/N):
y를 입력하면 즉시 업데이트하고, Enter를 누르면 건너뛰고 계속 스캔합니다.
업데이트 확인을 완전히 건너뛰려면 --no-auto-update 플래그를 사용하십시오:
python ApacheTomcatScanner.py -tt target.com --list-cves --no-auto-update
언제든지 수동으로 CVE 데이터베이스를 업데이트할 수 있습니다:
cd apachetomcatscanner/data
python update_db_nvd.py
참고: 업데이트 시 공식 NVD API를 사용하며 속도 제한(30초당 5회 요청)이 적용됩니다. 이 과정은 몇 분 정도 소요될 수 있지만 중단 후 다시 시작할 수 있습니다. 더 빠른 업데이트를 위해 무료 NVD API 키를 받는 것을 고려하십시오: https://nvd.nist.gov/developers/request-an-api-key
풀 리퀘스트는 환영합니다. 다른 기능을 추가하고 싶다면 이슈를 열어 주세요.