{"id":13540067,"url":"https://github.com/christophetd/censys-subdomain-finder","last_synced_at":"2025-04-13T04:58:50.081Z","repository":{"id":40003158,"uuid":"117537050","full_name":"christophetd/censys-subdomain-finder","owner":"christophetd","description":"⚡ Perform subdomain enumeration using the certificate transparency logs from Censys.","archived":false,"fork":false,"pushed_at":"2023-06-13T19:25:41.000Z","size":27,"stargazers_count":782,"open_issues_count":4,"forks_count":130,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-04-13T04:58:44.755Z","etag":null,"topics":["bugbounty","certificate-transparency-logs","enumerate-subdomains","osint","pentest-tool","pentesting","recon","subdomain-enumeration","subdomain-scanner","subdomains"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/christophetd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"christophetd"}},"created_at":"2018-01-15T11:29:42.000Z","updated_at":"2025-04-08T14:14:05.000Z","dependencies_parsed_at":"2024-01-14T08:54:09.615Z","dependency_job_id":"88bba1d4-51a1-478a-ac38-0dd9546001d7","html_url":"https://github.com/christophetd/censys-subdomain-finder","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christophetd%2Fcensys-subdomain-finder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christophetd%2Fcensys-subdomain-finder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christophetd%2Fcensys-subdomain-finder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christophetd%2Fcensys-subdomain-finder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/christophetd","download_url":"https://codeload.github.com/christophetd/censys-subdomain-finder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248665759,"owners_count":21142123,"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":["bugbounty","certificate-transparency-logs","enumerate-subdomains","osint","pentest-tool","pentesting","recon","subdomain-enumeration","subdomain-scanner","subdomains"],"created_at":"2024-08-01T09:01:39.064Z","updated_at":"2025-04-13T04:58:50.054Z","avatar_url":"https://github.com/christophetd.png","language":"Python","funding_links":["https://github.com/sponsors/christophetd"],"categories":["\u003ca id=\"a76463feb91d09b3d024fae798b92be6\"\u003e\u003c/a\u003e侦察\u0026\u0026信息收集\u0026\u0026子域名发现与枚举\u0026\u0026OSINT","Recon","Subdomain Search Tools","others"],"sub_categories":["\u003ca id=\"e945721056c78a53003e01c3d2f3b8fe\"\u003e\u003c/a\u003e子域名枚举\u0026\u0026爆破","Subdomain Enumeration"],"readme":"# Censys subdomain finder\n\nThis is a tool to enumerate subdomains using the Certificate Transparency logs stored in [Censys Search](https://search.censys.io). It should return any subdomain who has ever been issued a SSL certificate by a public CA.\n\nSee it in action:\n\n```shell\n$ python censys-subdomain-finder.py github.com\n\n[*] Searching Censys for subdomains of github.com\n[*] Found 42 unique subdomains of github.com in ~1.7 seconds\n\n  - hq.github.com\n  - talks.github.com\n  - cla.github.com\n  - github.com\n  - cloud.github.com\n  - enterprise.github.com\n  - help.github.com\n  - collector-cdn.github.com\n  - central.github.com\n  - smtp.github.com\n  - cas.octodemo.github.com\n  - schrauger.github.com\n  - jobs.github.com\n  - classroom.github.com\n  - dodgeball.github.com\n  - visualstudio.github.com\n  - branch.github.com\n  - www.github.com\n  - edu.github.com\n  - education.github.com\n  - import.github.com\n  - styleguide.github.com\n  - community.github.com\n  - server.github.com\n  - mac-installer.github.com\n  - registry.github.com\n  - f.cloud.github.com\n  - offer.github.com\n  - helpnext.github.com\n  - foo.github.com\n  - porter.github.com\n  - id.github.com\n  - atom-installer.github.com\n  - review-lab.github.com\n  - vpn-ca.iad.github.com\n  - maintainers.github.com\n  - raw.github.com\n  - status.github.com\n  - camo.github.com\n  - support.enterprise.github.com\n  - stg.github.com\n  - rs.github.com\n\n```\n\n## Setup\n\n1. Register an account (free) on \u003chttps://search.censys.io/register\u003e\n2. Browse to \u003chttps://search.censys.io/account\u003e, and set two environment variables with your API ID and API secret:\n\n    ```shell\n    export CENSYS_API_ID=...\n    export CENSYS_API_SECRET=...\n    ```\n\n    Alternatively, you can use a `.env` file to store these values for persistence across uses:\n\n    ```shell\n    cp .env.template .env\n    ```\n\n    Then edit the `.env` file and set the values for `CENSYS_API_ID` and `CENSYS_API_SECRET`.\n\n3. Clone the repository:\n\n    ```shell\n    git clone https://github.com/christophetd/censys-subdomain-finder.git\n    ```\n\n4. Install the dependencies in a virtualenv:\n\n    ```shell\n    cd censys-subdomain-finder\n    python3 -m venv venv\n    source venv/bin/activate\n    pip install -r requirements.txt\n    ```\n\n## Usage\n\nSample usage:\n\n```shell\npython censys-subdomain-finder.py example.com\n```\n\nOutput the list of subdomains to a text file:\n\n```shell\npython censys-subdomain-finder.py example.com -o subdomains.txt\n```\n\n```shell\nusage: censys-subdomain-finder.py [-h] [-o OUTPUT_FILE]\n                                  [--censys-api-id CENSYS_API_ID]\n                                  [--censys-api-secret CENSYS_API_SECRET]\n                                  domain\n\npositional arguments:\n  domain                The domain to scan\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -o OUTPUT_FILE, --output OUTPUT_FILE\n                        A file to output the list of subdomains to (default:\n                        None)\n  --censys-api-id CENSYS_API_ID\n                        Censys API ID. Can also be defined using the\n                        CENSYS_API_ID environment variable (default: None)\n  --censys-api-secret CENSYS_API_SECRET\n                        Censys API secret. Can also be defined using the\n                        CENSYS_API_SECRET environment variable (default: None)\n```\n\n## Compatibility\n\nShould run on Python 3.7+.\n\n## Notes\n\nThe Censys API has a limit rate of 120 queries per 5 minutes window. Each invocation of this tool makes exactly one API call to Censys.\n\nFeel free to [open an issue](https://github.com/christophetd/censys-subdomain-finder/issues/new) or to [tweet @christophetd](https://twitter.com/christophetd/) for suggestions or remarks.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchristophetd%2Fcensys-subdomain-finder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchristophetd%2Fcensys-subdomain-finder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchristophetd%2Fcensys-subdomain-finder/lists"}