mcpField
S
shodan-reconnaissance

shodan-reconnaissance

github.com/sickn33Security48.7k159 installsUpdated today
Repository

About shodan-reconnaissance

A security-reconnaissance skill for using Shodan to search internet-exposed hosts and assess authorized targets. It emphasizes explicit scope confirmation, read-only guidance without approval, and validation of scan limits and data freshness.

Key features

  1. 01Shodan host and service searches
  2. 02Infrastructure statistics and data downloads
  3. 03Vulnerability and device discovery
  4. 04SSL/TLS certificate searches
  5. 05Authorization and command confirmation gate
  6. 06Rate-limit and data-freshness cautions

Use cases

  1. 01Inventorying an authorized organization's exposed infrastructure
  2. 02Finding services associated with known vulnerabilities
  3. 03Discovering exposed IoT and industrial devices
  4. 04Reviewing certificate attributes across authorized hosts

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill shodan-reconnaissance

After installing, type/shodan-reconnaissancein Claude Code to confirm it loaded.

Bundled filesreferences/detailed-guide.md

Details

From the project README

⚠️ AUTHORIZED USE ONLY This skill is for educational purposes or authorized security assessments only. You must have explicit, written permission from the system owner before using this tool. Misuse of this tool is illegal and strictly prohibited.

Mandatory confirmation gate Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:

  1. Ask the user to state the exact target URL, IP, account, or resource.
  2. Ask the user to confirm written authorization and the permitted scope.
  3. Show the exact command(s) and explain their expected effect.
  4. Wait for explicit confirmation in the current conversation.

Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.

Shodan Reconnaissance and Pentesting

Detailed Guide

Read the detailed guide before executing this skill. It retains the complete procedure and reference material. Treat its safety, prerequisites, and validation requirements as mandatory. For focused work, load the relevant sections; for end-to-end work, read the guide completely.

Constraints and Limitations

Operational Boundaries
  • Check current endpoint/account rate limits and honor retry guidance
  • Scan results not immediate (asynchronous)
  • Rescan eligibility depends on current account and endpoint policy
  • Free accounts have limited credits
  • Some data requires paid subscription
Data Freshness
  • Shodan crawls continuously but data may be days/weeks old
  • On-demand scans provide current data but cost credits
  • Historical data available with paid plans
Legal Requirements
  • Only perform reconnaissance on authorized targets
  • Passive reconnaissance generally legal but verify jurisdiction
  • Active scanning (scan submit) requires authorization
  • Document all reconnaissance activities

Examples

Example 1: Organization Reconnaissance
# Find all hosts belonging to target organization
shodan search 'org:"Target Company"'

# Get statistics on their infrastructure
shodan stats --facets port,product,country 'org:"Target Company"'

# Download detailed data
shodan download target_data.json.gz 'org:"Target Company"'

# Parse for specific info
shodan parse --fields ip_str,port,product target_data.json.gz
Example 2: Vulnerable Service Discovery
# Find hosts vulnerable to BlueKeep (RDP CVE)
shodan search 'vuln:CVE-2019-0708 country:US'

# Find Elasticsearch banner candidates; absence of an authentication keyword does not prove no auth
shodan search 'product:elastic port:9200 -authentication'

# Find Log4j vulnerable systems
shodan search 'vuln:CVE-2021-44228'
Example 3: IoT Device Discovery
# Find exposed webcams
shodan search 'webcam has_screenshot:true country:US'

# Find industrial control systems
shodan search 'port:502 product:modbus'

# Find exposed printers
shodan search '"HP-ChaiSOE" port:80'

# Find smart home devices
shodan search 'product:nest'
Example 4: SSL/TLS Certificate Analysis
# Find hosts with specific SSL cert
shodan search 'ssl.cert.subject.cn:*.example.com'

# Find expired certificates
shodan search 'ssl.cert.expired:true org:"Company"'

# Find self-signed certificates
# Inspect issuer/subject and verify signature; issuer CN text alone cannot establish self-signing.
Example 5: Python Automation Script
#!/usr/bin/env python3
import shodan
import json
import os

API_KEY = os.environ["SHODAN_API_KEY"]
api = shodan.Shodan(API_KEY)

def recon_organization(org_name):
    """Perform reconnaissance on an organization"""
    try:
        # Search for organization
        query = f'org:"{org_name}"'
        results = api.search(query)
        
        print(f"[*] Found {results['total']} matching banners; this response is one page")
        
        # Collect unique IPs and ports
        hosts = {}
        for result in results['matches']:
            ip = result['ip_str']
            port = result['port']
            product = result.get('product', 'unknown')
            
            if ip not in hosts:
                hosts[ip] = []
            hosts[ip].append({'port': port, 'product': product, 'transport': result.get('transport', 'unknown')})
        
        # Output findings
        for ip, services in hosts.items():
            print(f"\n[+] {ip}")
            for svc in services:
                print(f"    - {svc['port']}/{svc['transport']} ({svc['product']})")
        
        return hosts
        
    except shodan.APIError as e:
        print(f"Error: {e}")
        return None

if __name__ == '__main__':
    recon_organization("Target Company")
Example 6: Network Range Assessment
# Scan a /24 network range
shodan search 'net:203.0.113.0/24'

# Get port distribution
shodan stats --facets port 'net:203.0.113.0/24'

# Find specific vulnerabilities in range
shodan search 'net:203.0.113.0/24 vuln:CVE-2021-44228'

# Export all data for range
shodan download network_scan.json.gz 'net:203.0.113.0/24'

When to Use

This skill is applicable to execute the workflow or actions described in the overview.

Comments

Markdown supported