{"id":13845401,"url":"https://github.com/righettod/website-passive-reconnaissance","last_synced_at":"2025-09-11T13:34:54.368Z","repository":{"id":37159652,"uuid":"217860648","full_name":"righettod/website-passive-reconnaissance","owner":"righettod","description":"Script to automate, when possible, the passive reconnaissance performed on a website prior to an assessment. ","archived":false,"fork":false,"pushed_at":"2024-05-22T05:50:29.000Z","size":274,"stargazers_count":32,"open_issues_count":2,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-05-23T05:27:28.835Z","etag":null,"topics":["passive","pentesting","reconnaissance","web"],"latest_commit_sha":null,"homepage":"","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/righettod.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-27T13:40:22.000Z","updated_at":"2024-05-30T07:18:49.455Z","dependencies_parsed_at":"2024-01-18T18:27:21.763Z","dependency_job_id":"cdcda4cf-7f6d-4b78-a4b3-9d9e6d1e814b","html_url":"https://github.com/righettod/website-passive-reconnaissance","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/righettod%2Fwebsite-passive-reconnaissance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/righettod%2Fwebsite-passive-reconnaissance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/righettod%2Fwebsite-passive-reconnaissance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/righettod%2Fwebsite-passive-reconnaissance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/righettod","download_url":"https://codeload.github.com/righettod/website-passive-reconnaissance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245204482,"owners_count":20577358,"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":["passive","pentesting","reconnaissance","web"],"created_at":"2024-08-04T17:03:22.933Z","updated_at":"2025-09-11T13:34:54.358Z","avatar_url":"https://github.com/righettod.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"![Test application running state](https://github.com/righettod/website-passive-reconnaissance/workflows/Test%20application%20running%20state/badge.svg) ![Audit python code with CodeQL](https://github.com/righettod/website-passive-reconnaissance/actions/workflows/codeql.yml/badge.svg?branch=master)\n\n![MadeWitVSCode](https://img.shields.io/static/v1?label=Made%20with\u0026message=VisualStudio%20Code\u0026color=blue\u0026?style=for-the-badge\u0026logo=visualstudio)  ![AutomatedWith](https://img.shields.io/static/v1?label=Automated%20with\u0026message=GitHub%20Actions\u0026color=blue\u0026?style=for-the-badge\u0026logo=github) ![AuditedWith](https://img.shields.io/static/v1?label=Audited%20with\u0026message=GitHub%20CodeQL\u0026color=blue\u0026?style=for-the-badge\u0026logo=github)\n\n# 🎯 Objectives\n\nScript to automate, when possible, the **[passive reconnaissance](https://www.codecademy.com/article/passive-active-reconnaissance)** performed on a website prior to an assessment (no direct hit on the target).\n\nAlso used to guide a reconnaissance phase by defining all steps (manual or automated) that must be mandatory performed.\n\n# 📦 Requirements\n\n\u003e [!IMPORTANT]\n\u003e Only support the 2 last versions of Python in **[Active/Security Support](https://endoflife.date/python)** status.\n\n💬 Execution tested on the following 64 bits versions of Python via this [workflow](https://github.com/righettod/website-passive-reconnaissance/actions/workflows/pythonapp.yml) and this [script](ci.sh):\n\n| Version | Supported? |\n|:---:|---|\n| \u003c 3.12 | ❌ |\n| 3.12 | ✅ |\n| 3.13 | ✅ |\n\n# 💻 Installation of dependencies\n\nUse the following command:\n\n```bash\npip install -r requirements.txt\n```\n\n# 📡 Update of the \"requirements.txt\" file\n\nUse the following command to use [pipreqs](https://github.com/bndr/pipreqs):\n\n```bash\npipreqs --force .\n```\n\n# 📡 Update TLD list caching of the module \"tldextract\"\n\nUse the following command from [here](https://github.com/john-kurkowski/tldextract#note-about-caching):\n\n```bash\ntldextract --update\n```\n\n# 🔑 API keys file\n\n\u003e **Note**: The script assume that an API key binded to the free version of the API is used of each service.\n\nAPI keys are expected to be provided within an **INI** file having the following structure:\n\n```ini\n[API_KEYS]\n;See https://www.shodan.io/\nshodan=xxx\n;See https://www.hybrid-analysis.com\nhybrid-analysis=xxx\n;See https://www.virustotal.com\nvirustotal=xxx\n;See https://intelx.io/\nintelx=xxx\n;See https://azure.microsoft.com/en-us/try/cognitive-services/?api=search-api-v7\n;See https://docs.microsoft.com/en-us/answers/questions/62385/please-help-me-to-find-the-process-to-get-ampampam.html\nazure-cognitive-services-bing-web-search=xxx\n;See https://buckets.grayhatwarfare.com/docs/api/v1\ngrayhatwarfare=xxx \n;See https://viewdns.info/api/\nviewdns=xxx\n;See https://dnsdumpster.com/developer/\ndnsdumpster=xxx\n```\n\n# 👩‍💻 Usage examples\n\n```bash\n$ python wpr.py --help\nusage: wpr.py [-h] -d DOMAIN_NAME [-a API_KEY_FILE] [-n NAME_SERVER] [-p HTTP_PROXY] [-s]\n\noptional arguments:\n  -h, --help      Show this help message and exit\n  -a API_KEY_FILE Configuration INI file with all API keys \n                  (ex: conf.ini).\n  -n NAME_SERVER  Name server to use for the DNS query \n                  (ex: 8.8.8.8).\n  -p HTTP_PROXY   HTTP proxy to use for all HTTP call to differents services \n                  (ex: http://88.198.50.103:9080).\n  -s              Save the result of the Google/Bing Dork searching for interesting files \n                  to the file 'filetype_dork_result.txt'.\n  -t REQUEST_TIMEOUT  Delay in seconds allowed for a HTTP request to reply\n                      before to fall in timeout (ex: 20) - min is 5 seconds.\n -m MOBILE_APP_STORE_COUNTRY_CODE\n                      Country code to define in which store mobile app will be searched (ex: LU).                      \n\nrequired arguments:\n  -d DOMAIN_NAME  Domain to analyse (ex: righettod.eu).\n\n$ python wpr.py -d righettod.eu\n...\n\n$ python wpr.py -d righettod.eu -n 8.8.8.8\n...\n\n$ python wpr.py -d righettod.eu -n 8.8.8.8 -m FR\n...\n\n$ python wpr.py -d righettod.eu -n 8.8.8.8 -t 30\n...\n\n$ python wpr.py -d righettod.eu -a api_keys.ini\n...\n\n$ python wpr.py -d righettod.eu -a api_keys.ini -n 8.8.8.8\n...\n\n$ python wpr.py -d righettod.eu -a api_keys.ini -n 8.8.8.8 -p http://5.196.132.126:3128\n...\n\n$ python wpr.py -d righettod.eu -a api_keys.ini -n 8.8.8.8 -p http://5.196.132.126:3128 -s\n...\n```\n\n# 📺 Demonstration\n\n\u003chttps://user-images.githubusercontent.com/1573775/203140192-bf75a1a6-cddd-4f7c-8da9-5e931e6a3f21.mp4\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frighettod%2Fwebsite-passive-reconnaissance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frighettod%2Fwebsite-passive-reconnaissance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frighettod%2Fwebsite-passive-reconnaissance/lists"}