Skip to content

Latest commit

Β 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ Network Toolkit - Mini Security Testing Suite

A comprehensive Java-based network security toolkit combining features from industry-standard tools: nmap, Zabbix, Wireshark, and Nikto.

Status Java JavaFX License


⚑ Features

πŸ” Port Scanner (nmap-like)

  • TCP/UDP port scanning
  • Service detection and banner grabbing
  • OS fingerprinting
  • CIDR notation support
  • Multi-threaded scanning (100 concurrent threads)

πŸ“Š Network Monitor (Zabbix-like)

  • Real-time host availability monitoring
  • Performance metrics tracking
  • Configurable alert thresholds
  • Historical data with charts
  • SNMP support

πŸ“¦ Packet Analyzer (Wireshark-like)

  • Live packet capture (requires Npcap/WinPcap)
  • Protocol dissection (TCP, UDP, ICMP, HTTP, DNS, etc.)
  • BPF filter support
  • Hex dump viewer
  • Packet statistics

🧭 MIB Browser (SNMP-like)

  • SNMP v2c GET operations
  • SNMP WALK from root OID
  • Configurable community, host, port, and timeout
  • Basic MIB value browsing for network devices

🌐 Web Vulnerability Scanner (Nikto-like)

  • HTTP/HTTPS security testing
  • SSL/TLS certificate analysis
  • SQL injection detection
  • Directory enumeration
  • Header analysis
  • XSS detection

πŸ“ Additional Features

  • Scan History: View, filter, and export past results
  • Database: H2 embedded database for persistent storage
  • Export: Results to CSV, JSON, HTML formats
  • Configuration: Customizable settings for all modules
  • Logging: Comprehensive logging with rotation

πŸš€ Quick Start

Prerequisites

  • Java 21 (JDK) installed
  • Eclipse IDE (recommended) or Maven
  • Npcap (for packet capture on Windows)

Running in Eclipse

  1. Open Eclipse and import the project
  2. Update Maven dependencies:
    Right-click project β†’ Maven β†’ Update Project β†’ Force Update
    
  3. Run the application:
    Right-click MainApplication.java β†’ Run As β†’ Java Application
    
  4. Accept the legal disclaimer
  5. Start using the toolkit

πŸ“– See QUICKSTART.md for detailed instructions.

Running from Command Line

# Using Maven
mvn javafx:run

# Or use the batch script (Windows)
run.bat

πŸ“ Project Structure

Network_Toolkit/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ com/networktoolkit/
β”‚   β”‚   β”œβ”€β”€ main/              # Application entry point
β”‚   β”‚   β”œβ”€β”€ model/             # Data models
β”‚   β”‚   β”‚   β”œβ”€β”€ common/        # Shared models (Host, Port, Severity, etc.)
β”‚   β”‚   β”‚   β”œβ”€β”€ portscan/      # Port scan results
β”‚   β”‚   β”‚   β”œβ”€β”€ monitor/       # Monitoring metrics
β”‚   β”‚   β”‚   β”œβ”€β”€ packet/        # Packet data
β”‚   β”‚   β”‚   └── webscan/       # Vulnerability findings
β”‚   β”‚   β”œβ”€β”€ service/           # Business logic
β”‚   β”‚   β”‚   β”œβ”€β”€ common/        # Infrastructure (DB, Config, etc.)
β”‚   β”‚   β”‚   β”œβ”€β”€ portscan/      # Port scanning engine
β”‚   β”‚   β”‚   β”œβ”€β”€ monitor/       # Monitoring service
β”‚   β”‚   β”‚   β”œβ”€β”€ packet/        # Packet capture
β”‚   β”‚   β”‚   └── webscan/       # Web security scanner
β”‚   β”‚   β”œβ”€β”€ controller/        # JavaFX controllers
β”‚   β”‚   β”œβ”€β”€ view/              # FXML layouts and CSS
β”‚   β”‚   β”œβ”€β”€ util/              # Utility classes
β”‚   β”‚   β”œβ”€β”€ dao/               # Database access
β”‚   β”‚   └── exception/         # Custom exceptions
β”‚   β”œβ”€β”€ module-info.java       # Java module configuration
β”‚   └── logback.xml            # Logging configuration
β”œβ”€β”€ pom.xml                    # Maven dependencies
β”œβ”€β”€ QUICKSTART.md              # Quick start guide
β”œβ”€β”€ RUNNING.md                 # Detailed running/debugging guide
└── README.md                  # This file

πŸ› οΈ Technology Stack

Core

  • Java 21 - Modern Java with records, pattern matching, and virtual threads
  • JavaFX 21 - Modern UI framework
  • Maven - Dependency management and build tool

Libraries

  • Pcap4J - Packet capture and analysis
  • SNMP4J - SNMP monitoring
  • OkHttp - HTTP client for web scanning
  • Jsoup - HTML parsing
  • H2 Database - Embedded SQL database
  • Jackson - JSON processing
  • SLF4J + Logback - Logging framework
  • JFreeChart - Charts and graphs
  • Apache Commons Net - Network protocols
  • Netty - Advanced protocol handling

πŸ“Š Implementation Phases

Phase Module Status
βœ… 1 Foundation COMPLETE
βœ… 2 Port Scanner BASIC COMPLETE
βœ… 3 Network Monitor BASIC COMPLETE
βœ… 4 Packet Analyzer BASIC COMPLETE
βœ… 5 Web Scanner BASIC COMPLETE
⏳ 6 Integration & Polish Pending
⏳ 7 Testing & Documentation Pending

Phase 1: Foundation βœ…

  • Maven project setup with all dependencies
  • Java module system configuration
  • Infrastructure services:
    • DatabaseService (H2 with 5 tables)
    • ConfigurationService (JSON-based)
    • ThreadPoolManager (4 specialized pools)
  • Utility classes:
    • NetworkUtils (IP validation, CIDR parsing, port range parsing)
    • ValidationUtils (Input sanitization, injection prevention)
  • Base models: Host, Port, ScanResult, Severity
  • JavaFX application skeleton with 5 tabs
  • Logging configuration
  • Legal disclaimer

βš–οΈ Legal & Ethical Use

⚠️ IMPORTANT: For Authorized Security Testing Only

This tool is designed for:

  • βœ… Testing systems you own
  • βœ… Authorized penetration testing with written permission
  • βœ… Educational purposes in controlled environments
  • βœ… Security research on designated test systems

UNAUTHORIZED use of this tool may be ILLEGAL and could result in:

  • Criminal prosecution
  • Civil liability
  • Network/service disruption
  • Violation of computer fraud laws

Recommended Test Targets

  • localhost / 127.0.0.1 - Your own machine
  • scanme.nmap.org - Official nmap test server (port scanning only)
  • DVWA (Damn Vulnerable Web Application) - Web security testing
  • Your own virtual machines or lab environments

πŸ”’ Security Features

  • Input Validation: All user inputs are sanitized to prevent injection attacks
  • SQL Injection Prevention: PreparedStatements used throughout
  • Path Traversal Protection: File paths validated
  • Command Injection Prevention: Shell command inputs sanitized
  • Rate Limiting: Prevents accidental denial-of-service
  • Audit Logging: All scan activities logged for accountability

πŸ—„οΈ Database Schema

The application uses H2 embedded database with the following tables:

  • hosts - Network hosts (IP, hostname, first/last seen)
  • scan_results - Master table for all scan types
  • port_scan_details - Specific port scan findings
  • alerts - Monitoring alerts
  • configuration - Application settings

Location: ~/.networktoolkit/data.mv.db


πŸ“ Configuration

Configuration is stored in JSON format at: ~/.networktoolkit/config.json

Default Settings

{
  "portScan": {
    "defaultPortRange": "1-1024",
    "timeoutMs": 2000,
    "maxThreads": 100,
    "enableServiceDetection": true
  },
  "monitoring": {
    "defaultCheckIntervalSeconds": 60,
    "alertThresholds": {
      "responseTimeMs": 1000,
      "consecutiveFailures": 3
    }
  },
  "packetCapture": {
    "maxPacketsInMemory": 10000,
    "promiscuousMode": true
  },
  "webScan": {
    "userAgent": "NetworkToolkit/1.0",
    "timeoutSeconds": 30
  },
  "database": {
    "retentionDays": 30
  },
  "ui": {
    "theme": "dark",
    "fontSize": 14
  }
}

πŸ“– Documentation

  • QUICKSTART.md - Get started in 5 minutes
  • RUNNING.md - Comprehensive running and debugging guide
  • Implementation Plan - See .claude/plans/wild-finding-kitten.md

πŸ§ͺ Testing

Recommended Test Workflow

  1. Port Scanning:

    Target: localhost (127.0.0.1)
    Ports: 1-1024
    Expected: Find open ports (80, 443, etc. if running web server)
    
  2. Network Monitoring:

    Targets: localhost, google.com
    Interval: 30 seconds
    Expected: Track availability and response times
    
  3. Packet Capture:

    Interface: Primary network adapter
    Filter: tcp port 80
    Expected: Capture HTTP traffic while browsing
    
  4. Web Scanning:

    Target: http://localhost (DVWA installed)
    Expected: Detect SQL injection vulnerabilities
    

πŸ› Debugging

Enable Debug Logging

Edit src/logback.xml:

<root level="DEBUG">  <!-- Change from INFO -->
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="FILE" />
</root>

Log Locations

  • Application Log: ~/.networktoolkit/logs/application.log
  • Scan Log: ~/.networktoolkit/logs/scans.log

View Logs in Real-time

# PowerShell
Get-Content "$env:USERPROFILE\.networktoolkit\logs\application.log" -Tail 50 -Wait

# Bash
tail -f ~/.networktoolkit/logs/application.log

🀝 Contributing

This is an educational project. Future enhancements could include:

  • SYN scan support (requires raw sockets)
  • Advanced OS fingerprinting
  • More web vulnerability tests (XSS, CSRF, etc.)
  • SSL/TLS cipher suite analysis
  • Report generation (PDF export)
  • Dark/light theme toggle
  • Multi-language support

πŸ“œ License

Educational use only. This tool is provided "as is" without warranty of any kind.

Β© 2026 - Network Toolkit


πŸ™ Acknowledgments

Inspired by and combines concepts from:

  • nmap - Network exploration and security auditing
  • Zabbix - Enterprise-class monitoring
  • Wireshark - Network protocol analyzer
  • Nikto - Web server scanner

Built with:

  • OpenJFX, Pcap4J, H2 Database, Jackson, SLF4J, and many other open-source libraries

πŸ“ž Support

  • Check logs in ~/.networktoolkit/logs/
  • Review RUNNING.md for troubleshooting
  • Verify all prerequisites are installed

Current Version: 1.0.0 Status: Phase 1 Complete - Ready for Phase 2 Last Updated: March 21, 2026

About

Network Toolkit - Mini Security Testing Suite

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages