{"id":13845216,"url":"https://github.com/p0dalirius/ApacheTomcatScanner","last_synced_at":"2025-07-12T01:32:02.821Z","repository":{"id":50564939,"uuid":"516489197","full_name":"p0dalirius/ApacheTomcatScanner","owner":"p0dalirius","description":"A python script to scan for Apache Tomcat server vulnerabilities. ","archived":false,"fork":false,"pushed_at":"2025-02-16T10:25:51.000Z","size":2079,"stargazers_count":841,"open_issues_count":1,"forks_count":99,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-06-30T08:14:39.419Z","etag":null,"topics":["apache","scanner","tomcat"],"latest_commit_sha":null,"homepage":"https://podalirius.net/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/p0dalirius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"p0dalirius","patreon":"Podalirius"}},"created_at":"2022-07-21T18:55:36.000Z","updated_at":"2025-06-24T14:02:51.000Z","dependencies_parsed_at":"2024-02-21T10:20:19.942Z","dependency_job_id":"9ce26284-5ae7-4b8e-9dac-6560eeefd02d","html_url":"https://github.com/p0dalirius/ApacheTomcatScanner","commit_stats":{"total_commits":71,"total_committers":3,"mean_commits":"23.666666666666668","dds":"0.45070422535211263","last_synced_commit":"0ada84f315ee91bfe2cbc03c0888d5e054c5296e"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/p0dalirius/ApacheTomcatScanner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p0dalirius%2FApacheTomcatScanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p0dalirius%2FApacheTomcatScanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p0dalirius%2FApacheTomcatScanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p0dalirius%2FApacheTomcatScanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/p0dalirius","download_url":"https://codeload.github.com/p0dalirius/ApacheTomcatScanner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p0dalirius%2FApacheTomcatScanner/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264923076,"owners_count":23683717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache","scanner","tomcat"],"created_at":"2024-08-04T17:03:16.491Z","updated_at":"2025-07-12T01:32:02.778Z","avatar_url":"https://github.com/p0dalirius.png","language":"Python","funding_links":["https://github.com/sponsors/p0dalirius","https://patreon.com/Podalirius"],"categories":["Python"],"sub_categories":[],"readme":"![](./.github/banner.png)\n\n\u003cp align=\"center\"\u003e\n  A python script to scan for Apache Tomcat server vulnerabilities.\n  \u003cbr\u003e\n  \u003cimg alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/apachetomcatscanner\"\u003e\n  \u003cimg alt=\"GitHub release (latest by date)\" src=\"https://img.shields.io/github/v/release/p0dalirius/ApacheTomcatScanner\"\u003e\n  \u003cimg alt=\"Python pip build\" src=\"https://github.com/p0dalirius/ApacheTomcatScanner/actions/workflows/python-pip-build.yml/badge.svg\"\u003e\n  \u003ca href=\"https://twitter.com/intent/follow?screen_name=podalirius_\" title=\"Follow\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/podalirius_?label=Podalirius\u0026style=social\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.youtube.com/c/Podalirius_?sub_confirmation=1\" title=\"Subscribe\"\u003e\u003cimg alt=\"YouTube Channel Subscribers\" src=\"https://img.shields.io/youtube/channel/subscribers/UCF_x5O7CSfr82AfNVTKOv_A?style=social\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n\u003c/p\u003e\n\n## Features\n\n - [x] Multithreaded workers to search for Apache tomcat servers.\n - [x] Multiple target sources accepted:\n    + [x] Retrieving list of computers from a Windows domain through an LDAP query to use them as a list of targets.\n    + [x] Reading targets line by line from a file.\n    + [x] Reading individual targets (IP/DNS/CIDR) from `-tt/--target` option. \n    + [x] Reading individual targets URLs from `-tu/--target-url` option. \n - [x] Custom list of ports to test.\n - [x] Tests for `/manager/html` accessibility.\n - [x] Tests for default credentials to access the Tomcat Manager.\n - [x] List the CVEs of each version with the `--list-cves` option, print detailed CVEs descriptions with `--show-cves-descriptions`\n\n\n## Installation\n\nYou can now install it from PyPI (latest version is \u003cimg alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/apachetomcatscanner\"\u003e) with this command:\n\n```\nsudo python3 -m pip install apachetomcatscanner\n```\n\n## Usage\n\n```\n$ ./ApacheTomcatScanner.py -h\nApache Tomcat Scanner v3.4 - by Remi GASCOU (Podalirius)\n\nusage: 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]\n                              [-PI PROXY_IP] [-PP PROXY_PORT] [-rt REQUEST_TIMEOUT] [--tomcat-username TOMCAT_USERNAME] [--tomcat-usernames-file TOMCAT_USERNAMES_FILE] [--tomcat-password TOMCAT_PASSWORD]\n                              [--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]\n                              [-ah AUTH_HASHES] [--ldaps] [--subnets]\n\nA python script to scan for Apache Tomcat server vulnerabilities.\n\noptions:\n  -h, --help            show this help message and exit\n  -v, --verbose         Verbose mode. (default: False)\n  --debug               Debug mode, for huge verbosity. (default: False)\n  -C, --list-cves       List CVE ids affecting each version found. (default: False)\n  --show-cves-descriptions\n                        Show description of found CVEs. (default: False)\n  -T THREADS, --threads THREADS\n                        Number of threads (default: 250)\n  -s, --servers-only    If querying ActiveDirectory, only get servers and not all computer objects. (default: False)\n  --no-colors           Disable colored output. (default: False)\n  --only-http           Scan only with HTTP scheme. (default: False, scanning with both HTTP and HTTPs)\n  --only-https          Scan only with HTTPs scheme. (default: False, scanning with both HTTP and HTTPs)\n\nExport results:\n  --export-xlsx EXPORT_XLSX\n                        Output XLSX file to store the results in.\n  --export-json EXPORT_JSON\n                        Output JSON file to store the results in.\n  --export-sqlite EXPORT_SQLITE\n                        Output SQLITE3 file to store the results in.\n\nAdvanced configuration:\n  -PI PROXY_IP, --proxy-ip PROXY_IP\n                        Proxy IP.\n  -PP PROXY_PORT, --proxy-port PROXY_PORT\n                        Proxy port\n  -rt REQUEST_TIMEOUT, --request-timeout REQUEST_TIMEOUT\n                        Set the timeout of HTTP requests.\n  --tomcat-username TOMCAT_USERNAME\n                        Single tomcat username to test for login.\n  --tomcat-usernames-file TOMCAT_USERNAMES_FILE\n                        File containing a list of tomcat usernames to test for login\n  --tomcat-password TOMCAT_PASSWORD\n                        Single tomcat password to test for login.\n  --tomcat-passwords-file TOMCAT_PASSWORDS_FILE\n                        File containing a list of tomcat passwords to test for login\n\nTargets:\n  -tf TARGETS_FILE, --targets-file TARGETS_FILE\n                        Path to file containing a line by line list of targets.\n  -tt TARGET, --target TARGET\n                        Target IP, FQDN or CIDR.\n  -tu TARGET_URL, --target-url TARGET_URL\n                        Target URL to the tomcat manager.\n  -tp TARGET_PORTS, --target-ports TARGET_PORTS\n                        Target ports to scan top search for Apache Tomcat servers.\n  -ad AUTH_DOMAIN, --auth-domain AUTH_DOMAIN\n                        Windows domain to authenticate to.\n  -ai AUTH_DC_IP, --auth-dc-ip AUTH_DC_IP\n                        IP of the domain controller.\n  -au AUTH_USER, --auth-user AUTH_USER\n                        Username of the domain account.\n  -ap AUTH_PASSWORD, --auth-password AUTH_PASSWORD\n                        Password of the domain account.\n  -ah AUTH_HASHES, --auth-hashes AUTH_HASHES\n                        LM:NT hashes to pass the hash for this user.\n  --ldaps               Use LDAPS (default: False)\n  --subnets             Get all subnets from the domain and use them as targets (default: False)\n```\n\n## Example\n\n![](./.github/example.png)\n\nYou can also list the CVEs of each version with the `--list-cves` option:\n\n![](./.github/example_list_cves.png)\n\n## Contributing\n\nPull requests are welcome. Feel free to open an issue if you want to add other features.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp0dalirius%2FApacheTomcatScanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fp0dalirius%2FApacheTomcatScanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp0dalirius%2FApacheTomcatScanner/lists"}