Я заметил, что когда Nmap докеризуется, оно дает неверные результаты ОС. Я пробовал различные предварительно созданные docker изображения, а также одно, которое я создал сам, и все они показывают одинаковые результаты.
Вот несколько готовых изображений, которые я пробовал:
https://hub.docker.com/r/instrumentisto/nmap
https://hub.docker.com/r/uzyexe/nmap/
Я выполнил ту же команду Nmap с этими изображениями и использую мою локально установленную версию Nmap, и вот результаты (все изображения используют Nmap 7.80):
$ nmap -sV -O 192.168.1.1
------(locally installed nmap result - correct):
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.8 - 2.6.30
Network Distance: 1 hop
Service Info: OS: Linux; Device: broadband router; CPE: cpe:/o:linux:linux_kernel
------(all docker image nmap results - incorrect):
OS CPE: cpe:/h:hp:jetdirect_170x cpe:/h:hp:inkjet_3000
Aggressive OS guesses: HP 170X print server or Inkjet 3000 printer (85%), HP LaserJet 4000 printer (85%), HP LaserJet 4250 printer (85%)
No exact OS matches for host (test conditions non-ideal).
Service Info: OS: Linux; Device: broadband router; CPE: cpe:/o:linux:linux_kernel
Что мне интересно, так это то, что Service Info
на самом деле правильно во время сканирования, но больше ничего не верно.
Я пытаюсь выяснить, есть ли параметр / флаг, который я пропускаю при выполнении команды docker. Вот что я попробовал:
- Установка docker сети на
host
(без изменений в результате) - Установка docker сети на
bridge
(нет изменение в результате) - Не задано никаких настроек
network
(без изменений в результате)
Мне действительно нужно, чтобы Nmap работал в контейнере docker, потому что он интегрирован в веб-приложение rails, которое я создаю с использованием гема ruby-nmap
.
Спасибо!