Ошибка доступа к подпроцессу при запуске nmap от имени пользователя системы - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь запустить скрипт python при загрузке системы на рабочей станции Windows 10.Мой скрипт на python работает нормально, когда я запускаю его в другом каталоге как пользователь с правами администратора, но когда я запускаю его из файла bat в папке C: \ Windows \ System32 \ GroupPolicy \ Machine \ Scripts \ Startup при загрузке системы Iполучить следующую ошибку в моих журналах.

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

1 Ответ

0 голосов
/ 13 ноября 2018

Оказывается, что путь к nmap, C:\Program Files (x86)\Nmap, не был включен в системные переменные окружения. Когда скрипт запускался как системный пользователь, он не распознавал местоположение nmap

...