nmap_stealth_scan
Perform stealth SYN scans to identify open ports on network targets while minimizing detection by security systems.
Instructions
Perform stealth scan (SYN scan) with minimal detection
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | ||
| ports | No | common | |
| timing | No |
Implementation Reference
- server.py:182-195 (handler)The handler function that executes the nmap stealth scan using SYN scan (-sS) with configurable timing template (-T), ports, and targets. It calls the shared run_nmap_command helper and formats the output.async def nmap_stealth_scan( targets: str, ports: str = "common", timing: int = 3 ) -> str: """Perform stealth scan (SYN scan) with minimal detection.""" args = ["-sS", f"-T{timing}", "-p", ports, targets] result = run_nmap_command(args) if result["success"]: return f"Stealth scan completed:\n\n{result['stdout']}" else: return f"Stealth scan failed:\n\n{result['stderr']}"
- server.py:178-181 (registration)FastMCP tool registration decorator specifying the tool name and description. Input schema is inferred from function type hints.@app.tool( name="nmap_stealth_scan", description="Perform stealth scan (SYN scan) with minimal detection" )
- server.py:38-91 (helper)Shared utility function used by all Nmap tools to execute subprocess nmap commands safely with timeout handling, logging, and result parsing.def run_nmap_command(args: List[str], timeout: int = 300) -> Dict[str, Any]: """ Execute an nmap command and return the results. Args: args: List of nmap command arguments timeout: Command timeout in seconds Returns: Dictionary containing command output, error, and exit code """ try: # Construct the full nmap command cmd = ["nmap"] + args logger.info(f"Executing nmap command: {' '.join(cmd)}") # Run the command with timeout result = subprocess.run( cmd, capture_output=True, text=True, timeout=timeout, check=False ) return { "stdout": result.stdout, "stderr": result.stderr, "exit_code": result.returncode, "success": result.returncode == 0 } except subprocess.TimeoutExpired: return { "stdout": "", "stderr": f"Command timed out after {timeout} seconds", "exit_code": -1, "success": False } except FileNotFoundError: return { "stdout": "", "stderr": "nmap command not found. Please ensure nmap is installed and in PATH", "exit_code": -1, "success": False } except Exception as e: return { "stdout": "", "stderr": f"Error executing nmap command: {str(e)}", "exit_code": -1, "success": False }