首页 > 解决方案 > 以系统用户身份运行 nmap 时子进程访问被拒绝错误

问题描述

当系统在 Windows 10 工作站上启动时,我正在尝试运行 python 脚本。当我作为具有管理权限的用户在不同的目录中启动它时,我的 python 脚本运行良好,但是当我在系统启动时从 C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup 文件夹中的 bat 文件运行它时我在我的日志中收到以下错误。

2018-11-13 04:43:58,913 - VP - Level 55 - nmap args: ['"C:\\Program Files (x86)\\Nmap\\nmap.exe"', '-oX', 'C:\\\\nmap\\NmapResults\\scan-192.168.1.5-20181113044358.xml', '-sS', '-n', '-p-', '--allports', '--scan-delay', '1ms', '-sU', '-sV', '--version-all', '192.168.1.5']

Traceback (most recent call last):

  File "secnmap\nmap_scanner.py", line 596, in <module>

    exit_code = main()

  File "secnmap\nmap_scanner.py", line 248, in main

    run_nmap(args, scan_options, host_data_list, use_service_name_check)

  File "secnmap\nmap_scanner.py", line 268, in run_nmap

    nmap_proc = subprocess.Popen(nmap_cmd_list, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

  File "C:\Python27\lib\subprocess.py", line 390, in __init__

    errread, errwrite)

  File "C:\Python27\lib\subprocess.py", line 640, in _execute_child

    startupinfo)

WindowsError: [Error 5] Access is denied

这是 .bat 文件的内容。

cd C:\\nmap_startup
python nmap_startup.py

我尝试使用完整的 nmap.exe 路径,如代码片段中所示以及普通的旧nmap. 无论哪种方式,我都会收到拒绝访问错误。我在 subprocess.py 中没有看到太多这会让我相信这是 python 代码的错误,所以我倾向于它是系统用户运行脚本的问题。如果有人不这么认为或有任何想法,我很想听听他们的意见。谢谢

编辑:我选择从 bat 文件运行,因为我的 python 版本是 32 位,并且从 C:\windows\system32 目录运行时遇到问题

标签: pythonwindowsnmap

解决方案


事实证明,nmap 的路径C:\Program Files (x86)\Nmap不包含在系统环境变量中。当脚本以系统用户身份运行时,它无法识别 nmap 的位置


推荐阅读