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
| Dimension | Masscan | ProRT-IP |
|---|---|---|
| First Released | 2013 (Robert Graham) | 2024 (new project) |
| Language | C (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 Detection | Basic banner grabbing only | 500+ services (85-90%) |
| OS Fingerprinting | None (architectural limit) | 2,600+ DB (Nmap-compatible) |
| Scan Types | SYN only (stateless) | 8 (TCP, UDP, stealth) |
| IPv6 Support | Basic (limited testing) | 100% (all scan types) |
| Stateless Mode | Yes (core architecture) | Yes (10M+ pps) |
| Banner Grabbing | 12 protocols (basic probes) | Comprehensive (TLS, HTTP, etc.) |
| Memory Safety | C (manual memory) | Rust (compile-time guarantees) |
| Async Architecture | Custom (ring buffers) | Tokio (industry-standard) |
| Pause/Resume | Built-in (perfect state) | Built-in (checkpoint-based) |
| Sharding | Elegant (encryption-based) | Supported (manual distribution) |
| Database Storage | Binary format only | SQLite (WAL mode, queries) |
| TLS Certificate | Basic extraction | X.509v3 (chain validation) |
| Documentation | Extensive CLI reference | Comprehensive (50K+ lines) |
| Community | Established (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)
| Scanner | Mode | Speed (pps) | Time | Ratio |
|---|---|---|---|---|
| Masscan | 10GbE + PF_RING | 25M | ~2.6 seconds | 1.0x baseline |
| ProRT-IP | Stateless | 10M+ | ~6.5 seconds | 2.5x slower |
| Masscan | Linux bare metal | 1.6M | ~41 seconds | 15.8x slower |
| ProRT-IP | Stateful T5 | 50K+ | ~21 minutes | 485x slower |
| Masscan | Windows/macOS | 300K | ~3.6 minutes | 83x 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)
| Scanner | Configuration | Time | Notes |
|---|---|---|---|
| Masscan | 25M pps (10GbE + PF_RING) | ~6 minutes | Entire IPv4 (3.7B addresses), port 80 |
| ProRT-IP | 10M+ pps (stateless) | ~15 minutes | Entire IPv4 (3.7B addresses), port 80 |
| Masscan | 1.6M pps (Linux bare metal) | ~1 hour | Standard configuration, no kernel bypass |
| ProRT-IP | 50K+ pps (stateful + detection) | ~20 hours | With 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
| Scanner | Capability | Database Size | Detection Rate | Notes |
|---|---|---|---|---|
| Masscan | Basic banner grabbing | 12 protocols | N/A (no detection) | HTTP, FTP, SSH, SSL, SMB, SMTP, IMAP4, POP3, Telnet, RDP, VNC, memcached |
| ProRT-IP | Comprehensive detection | 500+ services | 85-90% accuracy | 187 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
| Scanner | Capability | Method | Database | Accuracy |
|---|---|---|---|---|
| Masscan | None | N/A (architectural limit) | N/A | N/A |
| ProRT-IP | Full support | 16-probe sequence | 2,600+ signatures (Nmap DB) | Comparable to Nmap |
Why Masscan Lacks OS Fingerprinting: Stateless architecture prevents OS detection. OS fingerprinting requires:
- Multiple probe sequences (TCP options, window sizes, DF bit, ICMP responses)
- Correlated response analysis from same host
- 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 Type | Masscan | ProRT-IP | Notes |
|---|---|---|---|
| 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 | ✅ Yes | ProRT-IP firewall evasion |
| NULL Scan | ❌ No | ✅ Yes | ProRT-IP IDS evasion |
| Xmas Scan | ❌ No | ✅ Yes | ProRT-IP stealth scanning |
| ACK Scan | ❌ No | ✅ Yes | ProRT-IP firewall rule mapping |
| UDP Scan | ❌ No (planned, not implemented) | ✅ Yes | ProRT-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
| Feature | Masscan | ProRT-IP | Comparison |
|---|---|---|---|
| Stateless Scanning | ✅ Core architecture | ✅ 10M+ pps mode | Both 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-based | Masscan single integer, ProRT-IP full state |
| Sharding | ✅ Elegant (--shard 1/3) | ✅ Manual distribution | Masscan encryption-based, ProRT-IP flexible |
| Randomization | ✅ Encryption-based (perfect) | ✅ Cryptographically secure | Both prevent predictable patterns |
| Rate Limiting | ✅ --rate (0.1 to infinite) | ✅ -1.8% overhead (adaptive) | Masscan explicit rates, ProRT-IP intelligent |
| Output Formats | XML, JSON, grepable, binary, list | XML, JSON, text, grepable, database | ProRT-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:
-
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
-
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
-
Encryption-Based Randomization: Perfect 1-to-1 mapping
- Modified DES algorithm (modulus instead of XOR)
- Index
i(0 to N-1) encrypts to randomized valuex - Decode: address = x / port_count, port = x % port_count
- No collisions, no tracking, non-binary ranges supported
-
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
-
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:
-
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)
-
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
-
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
-
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)
-
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
| Operation | Masscan | ProRT-IP |
|---|---|---|
| SYN scan | masscan 10.0.0.0/24 -p80,443 | prtip -sS -p 80,443 10.0.0.0/24 |
| All ports | masscan 10.0.0.1 -p1-65535 | prtip -sS -p- 10.0.0.1 |
| Top ports | masscan 10.0.0.0/24 --top-ports 100 | prtip -sS --top-ports 100 10.0.0.0/24 |
| Specific ports | masscan 10.0.0.0/24 -p80,443,8080 | prtip -sS -p 80,443,8080 10.0.0.0/24 |
| UDP ports | ❌ Not implemented | prtip -sU -p 53,161 10.0.0.0/24 |
Performance Tuning
| Operation | Masscan | ProRT-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
| Operation | Masscan | ProRT-IP |
|---|---|---|
| Banner grabbing | --banners --source-ip 192.168.1.200 | Automatic 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
| Operation | Masscan | ProRT-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
| Operation | Masscan | ProRT-IP |
|---|---|---|
| Sharding | --shard 1/3 | Manual range splitting |
| Pause | Ctrl-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/3more 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
- ProRT-IP vs Nmap - Comparison with industry-standard comprehensive scanner
- ProRT-IP vs ZMap - Comparison with academic Internet measurement tool
- ProRT-IP vs RustScan - Comparison with modern Rust-based scanner
- ProRT-IP vs Naabu - Comparison with ProjectDiscovery Go scanner
- Scanner Comparison Overview - Executive comparison of all major scanners
- Performance Characteristics - Detailed performance analysis
- Benchmarking Guide - Benchmarking methodology and results
- Service Detection - ProRT-IP service detection capabilities
- OS Fingerprinting - ProRT-IP OS detection implementation
- Database Storage - Database features and queries
- TUI Architecture - Real-time terminal UI design