{"id":20810657,"url":"https://github.com/vivekcode101/opensquat","last_synced_at":"2026-04-19T23:32:23.396Z","repository":{"id":149103224,"uuid":"539618013","full_name":"vivekcode101/opensquat","owner":"vivekcode101","description":null,"archived":false,"fork":false,"pushed_at":"2022-09-21T18:27:46.000Z","size":6695,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-27T09:24:35.147Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/vivekcode101.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2022-09-21T17:53:52.000Z","updated_at":"2022-09-21T18:28:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"f5ba0c54-9b91-41ab-a831-82bde2ab9584","html_url":"https://github.com/vivekcode101/opensquat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vivekcode101/opensquat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekcode101%2Fopensquat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekcode101%2Fopensquat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekcode101%2Fopensquat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekcode101%2Fopensquat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vivekcode101","download_url":"https://codeload.github.com/vivekcode101/opensquat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekcode101%2Fopensquat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32026619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-17T20:26:53.573Z","updated_at":"2026-04-19T23:32:23.355Z","avatar_url":"https://github.com/vivekcode101.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"openSquat\n====\n![alt text](https://raw.githubusercontent.com/atenreiro/opensquat/master/screenshots/openSquat_logo.png)\n\nWhat is openSquat\n-------------\n\nopenSquat is an opensource Intelligence (OSINT) security tool to identify **cyber squatting** threats to specific companies or domains, such as:\n\n*   Phishing campaigns\n*   Domain squatting\n*   Typo squatting\n*   Bitsquatting\n*   IDN homograph attacks\n*   Doppenganger domains\n*   Other brand/domain related scams\n\nIt does support some key features such as:\n\n*   Automatic newly registered domain updating (once a day)\n*   Levenshtein distance to calculate word similarity\n*   Fetches active and known phishing domains (Phishing Database project)\n*   IDN homograph attack detection\n*   Integration with VirusTotal\n*   Integration with Quad9 DNS service\n*   Use different levels of confidence threshold to fine tune\n*   Save output into different formats (txt, JSON and CSV)\n*   Can be integrated with other threat intelligence tools and DNS sinkholes\n\nAs an opensource project, everyone's welcome to contribute.\n\nScreenshot / Video Demo\n-------------\n![alt text](https://raw.githubusercontent.com/atenreiro/opensquat/master/screenshots/openSquat.PNG)\n\nCheck the 40 seconds [Demo Video](https://asciinema.org/a/361931) (v1.95)\n\n\nDemo / Forks\n------------\n*   [Phishy Domains](https://phishydomains.com) for a simple web version of the openSquat.\n*   [openSquat Bot](https://telegram.me/opensquat_bot) for a simple Telegram bot.\n*   [RapidAPI](https://rapidapi.com/atenreiro/api/opensquat1) to integrate your application with openSquat using REST API.\n\n**Note**: The forks do not contain all the openSquat features.\n\n\nHow to Install\n------------\n\n```bash\n    git clone https://github.com/atenreiro/opensquat\n    pip install -r requirements.txt\n```\nMake sure you have **Python 3.6+** and **pip3** in your environment\n\nHow to Update\n------------\nTo update your current version, just type the following commands inside the openSquat directory:\n```bash\n    git pull\n    pip install -r requirements.txt\n```\nThe \"pip install\" is just to make sure no new libs were added with the new upgrade. \n\n\nUsage Examples\n------------\nEdit the \"keywords.txt\" with your customised keywords to hunt.\n\n```bash\n    # Lazy run with default options\n    python opensquat.py\n\n    # for all the options\n    python opensquat.py -h\n    \n    # Search for generic terms used in phishing campaigns (can lead to false-positives)\n    python opensquat.py -k generic.txt\n\n    # With DNS validation (quad9)\n    python opensquat.py --dns\n    \n    # Subdomain search\n    python opensquat.py --subdomains\n    \n    # Check for domains with open ports 80/443\n    python opensquat.py --portcheck\n\n    # With Phishing validation (Phishing Database)\n    python opensquat.py --phishing phish_results.txt\n\n    # Save output as JSON\n    python opensquat.py -o example.json -t json\n\n    # Save output as CSV\n    python opensquat.py -o example.csv -t csv\n\n    # Conduct a certificate transparency (ct) hunt\n    python opensquat.py --ct\n\n    # Period search - registrations from the last month (default: day)\n    python opensquat.py -p month\n\n    # Tweak confidence level. The lower values bring more false positives\n    # (0: very high, 1: high (default), 2: medium, 3: low, 4: very low\n    python opensquat.py -c 2\n\n    # All validations options\n    python opensquat.py --phishing phishing_domains.txt --dns --ct --subdomains --portcheck \n```\n\nAutomations \u0026 Integrations\n-------------\nYou can set up openSquat to run automatically using a task scheduler (such as crontab for Linux) to generate a new list of results daily.\n\nWe update our feeds with a fresh new list of domains every day around 7.30 am (UTC+0 / GMT+0)\n\n```bash\n# Crontab example - run openSquat every day at 8 am\n# In this example, the results are saved to a JSON file format\n0 8 * * * /home/john/opensquat/opensquat.py -k keywords.txt -o results.json -t json\n```\nYou can use this output file to feed your SIEM, SOAR, or other tools that support importing from TXT/JSON/CSV formats.\n\nAlternatively, currently in a **Beta preview** you can integrate using REST APIs, your application with [RapidAPI](https://rapidapi.com/atenreiro/api/opensquat1)\n\nDo you have an integration idea or would like to share an integration you developed with our community? Open a GitHub issue or send me an email.\n\nTo Do / Roadmap\n-------------\n*   ~~Integration with VirusTotal (VT) for subdomains validation~~\n*   Integratration with VirusTotal (VT) for malware detection\n*   ~~Use certificate transparency~~\n*   ~~Homograph detection~~ done\n*   ~~Improve code quality from B to A grade (codacy)~~\n*   ~~PEP8 compliance~~\n*   AND logical condition for keywords search (e.g: google+login) - Thanks to Steff T.\n*   Enhanced documentation\n\nFeature Request\n-------------\nTo request a new feature, create a \"new issue\" and describe the feature and potential use cases. You can upvote the \"issue\" and contribute to the discussions if something similar already exists.\n\nChangelog\n-------------\n*   Check the [CHANGELOG](https://github.com/atenreiro/opensquat/blob/master/CHANGELOG) file.\n\nAuthors\n-------------\nProject founder\n*   Andre Tenreiro [(LinkedIn)](https://www.linkedin.com/in/andretenreiro/)\n*   andre+nospam@opensquat.com - remove the \"nospam\" - [PGP Key](https://mail-api.proton.me/pks/lookup?op=get\u0026search=andre@opensquat.com)\n\nContributors\n*   Please check the contributors page on GitHub\n\nHow to help\n-------------\nYou can help this project in many ways:\n*   Providing your time and coding skills to enhance the project\n*   Build a decent but simple [project webpage](https://opensquat.com)\n*   Provide access to OSINT feeds\n*   Open new issues with new suggestions, ideas, bug report or feature requests\n*   Spread this project within your network\n*   Share your story how have you been using the openSquat and what impact it brought to you\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvivekcode101%2Fopensquat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvivekcode101%2Fopensquat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvivekcode101%2Fopensquat/lists"}