Skip to main content

openSquat - Detection of domain squatting, typosquatting, IDN homograph attacks, and phishing threats

Project description

openSquat Logo

openSquat Core

Python 3.8+ License: GPL v3 GitHub issues GitHub stars


📑 Table of Contents


🎯 What is openSquat?

openSquat is an Open Source Intelligence (OSINT) security tool that identifies cyber squatting threats targeting your brand or domains:

Threat Type Description
🎣 Phishing Fraudulent domains mimicking your brand
🔤 Typosquatting Domains with common typos (e.g., gooogle.com)
🌐 IDN Homograph Look-alike characters from other alphabets
👥 Doppelgänger Domains containing your brand name
🔀 Bitsquatting Single-bit errors in domain names

🔓 Open-Core Model

openSquat follows an open-core model:

  • Core detection engine — Open source and community-driven
  • Advanced capabilities — Delivered through commercial intelligence services

This model enables transparency and community collaboration while supporting the scale, reliability, and operational requirements of enterprise use.


✨ Key Features

  • 📅 Daily NRD feeds — Automatic newly registered domain updates
  • 🔍 Similarity detection — Levenshtein distance algorithm
  • 🛡️ VirusTotal integration — Check domain reputation
  • 🌐 Quad9 DNS validation — Identify malicious domains
  • 📜 Certificate Transparency — Monitor SSL/TLS certificates
  • 📊 Multiple output formats — TXT, JSON, CSV

🚀 Quick Start

Install via pip (recommended)

pip install opensquat
opensquat -k keywords.txt

Or clone the repository

git clone https://github.com/atenreiro/opensquat
cd opensquat
pip install -r requirements.txt
python opensquat.py -k keywords.txt

📦 Requirements

  • Python 3.8+
  • Dependencies: confusable_homoglyphs, homoglyphs, colorama, requests, dnspython, beautifulsoup4

📖 Usage

Basic Commands

# Default run
opensquat

# Show all options
opensquat -h

# Use custom keywords file
opensquat -k my_keywords.txt

Validation Options

# DNS validation via Quad9
opensquat --dns

# Check Certificate Transparency logs
opensquat --ct

# Scan for open ports (80/443)
opensquat --portcheck

# Cross-reference phishing databases
opensquat --phishing results.txt

Output Formats

# Save as JSON
opensquat -o results.json -t json

# Save as CSV
opensquat -o results.csv -t csv

Confidence Levels

Level Flag Description
0 -c 0 Very high (fewer results, high accuracy)
1 -c 1 High (default)
2 -c 2 Medium
3 -c 3 Low
4 -c 4 Very low (more results, more false positives)

⚙️ Configuration

Keywords File (keywords.txt)

# Lines starting with # are comments
mycompany
mybrand
myproduct

VirusTotal API Key (vt_key.txt)

To use --vt or --subdomains, add your API key:

# Get your free API key at https://www.virustotal.com
your_api_key_here

🤖 Automation

Run daily via crontab:

# Every day at 8 AM (feeds update ~7:30 AM UTC)
0 8 * * * /path/to/opensquat/opensquat.py -k keywords.txt -o results.json -t json

📋 CLI Reference

Argument Default Description
-k, --keywords keywords.txt Keywords file to search
-o, --output results.txt Output filename
-t, --type txt Output format: txt, json, csv
-c, --confidence 1 Confidence level (0-4)
-d, --domains Use local domain file instead of downloading
-u, --url opensquat feed URL to download domain feed
--dns Enable Quad9 DNS validation
--doppelganger Doppelganger-only mode (keyword in domain + reachability check)
--ct Search Certificate Transparency logs
--phishing Cross-reference phishing database
--subdomains Fetch subdomains via VirusTotal
--portcheck Check for open ports 80/443
--vt Validate against VirusTotal

🤝 Contributing

We welcome contributions! See our Contributing Guide for details.

  • 🐛 Report bugs via GitHub Issues
  • 💡 Request features by opening an issue
  • 🔧 Submit PRs for bug fixes or enhancements

👤 Author

Andre TenreiroLinkedIn · PGP Key


📜 License

This project is licensed under the GNU GPL v3.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opensquat-2.2.2.tar.gz (32.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

opensquat-2.2.2-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

Details for the file opensquat-2.2.2.tar.gz.

File metadata

  • Download URL: opensquat-2.2.2.tar.gz
  • Upload date:
  • Size: 32.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for opensquat-2.2.2.tar.gz
Algorithm Hash digest
SHA256 407cdc7ee5fedd6ee87543d8911a7ac0ccbb3fe61a10985f6161cb0d5cd02c81
MD5 5bcd92546a268e1be5c642e5b022c01f
BLAKE2b-256 dc1eb287b8e346d2b488a58ad397ad6179156f96c22b70da8babbdb76aaf8e58

See more details on using hashes here.

File details

Details for the file opensquat-2.2.2-py3-none-any.whl.

File metadata

  • Download URL: opensquat-2.2.2-py3-none-any.whl
  • Upload date:
  • Size: 35.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for opensquat-2.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 09325e6769bc889977d6790b61fc11a9bcf5814c88cba4f5e155340beec8021d
MD5 8651a002ad371c69bc2981cf5e4e4bcc
BLAKE2b-256 1553f70c53a59b3a886c30450ce0dc6042e92e29ba9a3b4b7e7f90c4703e1649

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page