A high-performance, asynchronous TCP server written in Rust, tailored for bug bounty and penetration testing. IPCow supports multi-port listening, service discovery, and concurrent connection handling with advanced traffic analysis capabilities.
- Concurrent Port Handling: Efficiently manages multiple ports using Tokio's async runtime for dynamic bug bounty engagements.
- Smart Service Discovery: Automatically detects and logs services running on connected ports, streamlining reconnaissance efforts.
- Resource-Aware Threading: Dynamically scales threading based on system capabilities for optimal performance.
- Robust Connection Management:
- Configurable timeouts and retry mechanisms for testing service reliability.
- Graceful shutdown handling for uninterrupted workflows.
- Automatic cleanup of resources to ensure stability during intensive testing.
- Comprehensive Error Handling: Centralized error registry with deduplication to identify vulnerabilities efficiently.
- Built-in Web Interface: Serves real-time status pages for active connections and traffic analysis.
- Custom Payload Support: Ideal for fuzzing and traffic interception scenarios.
- Tokio Async Runtime Integration
- Multi-Port TCP Listening
- Resource-Aware Thread Scaling
- Smart Service Discovery System
- Port Service Identification
- Service Version Detection
- Protocol Recognition
- Custom Payload Framework
- Payload Template/Module System
- Injection Points
- Payload Generation API
- Basic Connection Handling
- Advanced Connection Features
- Configurable Timeouts
- Connection Retry Logic
- Graceful Shutdown System
- Resource Cleanup
- Connection Pool
- Error Registry
- Error Deduplication
- Vulnerability Correlation
- Error Pattern Analysis
- Core Web Server
- HTTP/HTTPS Support
- WebSocket Integration
- API Endpoints
- Real-time Features
- Live Connection Status
- Traffic Monitoring
- Alert System
- Analytics Dashboard
- Traffic Visualization
- Service Maps
- Vulnerability Reports
- Traffic Analysis
- Protocol Analysis
- Data Leakage Detection
- Authentication Weakness Scanner
- Fuzzing Framework
- Protocol Fuzzing
- Input Mutation
- State Machine Testing
- Port Monitoring
- Dynamic Range Adjustment
- Service State Tracking
- Port Status History
- High Concurrency Support
- Resource-Aware Scaling
- Performance Monitoring
- Latency Tracking
- Connection Metrics
- Resource Usage Stats
- Network Test Suite
- System Load Tests
- Benchmark Suite
- TCP Performance Tests
- UDP Performance Tests
- Concurrency Tests
ipcow
├── benches/
│ └── port_scanner_bench.rs # Performance benchmarking for port scanning
├── src/
│ ├── _dead-code/ # Legacy code for reference
│ │ ├── main copy.rs
│ │ ├── main_test.rs
│ │ ├── nix.unused.rs
│ │ └── Tokio.rs
│ ├── core/ # Core functionality
│ │ ├── discovery.rs # Service discovery implementation
│ │ ├── error.rs # Error handling
│ │ ├── handlers.rs # Connection handlers
│ │ ├── mod.rs # Core module definition
│ │ ├── network.rs # Network operations
│ │ ├── sockparse.rs # Socket parsing
│ │ └── types.rs # Type definitions
│ ├── modules/ # Feature modules
│ │ ├── mod.rs # Module management
│ │ ├── ping.rs # Ping functionality
│ │ └── web_server.rs # Web interface implementation
│ ├── utils/ # Helper utilities
│ │ ├── mod.rs # Utils module definition
│ │ └── helpers.rs # Common helper functions
│ ├── lib.rs # Library interface
│ └── main.rs # Application entry point
├── tests/
│ ├── helpers/ # Test utilities
│ │ └── mod.rs
│ ├── network_tests.rs # Network functionality tests
│ └── system_tests.rs # System integration tests
├── Cargo.toml # Project configuration
├── Cargo.lock # Dependency lock file
├── LICENSE # MPL 2.0 license
└── README.md # Project documentation
To get started with IPCow, clone the repository and build the project using Cargo:
git clone https://github.com/yourusername/ipcow.git
cd ipcow
cargo build --release
Run the IPCow server with:
cargo run
During startup, configure ports and addresses interactively:
-
Thread Multiplier:
Define the multiplier for system threads to maximize concurrency (e.g.,2
). -
IP Addresses:
Specify IPs for monitoring, including ranges:127.0.0.1 or 127.x.x.x or 127.0.0.1-127.252.255.255
-
Ports:
Enter individual ports or ranges for multi-port listening:8000-8010
- Logs detected services, traffic patterns, and potential vulnerabilities.
- Supports exporting logs for integration with external tools.
IPCow is optimized for scenarios requiring high concurrency and minimal latency:
- High Concurrency: Handles thousands of simultaneous connections for reconnaissance or fuzzing.
- Minimal Latency: Maintains quick response times even under heavy load.
- Resource Efficiency: Adjusts dynamically based on hardware capabilities.
Configuration | Average Latency |
---|---|
Single Port | ~100ms |
1000 Ports | ~115ms |
65,000 Ports | ~500ms |
- Traffic Analysis: Logs and inspects incoming and outgoing traffic for vulnerabilities, such as unencrypted data or weak authentication.
- Fuzzing and Stress Testing: Generate high volumes of malformed or edge-case requests to uncover vulnerabilities.
- Dynamic Port Monitoring: Easily adjust port ranges during testing for greater flexibility.
- Custom Payload Support: Inject and analyze custom payloads for penetration testing.
Ensure stability and functionality with the test suite:
cargo test
- Network Tests: Validate multi-port listening and concurrent connection handling.
- System Tests: Simulate high-concurrency scenarios to test system robustness.
-
Port Reconnaissance:
- Identify open ports and active services during the reconnaissance phase of bug bounty engagements.
-
Traffic Interception:
- Capture, inspect, and modify traffic to identify vulnerabilities, such as insecure protocols or misconfigured services.
-
Fuzzing and Stress Testing:
- Simulate high-traffic loads or send malformed requests to test the target system’s resilience.
-
Custom Payload Delivery:
- Deliver crafted payloads for testing specific vulnerabilities like buffer overflows or injection attacks.
Contributions are welcome! To help enhance bug bounty capabilities:
- Open an issue for feature suggestions or bug reports.
- Submit a pull request with:
- Proper formatting (
cargo fmt
). - Adequate test coverage for new features or scenarios.
- Benchmarks to validate performance improvements.
- Proper formatting (
Before submitting:
- Ensure your code passes all tests.
- Provide detailed documentation for new features.
- Tokio Async Runtime Integration
- Multi-Port TCP Listening
- Resource-Aware Threading
- Basic Connection Handling
- Smart Service Discovery
- Port Service Identification
- Service Version Detection
- Protocol Recognition
- Error Registry System
- Error Deduplication
- Pattern Analysis
- Traffic Analysis
- Protocol Analysis
- Data Leakage Detection
- Fuzzing Framework
- Protocol Fuzzing
- State Machine Testing
- Core Web Server
- HTTP/HTTPS API
- WebSocket Support
- Analytics Dashboard
- Real-time Monitoring
- Traffic Visualization
This project is licensed under the MPL License. See the LICENSE file for details.