@echo off REM === Interactive Nmap Scanner Tool === setlocal enabledelayedexpansion echo ======================================== echo Nmap Network Scanner Tool echo ======================================== echo. REM Check if Nmap is installed where nmap >nul 2>nul if %ERRORLEVEL% NEQ 0 ( echo Nmap is not installed on this system. echo. set /p INSTALL="Do you want to install Nmap? (Y/N): " if /i "!INSTALL!"=="Y" ( echo. echo Opening Nmap download page in your browser... echo Please download and install Nmap from: https://nmap.org/download.html echo After installation, restart this script. start https://nmap.org/download.html echo. pause exit /b 0 ) else ( echo. echo Nmap installation cancelled. Exiting... pause exit /b 1 ) ) echo Nmap is installed! echo. REM Prompt for target set /p TARGET="Enter target IP address or domain: " REM Validate input if "%TARGET%"=="" ( echo. echo ERROR: No target specified! pause exit /b 1 ) REM Display scan options :MENU echo. echo ======================================== echo Select Scan Type: echo ======================================== echo. echo [1] Port Scan echo [2] Host Discovery (Ping Scan) echo [3] OS Detection echo [4] Stealth Scan (SYN Scan) echo [5] Aggressive Scan echo [6] UDP Scan echo [7] Script Scan (NSE) echo [8] Save Results to File echo [9] Custom Command echo. echo [0] Exit echo. set /p SCANTYPE="Select scan type (0-9): " if "%SCANTYPE%"=="0" ( echo. echo Exiting... exit /b 0 ) echo. echo ======================================== REM Execute scan based on selection if "%SCANTYPE%"=="1" goto PORT_SCAN if "%SCANTYPE%"=="2" goto HOST_DISCOVERY if "%SCANTYPE%"=="3" goto OS_DETECTION if "%SCANTYPE%"=="4" goto STEALTH_SCAN if "%SCANTYPE%"=="5" goto AGGRESSIVE_SCAN if "%SCANTYPE%"=="6" goto UDP_SCAN if "%SCANTYPE%"=="7" goto SCRIPT_SCAN if "%SCANTYPE%"=="8" goto SAVE_RESULTS if "%SCANTYPE%"=="9" goto CUSTOM_COMMAND echo ERROR: Invalid selection! Please choose 0-9. goto MENU :PORT_SCAN echo PORT SCAN OPTIONS echo ======================================== echo [1] Scan top 1000 common ports (fast) echo [2] Scan all 65535 ports (slow) echo [3] Scan specific port echo [4] Scan port range echo [5] Fast scan (top 100 ports) echo. set /p PORTSCAN="Select port scan option: " echo. if "%PORTSCAN%"=="1" ( echo Command: nmap %TARGET% echo. nmap %TARGET% goto SCAN_DONE ) if "%PORTSCAN%"=="2" ( echo Command: nmap -p- %TARGET% echo. nmap -p- %TARGET% goto SCAN_DONE ) if "%PORTSCAN%"=="3" ( set /p PORT="Enter port number: " echo Command: nmap -p !PORT! %TARGET% echo. nmap -p !PORT! %TARGET% goto SCAN_DONE ) if "%PORTSCAN%"=="4" ( set /p PORTRANGE="Enter port range (e.g., 1-1000): " echo Command: nmap -p !PORTRANGE! %TARGET% echo. nmap -p !PORTRANGE! %TARGET% goto SCAN_DONE ) if "%PORTSCAN%"=="5" ( echo Command: nmap -F %TARGET% echo. nmap -F %TARGET% goto SCAN_DONE ) echo Invalid option! goto MENU :HOST_DISCOVERY echo HOST DISCOVERY OPTIONS echo ======================================== echo [1] Ping scan only (check if host is up) echo [2] No ping (assume host is up and scan) echo [3] TCP SYN discovery on port 80 echo [4] ICMP echo discovery echo. set /p HOSTSCAN="Select host discovery option: " echo. if "%HOSTSCAN%"=="1" ( echo Command: nmap -sn %TARGET% echo. nmap -sn %TARGET% goto SCAN_DONE ) if "%HOSTSCAN%"=="2" ( echo Command: nmap -Pn %TARGET% echo. nmap -Pn %TARGET% goto SCAN_DONE ) if "%HOSTSCAN%"=="3" ( echo Command: nmap -PS80 %TARGET% echo. nmap -PS80 %TARGET% goto SCAN_DONE ) if "%HOSTSCAN%"=="4" ( echo Command: nmap -PE %TARGET% echo. nmap -PE %TARGET% goto SCAN_DONE ) echo Invalid option! goto MENU :OS_DETECTION echo OS DETECTION OPTIONS echo ======================================== echo [1] Basic OS detection echo [2] Aggressive OS detection with guessing echo [3] OS detection with version info echo. set /p OSSCAN="Select OS detection option: " echo. if "%OSSCAN%"=="1" ( echo Command: nmap -O %TARGET% echo. nmap -O %TARGET% goto SCAN_DONE ) if "%OSSCAN%"=="2" ( echo Command: nmap -O --osscan-guess %TARGET% echo. nmap -O --osscan-guess %TARGET% goto SCAN_DONE ) if "%OSSCAN%"=="3" ( echo Command: nmap -A %TARGET% echo. nmap -A %TARGET% goto SCAN_DONE ) echo Invalid option! goto MENU :STEALTH_SCAN echo STEALTH SCAN OPTIONS (SYN Scan) echo ======================================== echo [1] Basic SYN scan (top 1000 ports) echo [2] SYN scan all ports echo [3] SYN scan with timing (fast T4) echo [4] SYN scan with timing (slow/stealth T2) echo. set /p SYNSCAN="Select SYN scan option: " echo. if "%SYNSCAN%"=="1" ( echo Command: nmap -sS %TARGET% echo. nmap -sS %TARGET% goto SCAN_DONE ) if "%SYNSCAN%"=="2" ( echo Command: nmap -sS -p- %TARGET% echo. nmap -sS -p- %TARGET% goto SCAN_DONE ) if "%SYNSCAN%"=="3" ( echo Command: nmap -sS -T4 %TARGET% echo. nmap -sS -T4 %TARGET% goto SCAN_DONE ) if "%SYNSCAN%"=="4" ( echo Command: nmap -sS -T2 %TARGET% echo. nmap -sS -T2 %TARGET% goto SCAN_DONE ) echo Invalid option! goto MENU :AGGRESSIVE_SCAN echo AGGRESSIVE SCAN OPTIONS echo ======================================== echo [1] Full aggressive scan (OS, scripts, traceroute) echo [2] Aggressive with fast timing (T4) echo [3] Aggressive all ports echo. set /p AGGSCAN="Select aggressive scan option: " echo. if "%AGGSCAN%"=="1" ( echo Command: nmap -A %TARGET% echo. nmap -A %TARGET% goto SCAN_DONE ) if "%AGGSCAN%"=="2" ( echo Command: nmap -A -T4 %TARGET% echo. nmap -A -T4 %TARGET% goto SCAN_DONE ) if "%AGGSCAN%"=="3" ( echo Command: nmap -A -p- %TARGET% echo. nmap -A -p- %TARGET% goto SCAN_DONE ) echo Invalid option! goto MENU :UDP_SCAN echo UDP SCAN OPTIONS echo ======================================== echo [1] UDP scan top 1000 ports echo [2] UDP scan specific port echo [3] UDP scan port range echo [4] Combined TCP SYN + UDP scan echo. set /p UDPSCAN="Select UDP scan option: " echo. if "%UDPSCAN%"=="1" ( echo Command: nmap -sU %TARGET% echo. nmap -sU %TARGET% goto SCAN_DONE ) if "%UDPSCAN%"=="2" ( set /p UDPPORT="Enter UDP port number: " echo Command: nmap -sU -p !UDPPORT! %TARGET% echo. nmap -sU -p !UDPPORT! %TARGET% goto SCAN_DONE ) if "%UDPSCAN%"=="3" ( set /p UDPRANGE="Enter UDP port range (e.g., 1-100): " echo Command: nmap -sU -p !UDPRANGE! %TARGET% echo. nmap -sU -p !UDPRANGE! %TARGET% goto SCAN_DONE ) if "%UDPSCAN%"=="4" ( echo Command: nmap -sS -sU -T4 %TARGET% echo. nmap -sS -sU -T4 %TARGET% goto SCAN_DONE ) echo Invalid option! goto MENU :SCRIPT_SCAN echo SCRIPT SCAN OPTIONS (NSE) echo ======================================== echo [1] Default scripts echo [2] Vulnerability detection scripts echo [3] All safe scripts echo [4] Specific script category echo. set /p SCRIPTSCAN="Select script scan option: " echo. if "%SCRIPTSCAN%"=="1" ( echo Command: nmap -sC %TARGET% echo. nmap -sC %TARGET% goto SCAN_DONE ) if "%SCRIPTSCAN%"=="2" ( echo Command: nmap --script vuln %TARGET% echo. nmap --script vuln %TARGET% goto SCAN_DONE ) if "%SCRIPTSCAN%"=="3" ( echo Command: nmap --script safe %TARGET% echo. nmap --script safe %TARGET% goto SCAN_DONE ) if "%SCRIPTSCAN%"=="4" ( echo Available categories: auth, broadcast, brute, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, vuln set /p SCRIPTCAT="Enter script category: " echo Command: nmap --script !SCRIPTCAT! %TARGET% echo. nmap --script !SCRIPTCAT! %TARGET% goto SCAN_DONE ) echo Invalid option! goto MENU :SAVE_RESULTS echo SAVE RESULTS OPTIONS echo ======================================== echo [1] Save as text file echo [2] Save as XML file echo [3] Save as grepable format echo [4] Save all formats echo. set /p SAVESCAN="Select save format: " echo. set FILENAME=nmap_scan_%TARGET%_%date:~-4,4%%date:~-7,2%%date:~-10,2%_%time:~0,2%%time:~3,2%%time:~6,2% set FILENAME=%FILENAME: =0% if "%SAVESCAN%"=="1" ( echo Command: nmap -oN %FILENAME%.txt %TARGET% echo. nmap -oN %FILENAME%.txt %TARGET% echo Output saved to: %FILENAME%.txt goto SCAN_DONE ) if "%SAVESCAN%"=="2" ( echo Command: nmap -oX %FILENAME%.xml %TARGET% echo. nmap -oX %FILENAME%.xml %TARGET% echo Output saved to: %FILENAME%.xml goto SCAN_DONE ) if "%SAVESCAN%"=="3" ( echo Command: nmap -oG %FILENAME%.gnmap %TARGET% echo. nmap -oG %FILENAME%.gnmap %TARGET% echo Output saved to: %FILENAME%.gnmap goto SCAN_DONE ) if "%SAVESCAN%"=="4" ( echo Command: nmap -oA %FILENAME% %TARGET% echo. nmap -oA %FILENAME% %TARGET% echo Output saved to: %FILENAME%.* (all formats) goto SCAN_DONE ) echo Invalid option! goto MENU :CUSTOM_COMMAND set /p CUSTOM="Enter custom Nmap parameters (without 'nmap' and target): " echo. echo Command: nmap %CUSTOM% %TARGET% echo. nmap %CUSTOM% %TARGET% goto SCAN_DONE :SCAN_DONE echo. echo ======================================== echo Scan completed! echo ======================================== echo. set /p CONTINUE="Do you want to run another scan? (Y/N): " if /i "%CONTINUE%"=="Y" goto MENU echo. echo Exiting... pause