ProRT-IP vs Masscan

Comprehensive technical comparison between ProRT-IP and Masscan, the Internet-scale port scanner capable of scanning all IPv4 addresses in under 6 minutes at 25 million packets per second.


Executive Summary

Masscan dominates pure speed with custom TCP/IP stack achieving 25 million pps (10GbE + PF_RING DNA), 1.6 million pps on standard Linux, capable of scanning the entire IPv4 Internet in under 6 minutes.

ProRT-IP balances speed with detection depth, achieving 10M+ pps stateless (Masscan-class performance) while maintaining 85-90% service detection accuracy and 8 scan types through modern Rust async I/O architecture.

The fundamental tradeoff: Masscan provides maximum speed for pure port discovery but lacks service detection, OS fingerprinting, and advanced scan types. ProRT-IP achieves comparable stateless speed (10M+ pps) while adding comprehensive detection capabilities (500+ services, OS fingerprinting, TLS certificate analysis, 8 scan types).


Quick Comparison

DimensionMasscanProRT-IP
First Released2013 (Robert Graham)2024 (new project)
LanguageC (custom TCP/IP stack)Rust (memory-safe)
Speed (Maximum)25M pps (10GbE + PF_RING)10M+ pps stateless
Speed (Standard)1.6M pps (Linux bare metal)50K+ pps stateful
Speed (Windows/macOS)300K pps (platform limit)50K+ pps (consistent)
Service DetectionBasic banner grabbing only500+ services (85-90%)
OS FingerprintingNone (architectural limit)2,600+ DB (Nmap-compatible)
Scan TypesSYN only (stateless)8 (TCP, UDP, stealth)
IPv6 SupportBasic (limited testing)100% (all scan types)
Stateless ModeYes (core architecture)Yes (10M+ pps)
Banner Grabbing12 protocols (basic probes)Comprehensive (TLS, HTTP, etc.)
Memory SafetyC (manual memory)Rust (compile-time guarantees)
Async ArchitectureCustom (ring buffers)Tokio (industry-standard)
Pause/ResumeBuilt-in (perfect state)Built-in (checkpoint-based)
ShardingElegant (encryption-based)Supported (manual distribution)
Database StorageBinary format onlySQLite (WAL mode, queries)
TLS CertificateBasic extractionX.509v3 (chain validation)
DocumentationExtensive CLI referenceComprehensive (50K+ lines)
CommunityEstablished (11+ years)Growing (Phase 5 complete)

When to Use Each Tool

Use Masscan When:

Maximum speed is the only priority

  • Internet-scale single-port surveys (25M pps on 10GbE)
  • Entire IPv4 scan in under 6 minutes (3.7 billion addresses)
  • Pure port open/closed status without service details

Scanning massive IP ranges with Linux + 10GbE

  • PF_RING DNA kernel bypass available (requires hardware support)
  • Dedicated scanning infrastructure with optimal configuration
  • Time constraints demand absolute fastest possible discovery

Stateless operation is required

  • No state tracking needed (SYN cookies for validation)
  • Perfect randomization via encryption-based algorithm
  • Sharding across distributed machines with zero coordination

Internet measurement research

  • Academic studies requiring Internet-wide surveys
  • Longitudinal tracking of global vulnerability exposure
  • Minimal data collection (port status only, no service details)

Don't use Masscan if you need:

  • Service version detection or OS fingerprinting
  • Advanced scan types (FIN, NULL, Xmas, ACK, UDP, Idle)
  • Comprehensive detection capabilities beyond basic banner grabbing
  • Consistent cross-platform performance (Windows/macOS limited to 300K pps)

Use ProRT-IP When:

Speed matters but detection depth is critical

  • 10M+ pps stateless for rapid discovery (Masscan-class)
  • 50K+ pps stateful with 85-90% service detection
  • Single tool for both breadth and depth (no multi-stage workflow)

Production security assessments require accuracy

  • Service version detection (500+ services, growing database)
  • OS fingerprinting (Nmap-compatible, 2,600+ signatures)
  • TLS certificate analysis (X.509v3, chain validation, SNI support)

Memory safety is required

  • Production environments with strict security policies
  • Rust prevents buffer overflows, use-after-free, data races
  • Compile-time guarantees eliminate entire vulnerability classes

Cross-platform consistency matters

  • 50K+ pps on Linux, Windows, macOS (consistent performance)
  • No platform-specific speed degradation (unlike Masscan's Windows/macOS limits)
  • Single codebase with uniform behavior across operating systems

Modern features matter

  • Database storage (SQLite with queries, change detection, historical tracking)
  • Real-time TUI (60 FPS, live metrics, interactive widgets)
  • Event-driven architecture (pub-sub system, -4.1% overhead)
  • Rate limiting (-1.8% overhead, industry-leading efficiency)

Speed Comparison

Benchmark Results (65,535-Port SYN Scan)

ScannerModeSpeed (pps)TimeRatio
Masscan10GbE + PF_RING25M~2.6 seconds1.0x baseline
ProRT-IPStateless10M+~6.5 seconds2.5x slower
MasscanLinux bare metal1.6M~41 seconds15.8x slower
ProRT-IPStateful T550K+~21 minutes485x slower
MasscanWindows/macOS300K~3.6 minutes83x slower

Analysis: Masscan's maximum configuration (10GbE + PF_RING DNA kernel bypass) achieves unmatched 25M pps, scanning all 65,535 ports in 2.6 seconds. ProRT-IP's stateless mode (10M+ pps) delivers Masscan-class performance on standard hardware, while stateful mode adds comprehensive detection at 50K+ pps. Masscan's platform limitations (300K pps on Windows/macOS) make ProRT-IP's consistent cross-platform performance valuable for heterogeneous environments.

Internet-Scale Scanning (IPv4 Single-Port)

ScannerConfigurationTimeNotes
Masscan25M pps (10GbE + PF_RING)~6 minutesEntire IPv4 (3.7B addresses), port 80
ProRT-IP10M+ pps (stateless)~15 minutesEntire IPv4 (3.7B addresses), port 80
Masscan1.6M pps (Linux bare metal)~1 hourStandard configuration, no kernel bypass
ProRT-IP50K+ pps (stateful + detection)~20 hoursWith service detection, OS fingerprinting

Use Case Analysis:

  • Pure Discovery: Masscan 25M pps wins (6 minutes vs 15 minutes)
  • Discovery + Detection: ProRT-IP 20 hours beats Masscan + Nmap multi-day workflow
  • Standard Hardware: ProRT-IP 10M+ pps stateless matches Masscan Linux performance
  • Production Assessments: ProRT-IP single-pass comprehensive scanning (no multi-stage)

Detection Capabilities

Service Version Detection

ScannerCapabilityDatabase SizeDetection RateNotes
MasscanBasic banner grabbing12 protocolsN/A (no detection)HTTP, FTP, SSH, SSL, SMB, SMTP, IMAP4, POP3, Telnet, RDP, VNC, memcached
ProRT-IPComprehensive detection500+ services85-90% accuracy187 probes, version extraction, CPE identifiers

Masscan's Banner Grabbing:

  • Completes TCP handshakes for 12 common protocols
  • Sends basic "hello" probes (HTTP GET, FTP greeting, SSH banner)
  • Extracts raw banner text without version parsing
  • Requires separate source IP (OS TCP stack conflict, complex configuration)
  • Output: Raw text (requires manual parsing for version extraction)

ProRT-IP's Service Detection:

  • 187 protocol-specific probes from nmap-service-probes
  • Intelligent version extraction with regex pattern matching
  • CPE (Common Platform Enumeration) identifier generation
  • Automatic detection without source IP conflicts
  • Output: Structured data (service name, version, product, OS)

OS Fingerprinting

ScannerCapabilityMethodDatabaseAccuracy
MasscanNoneN/A (architectural limit)N/AN/A
ProRT-IPFull support16-probe sequence2,600+ signatures (Nmap DB)Comparable to Nmap

Why Masscan Lacks OS Fingerprinting: Stateless architecture prevents OS detection. OS fingerprinting requires:

  1. Multiple probe sequences (TCP options, window sizes, DF bit, ICMP responses)
  2. Correlated response analysis from same host
  3. Timing measurements (RTT variations, response delays)

Masscan's fire-and-forget model cannot correlate multiple responses, making OS detection architecturally impossible.

ProRT-IP's OS Fingerprinting:

  • 16-probe sequence (SEQ tests, TCP tests T1-T7, UDP test U1, ICMP tests IE1-IE2)
  • Nmap database compatible (2,600+ OS fingerprints)
  • Timing analysis with RTT measurements
  • Confidence scoring for ambiguous results

Feature Comparison

Scan Types

Scan TypeMasscanProRT-IPNotes
SYN Stealth✅ Yes (only type)✅ Yes (default)Both support stateless SYN scanning
TCP Connect⚠️ Limited✅ Yes (unprivileged)Masscan connect used only for banner grabbing
FIN Scan❌ No✅ YesProRT-IP firewall evasion
NULL Scan❌ No✅ YesProRT-IP IDS evasion
Xmas Scan❌ No✅ YesProRT-IP stealth scanning
ACK Scan❌ No✅ YesProRT-IP firewall rule mapping
UDP Scan❌ No (planned, not implemented)✅ YesProRT-IP comprehensive UDP support
Idle Scan❌ No✅ Yes (99.5% accuracy)ProRT-IP maximum anonymity

Masscan's Limitation: Architectural focus on speed requires SYN-only scanning. Custom TCP/IP stack optimized for stateless SYN packets. Adding other scan types would compromise performance.

ProRT-IP's Advantage: 8 scan types provide flexibility for different scenarios (firewall testing, IDS evasion, anonymity). Async architecture supports multiple scan types without speed penalty.

Advanced Features

FeatureMasscanProRT-IPComparison
Stateless Scanning✅ Core architecture✅ 10M+ pps modeBoth use SYN cookies, Masscan 25M vs ProRT-IP 10M
Banner Grabbing⚠️ 12 protocols, requires source IP✅ Comprehensive (TLS, HTTP, etc.)ProRT-IP more flexible configuration
TLS Certificate⚠️ Basic extraction✅ X.509v3 (chain validation, SNI)ProRT-IP 1.33μs parsing, comprehensive analysis
Pause/Resume✅ Perfect (encryption index)✅ Checkpoint-basedMasscan single integer, ProRT-IP full state
Sharding✅ Elegant (--shard 1/3)✅ Manual distributionMasscan encryption-based, ProRT-IP flexible
Randomization✅ Encryption-based (perfect)✅ Cryptographically secureBoth prevent predictable patterns
Rate Limiting✅ --rate (0.1 to infinite)✅ -1.8% overhead (adaptive)Masscan explicit rates, ProRT-IP intelligent
Output FormatsXML, JSON, grepable, binary, listXML, JSON, text, grepable, databaseProRT-IP adds SQLite storage
Database Storage⚠️ Binary format only✅ SQLite (queries, change detection)ProRT-IP comprehensive database features
IPv6 Support⚠️ Basic (limited testing)✅ 100% (all scan types)ProRT-IP -1.9% overhead (exceeds expectations)

Architecture Comparison

Masscan's Architecture

Language: C (custom TCP/IP stack, ~1,000 lines)

Core Design: Stateless asynchronous scanning with kernel bypass

Key Innovations:

  1. Custom TCP/IP Stack: Complete user-space implementation (no kernel interaction)

    • Ethernet frame generation at Layer 2
    • ARP protocol for MAC resolution
    • TCP state machine for banner grabbing
    • IP checksum computation
  2. SYN Cookie Validation: Cryptographic hash in TCP sequence number

    • SipHash applied to four-tuple (src_ip, src_port, dst_ip, dst_port) + secret key
    • No connection state tracking (zero memory overhead)
    • Automatic filtering of irrelevant traffic
    • IP spoofing prevention
  3. Encryption-Based Randomization: Perfect 1-to-1 mapping

    • Modified DES algorithm (modulus instead of XOR)
    • Index i (0 to N-1) encrypts to randomized value x
    • Decode: address = x / port_count, port = x % port_count
    • No collisions, no tracking, non-binary ranges supported
  4. Lock-Free Concurrency: Two-thread design per NIC

    • Transmit thread generates packets from templates
    • Receive thread processes responses via libpcap PACKET_MMAP
    • Ring buffers for wait-free communication (no mutexes)
    • Zero synchronization in critical path
  5. Kernel Bypass (PF_RING DNA):

    • Direct NIC access via memory-mapped DMA buffers
    • Zero-copy packet I/O (no kernel involvement)
    • Reduces per-packet overhead from ~100 cycles to ~30 cycles
    • Enables 25M pps on 10GbE hardware

Strengths:

  • Absolute maximum speed (25M pps with optimal configuration)
  • Perfect randomization with pause/resume/sharding
  • Minimal resource usage (1% CPU at 1M pps, <1GB RAM)
  • Elegant mathematical properties (encryption-based algorithms)

Weaknesses:

  • Manual memory management risks (C buffer overflows)
  • Platform-specific performance (Linux 1.6M pps, Windows/macOS 300K pps)
  • TCP/IP stack conflicts (requires complex firewall configuration for banner grabbing)
  • No service detection or OS fingerprinting (architectural limitation)

ProRT-IP's Architecture

Language: Rust (memory-safe, zero-cost abstractions)

Core Design: Hybrid stateful/stateless with async I/O

Key Innovations:

  1. Tokio Async Runtime: Industry-standard non-blocking I/O

    • Multi-threaded work stealing scheduler
    • Efficient CPU core utilization (adaptive parallelism)
    • Cross-platform consistency (Linux/Windows/macOS)
  2. Hybrid Scanning Modes:

    • Stateless (10M+ pps): Masscan-class rapid discovery
    • Stateful (50K+ pps): Comprehensive detection with connection tracking
    • Single tool for both breadth and depth
  3. Memory Safety: Compile-time guarantees

    • Borrow checker prevents use-after-free, double-free
    • No data races (thread safety enforced by compiler)
    • Eliminates entire vulnerability classes
  4. Event-Driven Architecture: Pub-sub system (-4.1% overhead)

    • 18 event types (port discovery, service detection, progress)
    • Real-time TUI updates at 60 FPS
    • Database persistence (SQLite, PostgreSQL)
  5. Rate Limiting V3: Industry-leading -1.8% overhead

    • Token bucket algorithm with burst=100
    • Adaptive throttling (network conditions)
    • 10-100x less overhead than competitors

Strengths:

  • Memory safety without performance penalty
  • Comprehensive detection (service versions, OS, TLS certificates)
  • 8 scan types (flexibility for different scenarios)
  • Modern features (database, TUI, event system, plugins)
  • Cross-platform consistency (50K+ pps on all platforms)

Weaknesses:

  • Maximum stateless speed 10M pps (vs Masscan 25M pps with PF_RING)
  • Newer project (less field testing than Masscan's 11+ years)
  • Smaller plugin ecosystem (Lua plugins vs Masscan's established integrations)

Use Cases

Masscan Excels At:

1. Internet-Wide Surveys

# Scan entire IPv4 for port 443 (HTTPS) in 6 minutes
masscan 0.0.0.0/0 -p443 --rate 25000000 --exclude exclude.txt -oJ https-survey.json

# Results: 3.7 billion addresses scanned, ~100M open ports discovered
# Use case: Track global HTTPS deployment, identify vulnerable SSL/TLS versions

2. Rapid Network Discovery

# Scan corporate /16 network across top 100 ports in 4 minutes
masscan 10.0.0.0/16 --top-ports 100 --rate 1000000 -oL corporate-assets.txt

# Results: 65,536 addresses × 100 ports = 6.5M probes in ~4 minutes
# Use case: Asset inventory, network mapping, attack surface enumeration

3. Distributed Scanning with Sharding

# Machine 1 (scans every 3rd address)
masscan 0.0.0.0/0 -p80,443 --shard 1/3 --rate 10000000 -oJ shard1.json

# Machine 2 (scans every 3rd address, offset by 1)
masscan 0.0.0.0/0 -p80,443 --shard 2/3 --rate 10000000 -oJ shard2.json

# Machine 3 (scans every 3rd address, offset by 2)
masscan 0.0.0.0/0 -p80,443 --shard 3/3 --rate 10000000 -oJ shard3.json

# Results: Complete coverage with zero coordination, 3x speed improvement
# Use case: Cloud-based distributed scanning, time-critical assessments

4. Penetration Testing Initial Enumeration

# Two-stage workflow: Masscan discovery + Nmap detail
masscan 192.168.1.0/24 -p1-65535 --rate 100000 -oG masscan.txt
awk '/open/ {print $2}' masscan.txt | sort -u > live-hosts.txt
nmap -sS -sV -sC -O -A -iL live-hosts.txt -oX detailed-scan.xml

# Results: 90% time reduction vs Nmap-only approach
# Use case: Penetration testing with tight time windows

ProRT-IP Excels At:

1. Comprehensive Single-Pass Assessment

# Stateful scan with service detection + OS fingerprinting in one pass
prtip -sS -sV -O -p- 192.168.1.0/24 --with-db --database comprehensive.db

# Results: All open ports + service versions + OS + TLS certificates
# Use case: Complete security assessment without multi-stage workflow

2. Production Security Monitoring

# Daily scan with change detection and alerting
#!/bin/bash
DB="security-monitor.db"
TARGET="10.0.0.0/16"

prtip -sS -sV -p 22,80,443,3306,3389 $TARGET --with-db --database $DB

SCAN1=$(sqlite3 $DB "SELECT id FROM scans ORDER BY start_time DESC LIMIT 1 OFFSET 1;")
SCAN2=$(sqlite3 $DB "SELECT id FROM scans ORDER BY start_time DESC LIMIT 1;")

if prtip db compare $DB $SCAN1 $SCAN2 | grep -q "New Open Ports"; then
  echo "ALERT: New services detected!" | mail -s "Security Alert" soc@company.com
fi

# Results: Automated detection of new services, version changes, port closures
# Use case: Continuous monitoring, compliance validation, change management

3. Bug Bounty Rapid Reconnaissance

# Fast discovery with detection (85-90% accuracy sufficient)
prtip -sS -sV --top-ports 1000 -T5 --max-rate 100000 \
  bug-bounty-scope.txt --with-db --database bounty-recon.db

# Export web targets for follow-up
prtip db query bounty-recon.db --port 80 --open -oJ web-targets.json
prtip db query bounty-recon.db --port 443 --open -oJ https-targets.json

# Results: Comprehensive enumeration in minutes, structured data for automation
# Use case: Bug bounty hunting, rapid target identification

4. Cross-Platform Enterprise Scanning

# Consistent performance across Windows/macOS/Linux environments
# Linux
prtip -sS -sV -p 1-1000 -T4 targets.txt --with-db --database linux-scan.db

# Windows (same command, consistent 50K+ pps performance)
prtip -sS -sV -p 1-1000 -T4 targets.txt --with-db --database windows-scan.db

# macOS (same command, consistent 50K+ pps performance)
prtip -sS -sV -p 1-1000 -T4 targets.txt --with-db --database macos-scan.db

# Results: Uniform behavior and performance across all platforms
# Use case: Heterogeneous environments, multi-platform security teams

Migration Guide

From Masscan to ProRT-IP

What You Gain:

Service Detection (85-90% accuracy with 500+ service database)

  • Version extraction (Apache 2.4.52, OpenSSH 8.9, MySQL 5.7)
  • CPE identifiers for vulnerability correlation
  • TLS certificate analysis (X.509v3, chain validation, SNI support)
  • 10x faster than Nmap comprehensive probing

OS Fingerprinting (Nmap database compatible, 2,600+ signatures)

  • 16-probe sequence (TCP options, window sizes, ICMP responses)
  • Confidence scoring for ambiguous results
  • Critical for targeted exploitation and compliance reporting

Multiple Scan Types (8 types vs Masscan's SYN-only)

  • Firewall evasion (FIN, NULL, Xmas scans)
  • Firewall rule mapping (ACK scans)
  • Maximum anonymity (Idle scans with zombie hosts)
  • UDP scanning (DNS, SNMP, NetBIOS enumeration)

Memory Safety (Rust compile-time guarantees)

  • Eliminates buffer overflows, use-after-free, data races
  • Production-ready for strict security policies
  • Zero vulnerability classes vs C manual memory management

Modern Features:

  • Database storage (SQLite with queries, change detection, historical tracking)
  • Real-time TUI (60 FPS, live metrics, 4 interactive widgets)
  • Event-driven architecture (pub-sub system, -4.1% overhead)
  • Rate limiting V3 (-1.8% overhead, industry-leading efficiency)

What You Keep

High-Speed Stateless Scanning (10M+ pps, Masscan-class performance)

  • Internet-scale discovery without detection overhead
  • Same fire-and-forget architecture for maximum throughput
  • Cryptographically secure randomization

Pause/Resume (checkpoint-based state preservation)

  • Resume interrupted scans without resending packets
  • Perfect for long-running Internet surveys
  • State saved to disk automatically

Distributed Scanning (manual sharding support)

  • Split target ranges across multiple machines
  • No coordination required (deterministic randomization)
  • Linear scaling with instance count

Platform Portability (Linux, Windows, macOS, FreeBSD)

  • Single Rust codebase compiles everywhere
  • Cross-platform consistency (unlike Masscan's platform-specific performance)

What Changes

Maximum Speed (10M pps vs Masscan 25M pps with PF_RING)

  • ProRT-IP stateless mode achieves Masscan-class speeds on standard hardware
  • Masscan's absolute maximum (25M pps) requires 10GbE + PF_RING DNA kernel bypass
  • Tradeoff: 2.5x slower maximum speed for comprehensive detection capabilities

Banner Grabbing Configuration (simpler, no source IP conflicts)

  • Masscan requires separate source IP or complex firewall rules (TCP/IP stack conflict)
  • ProRT-IP handles banner grabbing automatically (no configuration headaches)
  • Benefit: Easier deployment, fewer configuration errors

Sharding Syntax (manual vs automatic)

  • Masscan: --shard 1/3 (elegant encryption-based distribution)
  • ProRT-IP: Manual target range splitting (more explicit control)
  • Tradeoff: Slightly more complex distributed scanning setup

Output Formats (adds database, removes binary)

  • Masscan: XML, JSON, grepable, binary, list formats
  • ProRT-IP: XML, JSON, text, grepable, SQLite database
  • Benefit: Database queries, change detection, historical analysis

Migration Steps

1. Install ProRT-IP

Download from GitHub releases:

# Linux x86_64
wget https://github.com/doublegate/ProRT-IP/releases/download/v0.5.2/prtip-0.5.2-x86_64-unknown-linux-gnu.tar.gz
tar xzf prtip-0.5.2-x86_64-unknown-linux-gnu.tar.gz
sudo mv prtip /usr/local/bin/
sudo setcap cap_net_raw,cap_net_admin=eip /usr/local/bin/prtip

# Verify installation
prtip --version

2. Test Familiar Masscan Commands

Basic conversion patterns:

# Masscan
masscan 10.0.0.0/8 -p80,443 --rate 100000 -oJ results.json

# ProRT-IP (stateless mode for speed)
prtip --stateless -p 80,443 10.0.0.0/8 --max-rate 100000 -oJ results.json

# ProRT-IP (stateful mode with detection)
prtip -sS -sV -p 80,443 10.0.0.0/8 --max-rate 50000 --with-db --database scan.db

3. Leverage Detection Advantage

Single-pass comprehensive scanning:

# Masscan + Nmap two-stage workflow
masscan 192.168.1.0/24 -p1-65535 --rate 100000 -oG masscan.txt
awk '/open/ {print $2}' masscan.txt > live-hosts.txt
nmap -sS -sV -sC -O -iL live-hosts.txt -oX detailed.xml

# ProRT-IP single-pass equivalent
prtip -sS -sV -O -p- 192.168.1.0/24 -T4 \
  --with-db --database comprehensive.db \
  -oX detailed.xml

4. Explore Database Features

# Run scan with database storage
prtip -sS -sV -p 22,80,443 10.0.0.0/24 --with-db --database security.db

# Query open ports by service
prtip db query security.db --service apache
prtip db query security.db --port 22 --open

# Compare scans for change detection
prtip db compare security.db 1 2

# Export to various formats
prtip db export security.db --scan-id 1 --format json -o results.json

5. Integration Patterns

Database-Driven Monitoring (replaces Masscan binary format):

#!/bin/bash
# Daily scan with automatic alerting
DB="monitor.db"
prtip -sS -sV -p 22,80,443,3306 10.0.0.0/24 --with-db --database $DB

# Compare and alert
SCAN1=$(sqlite3 $DB "SELECT id FROM scans ORDER BY start_time DESC LIMIT 1 OFFSET 1;")
SCAN2=$(sqlite3 $DB "SELECT id FROM scans ORDER BY start_time DESC LIMIT 1;")
prtip db compare $DB $SCAN1 $SCAN2 > daily-changes.txt

TUI for Real-Time Monitoring (replaces Masscan --packet-trace):

# Launch interactive TUI
prtip --live -sS -sV -p- 192.168.1.0/24

# Features:
# - 60 FPS real-time updates
# - Port/Service tables with sorting
# - Metrics dashboard (throughput, progress, ETA)
# - Network activity graph
# - Keyboard navigation (Tab to switch views)

Command Comparison

Basic Scanning

OperationMasscanProRT-IP
SYN scanmasscan 10.0.0.0/24 -p80,443prtip -sS -p 80,443 10.0.0.0/24
All portsmasscan 10.0.0.1 -p1-65535prtip -sS -p- 10.0.0.1
Top portsmasscan 10.0.0.0/24 --top-ports 100prtip -sS --top-ports 100 10.0.0.0/24
Specific portsmasscan 10.0.0.0/24 -p80,443,8080prtip -sS -p 80,443,8080 10.0.0.0/24
UDP ports❌ Not implementedprtip -sU -p 53,161 10.0.0.0/24

Performance Tuning

OperationMasscanProRT-IP
Set rate--rate 100000--max-rate 100000
Maximum speed--rate infinite--stateless --max-rate 10000000
Timing template❌ Not supported-T0 through -T5
Retries--retries 3--max-retries 3
Timeout--wait 10--host-timeout 30s

Detection

OperationMasscanProRT-IP
Banner grabbing--banners --source-ip 192.168.1.200Automatic with -sV
Service detection❌ Not supported-sV --version-intensity 7
OS fingerprinting❌ Not supported-O or -A
Aggressive❌ Not supported-A (OS + service + traceroute)

Output Formats

OperationMasscanProRT-IP
XML output-oX scan.xml-oX scan.xml
JSON output-oJ scan.json-oJ scan.json
Grepable-oG scan.txt-oG scan.gnmap
All formats❌ Not supported-oA scan (txt, xml, json)
Binary-oB scan.bin❌ Not supported
Database❌ Not supported--with-db --database scan.db

Distributed Scanning

OperationMasscanProRT-IP
Sharding--shard 1/3Manual range splitting
PauseCtrl-C (saves paused.conf)--resume-file /tmp/scan.state
Resume--resume paused.conf--resume /tmp/scan.state
Seed--seed 12345❌ Not exposed (internal CSPRNG)

Integration Workflows

Masscan Workflows

Internet-Wide Survey with Analysis:

# Phase 1: Rapid discovery (Masscan)
masscan 0.0.0.0/0 -p443 --rate 10000000 \
  --exclude exclude.txt \
  -oJ https-survey.json

# Phase 2: Parse results
cat https-survey.json | jq -r '.[] | .ip' | sort -u > https-hosts.txt

# Phase 3: Detailed analysis (Nmap on discovered hosts)
nmap -sS -sV --script ssl-cert,ssl-enum-ciphers \
  -iL https-hosts.txt -oX ssl-details.xml

# Results: Global HTTPS deployment map with certificate analysis

Distributed Cloud Scanning:

# Spin up 10 AWS instances, each running:
masscan 0.0.0.0/0 -p80,443 --shard 1/10 --rate 5000000 -oJ shard1.json
masscan 0.0.0.0/0 -p80,443 --shard 2/10 --rate 5000000 -oJ shard2.json
# ... (instances 3-10)

# Aggregate results
cat shard*.json | jq -s 'add' > combined-results.json

# Results: Complete Internet scan in ~60 minutes (10 instances × 5M pps each)

Metasploit Integration (via XML import):

# Masscan discovery
masscan 192.168.1.0/24 -p1-65535 --rate 100000 -oX masscan.xml

# Convert to Nmap XML format (manual or via script)
python masscan_to_nmap.py masscan.xml > nmap-format.xml

# Import into Metasploit
msfconsole
> db_import nmap-format.xml
> services
> search smb

ProRT-IP Workflows

Single-Pass Comprehensive Assessment:

# All-in-one: Discovery + Detection + Storage
prtip -sS -sV -O -p- 192.168.1.0/24 -T4 \
  --with-db --database comprehensive.db \
  -oX scan.xml -oJ scan.json

# Query results
prtip db query comprehensive.db --service apache
prtip db query comprehensive.db --target 192.168.1.100 --open

# Export for tools
prtip db export comprehensive.db --scan-id 1 --format xml -o nmap-format.xml

# Results: Complete data set in single scan, multiple export formats

Continuous Security Monitoring:

#!/bin/bash
# Daily automated scanning with change detection

DB="/var/scans/security-monitor.db"
TARGET="10.0.0.0/16"
ALERT_EMAIL="soc@company.com"

# Daily scan
prtip -sS -sV -p 22,23,80,443,3306,3389 $TARGET \
  --with-db --database $DB \
  --max-rate 50000

# Get last two scans
SCAN1=$(sqlite3 $DB "SELECT id FROM scans ORDER BY start_time DESC LIMIT 1 OFFSET 1;")
SCAN2=$(sqlite3 $DB "SELECT id FROM scans ORDER BY start_time DESC LIMIT 1;")

# Compare and alert on changes
CHANGES=$(prtip db compare $DB $SCAN1 $SCAN2)

if echo "$CHANGES" | grep -q "New Open Ports"; then
  echo "$CHANGES" | mail -s "ALERT: New Services Detected" $ALERT_EMAIL
fi

# Results: Automated change detection, historical tracking, alerting

Real-Time TUI Monitoring:

# Launch interactive terminal UI
prtip --live -sS -sV -p- 192.168.1.0/24

# TUI Features:
# - Port Table: Interactive list with sorting/filtering
# - Service Table: Detected services with versions
# - Metrics Dashboard: Real-time throughput, progress, ETA
# - Network Graph: Time-series visualization of activity
# - Keyboard shortcuts: Tab (switch views), s (sort), f (filter), q (quit)

# Results: Real-time visibility, interactive exploration, 60 FPS updates

PCAPNG Packet Capture (for forensics):

# Scan with full packet capture
prtip -sS -p 80,443 192.168.1.0/24 \
  --capture-packets --output-pcap scan-packets.pcapng

# Analyze with Wireshark or tcpdump
wireshark scan-packets.pcapng
tcpdump -r scan-packets.pcapng 'tcp[tcpflags] & (tcp-syn) != 0'

# Results: Full packet-level evidence for forensic analysis

Summary and Recommendations

Choose Masscan If:

Absolute maximum speed is the only priority (25M pps with 10GbE + PF_RING DNA) ✅ Pure port discovery without detection (service versions, OS not needed) ✅ Internet-scale surveys (entire IPv4 in 6 minutes, academic research) ✅ Linux bare metal deployment (optimal platform for maximum performance) ✅ Stateless architecture required (perfect randomization, elegant sharding) ✅ Established integrations matter (Metasploit, ZMap ecosystem, 11+ years field testing)

Choose ProRT-IP If:

Speed + detection balance critical (10M+ pps stateless, 50K+ pps with 85-90% detection) ✅ Service versions and OS fingerprinting required (500+ services, Nmap DB compatible) ✅ Memory safety mandatory (production environments, strict security policies, Rust guarantees) ✅ Cross-platform consistency matters (50K+ pps on Linux/Windows/macOS vs Masscan's platform limits) ✅ Modern features valuable (database storage, real-time TUI, event system, rate limiting -1.8%) ✅ Single-tool comprehensive scanning (no multi-stage workflow, one pass for discovery + detection) ✅ Multiple scan types needed (8 types: FIN, NULL, Xmas, ACK, UDP, Idle vs Masscan's SYN-only)

Hybrid Approach

Many security professionals use both tools strategically:

Phase 1: ProRT-IP Stateless Discovery (10M+ pps, Masscan-class speed)

prtip --stateless -p 80,443,22,21,25 0.0.0.0/0 \
  --max-rate 10000000 \
  --with-db --database phase1-discovery.db

Phase 2: ProRT-IP Stateful Enumeration (50K+ pps with detection)

prtip -sS -sV -O -p- open-hosts.txt \
  --max-rate 50000 \
  --with-db --database phase2-enumeration.db

Phase 3: Nmap Deep Inspection (100% accuracy, NSE scripts)

nmap -sS -sV -sC -O -A --script vuln critical-hosts.txt -oX phase3-deep.xml

When to Use Masscan Instead of ProRT-IP Stateless:

  • Require absolute maximum speed (25M pps with PF_RING vs ProRT-IP 10M pps)
  • Linux bare metal with 10GbE available (ProRT-IP stateless comparable on standard hardware)
  • Perfect sharding needed (Masscan --shard 1/3 more elegant than manual range splitting)

Key Insight: ProRT-IP's stateless mode (10M+ pps) provides Masscan-class performance for 95% of use cases while adding comprehensive detection capabilities unavailable in Masscan. The 2.5x maximum speed difference (25M vs 10M pps) only matters for Internet-scale surveys where minutes matter, and requires specialized hardware (10GbE + PF_RING DNA) most practitioners lack.


See Also