nmap_stealth_scan
Conduct a stealth SYN scan to identify open ports on specified targets with minimal detection risks. Configure targets, ports, and timing for precise and discreet network reconnaissance.
Instructions
Perform stealth scan (SYN scan) with minimal detection
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ports | No | common | |
| targets | Yes | ||
| timing | No |
Implementation Reference
- server.py:178-181 (registration)Registration of the nmap_stealth_scan tool using the @app.tool decorator, specifying name and description.@app.tool( name="nmap_stealth_scan", description="Perform stealth scan (SYN scan) with minimal detection" )
- server.py:182-195 (handler)Handler function that executes the stealth Nmap scan by constructing SYN scan arguments with timing template, running via run_nmap_command helper, and returning formatted results.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:38-91 (helper)Shared helper function used by all Nmap tools, including nmap_stealth_scan, to execute subprocess nmap commands with timeout handling and error management.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 }