Skip to main content

High-performance async Python port scanner with honeypot detection

Project description

Argus – Port Scanner

Python 3.10+ MIT License Platform

Argus is a high-performance, asynchronous port scanner built in Python. It combines speed with intelligence—featuring SSL/TLS support, smart banner grabbing, and built-in honeypot detection.

⚠️ Legal Disclaimer

This tool is for educational and authorized testing only.
Unauthorized scanning of networks you do not own or have permission to test may be illegal in your jurisdiction. Always obtain proper authorization before scanning.


Features

Feature Description
Async Scanning Concurrent scanning with configurable workers (up to 5000)
🔒 SSL/TLS Support HTTPS detection with SNI for CDNs like Akamai
🕵️ Honeypot Detection Multi-layer scoring: port density, banner consistency, timing
🎯 Smart Banner Grabbing Optional -sV mode with multi-stage probing
📊 JSON Output Machine-readable results with honeypot breakdown

Installation

From PyPI (Recommended)

pip install argus-scanner

From Source

git clone https://github.com/yourusername/argus-port-scanner.git
cd argus-port-scanner
pip install -e .

Usage

# Simple scan
argus -t example.com -p 1-1000

# Fast scan with JSON output
argus -t example.com -p 80,443,8080 -o results.json

# Deep service detection
argus -t example.com -p 1-1000 -sV

Options

Option Description
-t, --target Target IP or hostname
-p, --ports Ports to scan (e.g., 80,443 or 1-1000)
-c, --concurrency Concurrent connections (default: 500)
-o, --output Save results to JSON file
-sV Deep service detection with multi-stage probing

Honeypot Detection

Argus detects potential honeypots using multiple signals:

Check Weight What It Detects
Port Density 40 pts Too many open ports (100+ = max)
Banner Consistency 30 pts OS mismatches across services
Response Timing 30 pts Too-fast or zero-jitter responses

Confidence Levels: LOW (0-39), MEDIUM (40-59), HIGH (60+)

See docs/honeypot_detection.md for detailed scoring logic.


Example Output

╭────────────────────── Honeypot Detection ──────────────────────╮
│ ✓ Honeypot Score: 5/100 (LOW)                                  │
│   • Port Density: 0/40 - 4 open ports is normal                │
│   • Banner Consistency: 0/30 - OS indicators consistent        │
│   • Timing: 5/30 - Timing patterns appear normal               │
╰────────────────────────────────────────────────────────────────╯

              Scan Results for 23.55.244.114
┏━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Port ┃ State ┃ Service             ┃ Version/Banner           ┃
┡━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│   80 │ OPEN  │ [HTTP] AkamaiGHost  │ HTTP/1.0 400 Bad Request │
│  443 │ OPEN  │ [HTTP] AkamaiGHost  │ HTTP/1.0 400 Bad Request │
└──────┴───────┴─────────────────────┴──────────────────────────┘

Roadmap

Feature Status
UDP scanning Planned
IPv6 support Planned
Plugin-based analyzers Planned
PCAP-based timing analysis Research
Nmap NSE script compatibility Research

See docs/validation.md for real-world test results.


Contributing

See CONTRIBUTING.md for guidelines.

License

MIT License - see LICENSE for details.

Acknowledgments

  • Built with Rich for terminal UI
  • Uses Pydantic for configuration

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

argus_scanner-1.0.0.tar.gz (32.5 kB view details)

Uploaded Source

Built Distribution

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

argus_scanner-1.0.0-py3-none-any.whl (32.5 kB view details)

Uploaded Python 3

File details

Details for the file argus_scanner-1.0.0.tar.gz.

File metadata

  • Download URL: argus_scanner-1.0.0.tar.gz
  • Upload date:
  • Size: 32.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for argus_scanner-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f354f4c8531194ed6de739c0e5b431c585a8cf6f6f1aab37003e5e73e7429e13
MD5 9429abdd0c37e194e61961659d207ee0
BLAKE2b-256 899030d35952debfe54b199306b9f8629594b245bee4938cf9c9ff3252ec74dc

See more details on using hashes here.

File details

Details for the file argus_scanner-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: argus_scanner-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 32.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for argus_scanner-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fdd7edb6b393045d59f05168cc86161f560c828e2699923d5bd0f64f1450c6cb
MD5 26100f18ed53b70a1d8bb70518ff0a5e
BLAKE2b-256 041e40de5af2e4e02fa1c523dc1004ce2b00632d0b31194a963bf996a98c4bd8

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