Skip to content

surreal70/cenmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NMAP Terminal GUI

Python Version License: MIT Version

A professional curses-based terminal interface for nmap, providing a user-friendly alternative to Zenmap that runs entirely in the terminal. This tool brings the power of nmap to system administrators and security professionals who prefer command-line environments.

πŸš€ Features

  • Interactive Terminal Interface: Full curses-based GUI that works in any terminal
  • Multiple Scan Types: Pre-configured scan profiles including quick scans, intense scans, UDP scans, and more
  • Real-time Progress Tracking: Visual progress bar with elapsed time and host counting
  • Live Output Display: Watch scan progress in real-time with live output streaming
  • Formatted Results: Clean, color-coded results with toggle between formatted and raw output
  • Scan History: Keep track of previous scans with timestamps and commands
  • Easy Navigation: Intuitive keyboard navigation with arrow keys and shortcuts
  • Target Flexibility: Support for single IPs, ranges, subnets, and hostnames
  • Cross-Platform: Works on Linux, macOS, and other Unix-like systems

πŸ“‹ Requirements

  • Python: 3.8 or higher
  • nmap: Installed and available in PATH
  • Terminal: Curses-compatible terminal (most Unix terminals)
  • Minimum Resolution: 80x40 characters
  • Operating System: Linux, macOS, or other Unix-like systems

πŸ”§ Installation

Quick Installation

# Clone the repository
git clone https://github.com/surreal70/nmap-terminal-gui.git
cd nmap-terminal-gui

# Run the installation script
chmod +x install.sh
./install.sh

Manual Installation

  1. Install nmap (if not already installed):

    # Ubuntu/Debian
    sudo apt-get install nmap
    
    # CentOS/RHEL/Fedora
    sudo dnf install nmap
    
    # macOS (with Homebrew)
    brew install nmap
  2. Set up Python environment:

    # Create virtual environment (recommended)
    python3 -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
    # Install dependencies
    pip install -r requirements.txt
  3. Install the package:

    # Development installation
    pip install -e .
    
    # Or direct installation
    pip install .

🎯 Usage

Basic Usage

# Run the application
python3 nmap_gui.py

# Or if installed via pip
nmap-gui

Navigation Controls

  • Arrow Keys: Navigate menus and scroll through results
  • Enter: Select menu items or start scans
  • Tab: Switch between target input and scan type selection
  • ESC: Go back to previous screen
  • q: Quit application or stop running scan
  • r: Toggle between formatted and raw results (in results view)

Scan Types

The application includes several pre-configured scan types:

Scan Type Description nmap Options
Quick scan Fast scan of common ports -T4 -F
Intense scan Comprehensive scan with OS detection -T4 -A -v
Intense scan plus UDP TCP and UDP scan -sS -sU -T4 -A -v
Intense scan, all TCP ports Full TCP port range -p 1-65535 -T4 -A -v
Ping scan Host discovery only -sn
TCP SYN scan Stealth TCP scan -sS
TCP connect scan Full TCP connection -sT
UDP scan UDP port scan -sU
OS detection Operating system detection -O
Service version detection Service and version detection -sV

Target Examples

  • Single IP: 192.168.1.1
  • IP range: 192.168.1.1-254
  • Subnet: 192.168.1.0/24
  • Hostname: example.com
  • Multiple targets: 192.168.1.1 192.168.1.5 example.com

πŸ“Š Interface Overview

The application provides several main screens:

  1. Main Menu: Navigate between different functions
  2. Scan Configuration: Set up targets and scan types
  3. Real-time Scan View: Watch scans progress with live updates
  4. Results Display: View formatted or raw scan results
  5. Scan History: Review previous scans
  6. Help System: Built-in documentation

πŸ› οΈ Development

Setting up Development Environment

# Clone the repository
git clone https://github.com/surreal70/nmap-terminal-gui.git
cd nmap-terminal-gui

# Create virtual environment
python3 -m venv venv
source venv/bin/activate

# Install development dependencies
pip install -r requirements.txt
pip install -e .

# Install development tools (optional)
pip install black isort flake8

Code Standards

This project follows Python development best practices:

  • PEP 8: Code style compliance
  • Type Hints: Where applicable
  • Documentation: Comprehensive docstrings
  • Error Handling: Robust exception handling
  • Virtual Environments: Isolated dependencies

Running Tests

# Run the application in development mode
python3 nmap_gui.py

# Check code style
flake8 nmap_gui.py

# Format code (if black is installed)
black nmap_gui.py

πŸ”’ Security Notes

  • This tool requires the same permissions as nmap
  • Some scan types may require root privileges (sudo)
  • Be responsible and only scan networks you own or have permission to test
  • Respect rate limiting and avoid overwhelming target systems
  • Always comply with local laws and regulations

πŸ“ Version History

Version 0.2.0 (2025-01-01)

  • ✨ Added real-time progress indicator with visual progress bar
  • ✨ Enhanced elapsed time tracking during scans
  • ✨ Improved scan result formatting with color coding
  • ✨ Added toggle between formatted and raw output
  • ✨ Increased minimum terminal resolution to 80x40
  • πŸ”§ Applied Python development framework standards
  • πŸ”§ Added proper project structure and packaging
  • πŸ“„ Added MIT license and copyright headers
  • πŸ“š Comprehensive README documentation

Version 0.1.0 (2024-12-30)

  • πŸŽ‰ Initial release
  • ✨ Basic curses-based nmap interface
  • ✨ Multiple scan type support
  • ✨ Real-time output display
  • ✨ Scan history tracking
  • ✨ Interactive menu system

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Andreas Huemmer

πŸ™ Acknowledgments

  • The nmap development team for creating the powerful network scanning tool
  • The Python curses library maintainers
  • The open-source community for inspiration and feedback

πŸ“ž Support

If you encounter any issues or have questions:

  1. Check the Issues page
  2. Create a new issue with detailed information
  3. Contact the author directly for urgent matters

Note: This tool is for educational and authorized testing purposes only. Always ensure you have proper authorization before scanning networks.

About

A curses interface for nmap

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors