Skip to main content

Analyze prospect domains for security vulnerabilities and generate lead scores for sales outreach

Project description

Security Lead Scorer

A Python CLI tool that analyzes domains for security vulnerabilities and generates lead scores for sales outreach. Higher scores indicate worse security posture, making them better prospects for security products.

Why?

Companies with poor security hygiene are the ideal customers for security products. This tool automates the process of identifying these prospects by scanning for common security issues and generating actionable talking points for outreach.

Installation

From PyPI (recommended)

pip install security-lead-scorer

From source

git clone https://github.com/rangapin/security-leads.git
cd security-leads
pip install -e .

Quick Start

# Scan a single domain
security-leads scan example.com

# Scan multiple domains from a CSV file
security-leads scan-bulk domains.csv --output results.csv

What It Checks

Check What it analyzes Points
SSL/TLS Certificate validity, expiration, TLS version 0-30
Headers HSTS, CSP, X-Frame-Options, etc. 0-46
Redirects HTTP→HTTPS redirect, mixed content 0-30
DNS SPF, DKIM, DMARC email authentication 0-25
CMS WordPress/Joomla/Drupal version detection 0-25
Ports Exposed databases (MySQL, MongoDB, Redis) 0-25+
Cookies Secure, HttpOnly, SameSite flags 0-13

Scoring System

Domains are scored 0-100 based on security issues found:

Score Grade Lead Temperature Meaning
0-15 A Cold Good security - low priority
16-35 B Warm Minor issues - potential lead
36-55 C Hot Multiple issues - good prospect
56-75 D Hot Significant problems - strong prospect
76-100 F On Fire Critical issues - urgent prospect

CLI Usage

Single Domain Scan

# Basic scan (all checks)
security-leads scan example.com

# Run specific checks only
security-leads scan example.com --checks ssl,headers,dns

# Output as JSON
security-leads scan example.com --format json

# Save to CSV
security-leads scan example.com --output result.csv

Bulk Scanning

# Scan domains from CSV file
security-leads scan-bulk domains.csv --output results.csv

# With options
security-leads scan-bulk domains.csv \
  --output results.csv \
  --checks ssl,headers,dns \
  --concurrency 10 \
  --cache \
  --verbose

Bulk scan options:

Option Description Default
--output, -o Output CSV file path stdout
--checks, -c Comma-separated checks to run all
--concurrency Parallel scans 5
--cache Skip recently scanned domains off
--cache-ttl Cache expiry in seconds 86400
--verbose, -v Show progress per domain off

Input File Format

The input CSV can be:

  • One domain per line (no header)
  • CSV with a domain column
  • Any CSV (first column used as domain)
domain
example.com
another-site.com
test.org

Output

Table Output (default)

┌─────────────────────────────────────────────────────────────────┐
│                Security Lead Score: example.com                  │
├─────────────────────────────────────────────────────────────────┤
│  TOTAL SCORE: 67/100                    Grade: D                 │
│  Lead Temperature: HOT                                           │
├─────────────────────────────────────────────────────────────────┤
│  Category Breakdown:                                             │
│  ├── SSL/TLS:        15 pts  Certificate expires in 12 days      │
│  ├── Headers:        23 pts  Missing CSP, HSTS                   │
│  ├── DNS:            10 pts  No DMARC record                     │
│  └── ...                                                         │
├─────────────────────────────────────────────────────────────────┤
│  Talking Points:                                                 │
│  • Your SSL cert expires in 12 days                              │
│  • Missing security headers leave your site exposed              │
│  • No DMARC means anyone can spoof emails from your domain       │
└─────────────────────────────────────────────────────────────────┘

CSV Output

Includes all scan data plus generated talking points for outreach:

domain,total_score,grade,temperature,ssl_score,headers_score,...,talking_points
example.com,67,D,hot,15,23,...,"SSL expiring; Missing CSP; No DMARC"

Development

# Clone and install in dev mode
git clone https://github.com/rangapin/security-leads.git
cd security-leads
pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Run specific test file
pytest tests/test_ssl_checker.py -v

Project Structure

security-leads/
├── security_lead_scorer/
│   ├── main.py              # CLI entry point
│   ├── config.py            # Scoring weights and constants
│   ├── scanner/             # Security check modules
│   │   ├── ssl_checker.py
│   │   ├── header_checker.py
│   │   ├── redirect_checker.py
│   │   ├── dns_checker.py
│   │   ├── cms_detector.py
│   │   ├── port_scanner.py
│   │   └── cookie_checker.py
│   ├── scoring/
│   │   └── calculator.py    # Score aggregation
│   ├── output/
│   │   ├── formatters.py    # Table/JSON output
│   │   ├── csv_export.py    # CSV export
│   │   └── talking_points.py
│   └── utils/
│       ├── rate_limiter.py  # Request throttling
│       ├── cache.py         # Result caching
│       └── async_runner.py  # Concurrent scanning
└── tests/                   # 146 tests

Legal & Ethical Use

This tool performs passive reconnaissance only:

  • No exploitation or penetration testing
  • Minimal, polite port scanning with timeouts
  • Identifies User-Agent in requests
  • Respects rate limits

Only scan domains you have legitimate business interest in.

License

MIT

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

security_lead_scorer-1.0.0.tar.gz (37.1 kB view details)

Uploaded Source

Built Distribution

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

security_lead_scorer-1.0.0-py3-none-any.whl (35.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for security_lead_scorer-1.0.0.tar.gz
Algorithm Hash digest
SHA256 23855bc1c061862f51f2ef3b5b7aac1918043fa7d15bd181a55e6c20475be9de
MD5 94d11a9c72fad904f3626d5570cd055e
BLAKE2b-256 2af457bf3738c3ad2040d123fe2401e9e7dca0e5f87cdddc0ae2534b93bbbcd6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for security_lead_scorer-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e3e32f0e0fe078d507c80c6de855fea3422f9891e602d01506f2f286756ba2cc
MD5 1b01ef7705005bd457d137a7e6e2932d
BLAKE2b-256 9e859b839d0a619d1e217803fc1d9251418743632794fcb38b2f8344f9513f54

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