Примеры использования
Прежде чем перейти к описанию технической реализации нового метода, приведем несколько примеров, демонстрирующих примеры его использования. Для включения механизма определения версий необходимо указать опцию -sV в командной строке при запуске Nmap. Кроме этого, Вы можете использовать новую опцию '-A', которая включает механизм определения версий и определение ОС (-O). Пример результатов сканирования с использованием этой опции приведен ниже:
# nmap -A -T4 -F www.microsoft.com
Starting nmap 3.40PVT16 ( http://www.insecure.org/nmap/ ) at 2003-09-07 01:45 PDT
Interesting ports on
80.67.68.30:
(The 1208 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE VERSION
22/tcp open ssh Akamai-I SSH (protocol 1.5)
80/tcp open http AkamiGHost (Akamai's HTTP Acceleration/Mirror
service)
443/tcp open ssl/http AkamiGHost (Akamai's HTTP Acceleration/Mirror
service)
Device type: general
purpose
Running: Linux 2.1.X|2.2.X
OS details: Linux 2.1.19 - 2.2.25
Uptime 22.924 days (since Fri Aug 15 03:34:27 2003)
Nmap run completed
-- 1 IP
address (1 host up) scanned in 19.223 seconds
Этот пример демонстрирует несколько весьма любопытных вещей. Прежде всего, мы с удивлением обнаруживаем, что сайт www.microsoft.com размещен на сервере с операционной системой Akami Linux. Что касается определения типов и версий служб – тоже масса интересного. Например, порт 443 определен как «ssl/http». Это означает, что подсистема определения служб вначале обнаружила наличие на этом порту протокола SSL, затем загрузила OpenSSL, повторно провела необходимые тесты через SSL и определила наличие веб-сервера AkamiGHost, спрятанного «за» SSL. Опция -T4 указывает Nmap использовать более агрессивную временную политику сканирования (с меньшими временными затратами), а опция -F включает режим сканирования только тех портов, которые перечислены в файле nmap-services.
А вот более длинный, но и более интересный пример:
./nmap -A -T4 localhost
Starting nmap 3.40PVT16 ( http://www.insecure.org/nmap/ ) at 2003-09-07 02:56 PDT
Interesting ports on
felix
(127.0.0.1):
(The 1640 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE VERSION
21/tcp open ftp WU-FTPD wu-2.6.1-20
22/tcp open ssh OpenSSH 3.1p1 (protocol 1.99)
53/tcp open domain ISC Bind 9.2.1
79/tcp open finger Linux fingerd
111/tcp open rpcbind 2 (rpc #100000)
443/tcp open ssl/http Apache httpd 2.0.39 ((Unix) mod_perl/1.99_04-dev
[cut])
515/tcp open printer
631/tcp open ipp CUPS 1.1
953/tcp open rndc?
5000/tcp open ssl/ftp WU-FTPD wu-2.6.1-20
5001/tcp open ssl/ssh OpenSSH 3.1p1 (protocol 1.99)
5002/tcp open ssl/domain ISC Bind 9.2.1
5003/tcp open ssl/finger Linux fingerd
6000/tcp open X11 (access denied)
8000/tcp open http-proxy Junkbuster webproxy
8080/tcp open http Apache httpd 2.0.39 ((Unix) mod_perl/1.99_04-dev
[cut])
8081/tcp open http Apache httpd 2.0.39 ((Unix) mod_perl/1.99_04-dev
[cut])
Device type: general
purpose
Running: Linux 2.4.X|2.5.X
OS details: Linux Kernel 2.4.0 - 2.5.20
Uptime 8.653 days (since Fri Aug 29 11:16:40 2003)
Nmap run completed
-- 1 IP
address (1 host up) scanned in 42.494 seconds
В этом примере видно, как Nmap использует методику лобовой атаки на службу RPC, причем использует ее весьма успешно, поскольку в результатах сканирования порта с номером 111 указано, что порт этот закреплен за rpcbind версии 2. На две строки ниже указан порт 515, а служба, использующая его, определена как «printer», однако колонка с описанием версии службы пуста. Это означает, что Nmap определил название службы, однако больше ничего определить не удалось. С другой стороны, тестирование порта 953 дало результат, указанный как «rndc?». Вопросительный знак говорит о том, что Nmap не смог определить названия службы при помощи подсистемы определения версий. Тем не менее, указана служба rndc, поскольку порт с номером 953 зарегистрирован на эту службу в файле nmap-services. К сожалению, ни один тест подсистемы определения версий не дал положительного результата от службы rndc. Если бы результаты были, то Nmap вывел бы «отпечаток» службы и URL, по которому его необходимо отправить на специальное исследование.
Стоит отметить, что некоторые службы предоставляют гораздо больше информации, нежели просто номер версии. В примере выше видно, что X11 не принимает входящих подключений, виден номер протокола SSH и номера версий модулей веб-сервера Apache (нам пришлось вырезать большую часть описаний этих модулей, чтобы статья не занимала много места).