Объединение определения ОС и служб в Nmap

NmapNmapBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабе мы узнаем, как комбинировать обнаружение операционной системы и сервисов в Nmap, чтобы собрать полную информацию о целевой машине. Мы будем использовать параметры -O и -sV Nmap для идентификации ОС и версий сервисов, работающих на целевом IP-адресе, например, 192.168.1.1.

В лабе приведены шаги по проведению комбинированных сканирований, указанию целевых портов, добавлению подробности, сохранению результатов в файл и анализу вывода в терминале Xfce. Мы также сравним результаты комбинированных сканирований с результатами отдельных сканирований, чтобы понять преимущества этого подхода. Не забывайте сканировать только те сети, которые вы владеете или у которых есть разрешение на сканирование.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/output_formats("Output Formats") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/host_discovery("Host Discovery Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/os_version_detection("OS and Version Detection") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/output_formats -.-> lab-547089{{"Объединение определения ОС и служб в Nmap"}} nmap/save_output -.-> lab-547089{{"Объединение определения ОС и служб в Nmap"}} nmap/port_scanning -.-> lab-547089{{"Объединение определения ОС и служб в Nmap"}} nmap/host_discovery -.-> lab-547089{{"Объединение определения ОС и служб в Nmap"}} nmap/target_specification -.-> lab-547089{{"Объединение определения ОС и служб в Nmap"}} nmap/verbosity -.-> lab-547089{{"Объединение определения ОС и служб в Nmap"}} nmap/os_version_detection -.-> lab-547089{{"Объединение определения ОС и служб в Nmap"}} nmap/service_detection -.-> lab-547089{{"Объединение определения ОС и служб в Nmap"}} end

Запуск комбинированного сканирования с помощью nmap -O -sV 192.168.1.1

В этом шаге мы выполним комбинированное сканирование с использованием Nmap для идентификации операционной системы и версий сервисов, работающих на целевой машине. Это мощный метод сбора информации о сети и ее устройствах.

Nmap - это универсальный инструмент сканирования сети. Параметры, используемые в этом шаге, следующие:

  • -O: Включает обнаружение операционной системы. Nmap пытается определить ОС целевой машины, анализируя ее сетьевые ответы.
  • -sV: Включает обнаружение версии сервиса. Nmap исследует открытые порты, чтобы определить имя приложения и номер версии.
  • 192.168.1.1: Это целевой IP-адрес. Замените его на фактический IP-адрес машины, которую вы хотите сканировать. Если у вас нет конкретной цели, вы можете использовать IP-адрес своей машины или тестовый IP, такой как scanme.nmap.org. Однако для этой лабораторной работы мы предположим, что 192.168.1.1 - это допустимая цель в вашей сети. Если это не так, вам нужно заменить на допустимый IP-адрес.

Прежде чем запустить сканирование, важно понимать, что сканирование сетей без разрешения является незаконным. Сканируйте только те сети, которые вы владеете или для которых у вас есть явное разрешение на сканирование.

Теперь выполним комбинированное сканирование. Откройте терминал Xfce.

  1. Выполните следующую команду:
sudo nmap -O -sV 192.168.1.1

Вам, вероятно, будет предложено ввести пароль. Поскольку пользователь labex имеет привилегии sudo без пароля, просто нажмите Enter.

Вывод покажет ход работы Nmap при сканировании целевой машины. Он попытается определить операционную систему и версии сервисов, работающих на открытых портах.

Пример вывода (фактический вывод может отличаться в зависимости от целевой машины):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (protocol 2.0)
80/tcp  open  http     Apache httpd 2.4.29 ((Ubuntu))
443/tcp open  ssl/http Apache httpd 2.4.29 ((Ubuntu) OpenSSL 1.1.1)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 15.23 seconds

Этот вывод показывает, что Nmap идентифицировал целевую машину, как работающую под управлением Linux, и определил версии сервисов SSH, HTTP и HTTPS.

Сканирование конкретных портов с помощью nmap -O -sV -p 22,80 127.0.0.1

В этом шаге мы сосредоточимся на сканировании конкретных портов с использованием Nmap. Это полезно, когда вы хотите сузить сканирование только до портов, на которых, скорее всего, запущены интересные сервисы.

Параметры, используемые в этом шаге, следующие:

  • -O: Включает обнаружение операционной системы.
  • -sV: Включает обнаружение версии сервиса.
  • -p 22,80: Указывает порты для сканирования. В данном случае мы сканируем порт 22 (SSH) и порт 80 (HTTP). Вы можете указать один порт, диапазон портов (например, 1-100) или запятой-разделенный список портов.
  • 127.0.0.1: Это адрес петли, который ссылается на вашу собственную машину.

Сканирование конкретных портов может значительно сократить время сканирования и сделать легче идентифицировать сервисы, работающие на целевой машине.

Теперь выполним сканирование. Откройте терминал Xfce.

  1. Выполните следующую команду:
sudo nmap -O -sV -p 22,80 127.0.0.1

Вам, вероятно, будет предложено ввести пароль. Поскольку пользователь labex имеет привилегии sudo без пароля, просто нажмите Enter.

Вывод покажет ход работы Nmap при сканировании портов 22 и 80 на вашем локальном компьютере. Он попытается определить операционную систему и версии сервисов, работающих на этих портах.

Пример вывода (фактический вывод может отличаться в зависимости от вашей системной конфигурации):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000047s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
Network Distance: 0 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 5.23 seconds

Этот вывод показывает, что Nmap идентифицировал OpenSSH на порту 22 и Apache httpd на порту 80. Обнаружение ОС также предоставляет информацию о версии ядра Linux.

Добавление подробности при сканировании с помощью nmap -v -O -sV 192.168.1.1

В этом шаге мы добавим подробность к нашему сканированию с использованием Nmap. Подробность предоставляет более детальную информацию о процессе сканирования, которая может помочь при отладке или понимании, как работает Nmap.

Параметры, используемые в этом шаге, следующие:

  • -v: Включает подробный режим. Этот параметр увеличивает количество отображаемой информации в ходе сканирования. Вы можете использовать -vv для еще большей подробности.
  • -O: Включает обнаружение операционной системы.
  • -sV: Включает обнаружение версии сервиса.
  • 192.168.1.1: Это целевой IP-адрес. Как в первом шаге, замените его на фактический IP-адрес машины, которую вы хотите сканировать. Если это не так, вам нужно подставить допустимый IP-адрес.

Подробный режим может быть полезен для того, чтобы точно увидеть, что делает Nmap, включая отправляемые им запросы и получаемые им ответы.

Теперь выполним сканирование с подробностью. Откройте терминал Xfce.

  1. Выполните следующую команду:
sudo nmap -v -O -sV 192.168.1.1

Вам, вероятно, будет предложено ввести пароль. Поскольку пользователь labex имеет привилегии sudo без пароля, просто нажмите Enter.

Вывод будет более подробным, чем при предыдущих сканированиях. Вы увидите информацию о различных этапах сканирования, таких как обнаружение хоста, сканирование портов и обнаружение версии сервиса.

Пример вывода (фактический вывод может отличаться в зависимости от целевой машины и сетевых условий):

Starting Nmap 7.80 ( https://nmap.org )
NSE: Loaded 151 scripts for scanning.
Initiating Ping Scan at 14:35
Scanning 192.168.1.1 [4 ports]
Completed Ping Scan at 14:35, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 14:35
Completed Parallel DNS resolution of 1 host. at 14:35, 0.00s elapsed
Initiating SYN Stealth Scan at 14:35
Scanning 192.168.1.1 [1000 ports]
Discovered open port 22/tcp on 192.168.1.1
Discovered open port 80/tcp on 192.168.1.1
Discovered open port 443/tcp on 192.168.1.1
Completed SYN Stealth Scan at 14:35, 0.12s elapsed (1000 total ports)
Initiating Service scan at 14:35
Scanning 3 services on 192.168.1.1
Completed Service scan at 14:35, 6.23s elapsed (3 services total)
Initiating OS detection (try #1) against 192.168.1.1
... (more output)...
Nmap scan report for 192.168.1.1
Host is up (0.00088s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (protocol 2.0)
80/tcp  open  http     Apache httpd 2.4.29 ((Ubuntu))
443/tcp open  ssl/http Apache httpd 2.4.29 ((Ubuntu) OpenSSL 1.1.1)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 15.23 seconds

Обратите внимание на дополнительную информацию о этапах сканирования, таких как "Initiating Ping Scan" и "Initiating Service scan". Это может помочь в понимании процесса сканирования и выявлении возможных проблем.

Сохранение объединенных результатов с помощью nmap -O -sV -oN os_service.txt 127.0.0.1

В этом шаге мы сохраним результаты сканирования с использованием Nmap в файл. Это полезно для последующего анализа или для обмена результатами с другими.

Параметры, используемые в этом шаге, следующие:

  • -O: Включает обнаружение операционной системы.
  • -sV: Включает обнаружение версии сервиса.
  • -oN os_service.txt: Указывает файл вывода и формат. -oN задает нормальный вывод, который читается человеком. Вывод будет сохранен в файл os_service.txt в вашей текущей директории (~/project).
  • 127.0.0.1: Это адрес петли, который ссылается на вашу собственную машину.

Сохранение вывода в файл позволяет вам позже просмотреть результаты, не запуская сканирование снова. Это также делает легче сравнивать результаты различных сканирований.

Теперь выполним сканирование и сохраним результаты. Откройте терминал Xfce.

  1. Выполните следующую команду:
sudo nmap -O -sV -oN os_service.txt 127.0.0.1

Вам, вероятно, будет предложено ввести пароль. Поскольку пользователь labex имеет привилегии sudo без пароля, просто нажмите Enter.

Вывод будет отображаться на экране, как обычно, но он также будет сохранен в файл os_service.txt в вашей директории ~/project.

  1. Чтобы проверить, был ли создан файл и содержит ли он результаты сканирования, используйте команду cat:
cat os_service.txt

Это отобразит содержимое файла os_service.txt в терминале. Вы должны увидеть результаты сканирования Nmap, включая открытые порты, сервисы и информацию об операционной системе.

Пример вывода (фактический вывод может отличаться в зависимости от вашей системной конфигурации):

## Nmap 7.80 scan initiated Mon Aug  8 14:42:30 2022
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000047s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
Network Distance: 0 hops

## Nmap done: 1 IP address (1 host up) scanned in 5.23 seconds

Вы также можете использовать команду ls -l, чтобы проверить размер файла и дату модификации:

ls -l os_service.txt

Это покажет вам права доступа к файлу, его размер и время последней модификации.

Анализ вывода о системе и сервисах в терминале Xfce

В этом шаге мы будем анализировать вывод сканирования Nmap, которое мы сохранили на предыдущем шаге (os_service.txt). Мы сосредоточимся на понимании информации, которую предоставляет Nmap о операционной системе целевого объекта и запущенных сервисах.

Файл os_service.txt содержит человекочитаемый отчет о результатах сканирования. Просмотрим ключевые разделы:

  1. Открытые порты: Этот раздел перечисляет порты, открытые на целевой машине. Открытые порты указывают на то, что на этом порту слушается сервис.

  2. Сервисы: Для каждого открытого порта Nmap пытается определить, какой сервис запущен. Эта информация отображается в столбце "SERVICE".

  3. Версии: Nmap также пытается определить версию сервиса. Эта информация отображается в столбце "VERSION". Знание версии сервиса имеет решающее значение для выявления потенциальных уязвимостей.

  4. Детали ОС: Nmap пытается определить операционную систему, которая запущена на целевой машине. Эта информация отображается в разделе "OS details".

Теперь давайте проанализируем вывод в терминале Xfce.

  1. Откройте файл os_service.txt с помощью команды cat:
cat os_service.txt

Просмотрите вывод. Вы должны увидеть что-то вроде следующего (фактический вывод может отличаться в зависимости от вашей системной конфигурации):

## Nmap 7.80 scan initiated Mon Aug  8 14:42:30 2022
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000047s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
Network Distance: 0 hops

## Nmap done: 1 IP address (1 host up) scanned in 5.23 seconds
  1. Анализ вывода:

    • Порт 22/tcp: Этот порт открыт и запускает службу SSH (OpenSSH 8.2p1 Ubuntu 4ubuntu0.4). SSH используется для безопасного удаленного доступа к машине.
    • Порт 80/tcp: Этот порт открыт и запускает службу HTTP (Apache httpd 2.4.41 ((Ubuntu))). HTTP используется для предоставления веб-страниц.
    • Детали ОС: Nmap идентифицировал операционную систему как Linux (Linux 3.2 - 4.9).

Анализируя этот вывод, вы можете получить ценные сведения о конфигурации целевой машины и потенциальных уязвимостях. Например, знание версий сервисов позволяет вам искать известные уязвимости, связанные с этими версиями.

Этот шаг демонстрирует, как интерпретировать вывод сканирования Nmap для идентификации открытых портов, запущенных сервисов и операционной системы. Эта информация является важной для проведения оценок безопасности и тестирования проникновения.

Сравнение с отдельными сканированиями в терминале Xfce

В этом шаге мы сравним результаты комбинированного сканирования (os_service.txt) с результатами, которые вы получили бы при выполнении отдельных сканирований для обнаружения операционной системы и определения версии сервиса. Это поможет вам понять преимущества использования комбинированных сканирований и как они могут节省时间。

Для эффективного выполнения этого мы будем имитировать отдельные сканирования, используя grep для извлечения соответствующей информации из файла os_service.txt. Это избавляет от необходимости повторного запуска сканирований,节省时间 и ресурсы.

  1. Имитация сканирования для обнаружения операционной системы:

    Мы можем имитировать сканирование для обнаружения операционной системы, выполнив поиск раздела "OS details" в файле os_service.txt.

    Выполните следующую команду:

grep "OS details" os_service.txt

Это выведет строку, содержащую детали операционной системы, похожую на:

OS details: Linux 3.2 - 4.9
  1. Имитация сканирования для определения версии сервиса:

    Мы можем имитировать сканирование для определения версии сервиса, выполнив поиск строк, содержащих информацию о сервисе и версии.

    Выполните следующую команду:

grep -E "[0-9]+/tcp open" os_service.txt

Эта команда использует grep -E для включения расширенных регулярных выражений. Паттерн [0-9]+/tcp open ищет строки, которые начинаются с числа (представляющего номер порта), за которым следует "/tcp open". Это извлечет строки, содержащие информацию о сервисе и версии, похожую на:

22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
  1. Сравнение результатов:

    Теперь сравните вывод команд grep с полным выводом в os_service.txt. Вы заметите, что комбинированное сканирование предоставляет все ту же информацию в одном сканировании.

    Комбинированное сканирование (nmap -O -sV) более эффективно, потому что выполняет и обнаружение операционной системы, и определение версии сервиса за один проход. Это сокращает общее время сканирования и трафик сети.

В целом, этот шаг демонстрирует, как сравнить результаты комбинированного сканирования Nmap с результатами, которые вы получили бы при выполнении отдельных сканирований. Используя комбинированные сканирования, вы можете节省时间 и ресурсы, при этом по-прежнему получать полную информацию о цели.

Резюме

В этом практическом занятии мы провели комбинированное обнаружение операционной системы и версии сервиса с использованием Nmap. Главное, что нужно запомнить, — это использование флагов -O и -sV вместе для идентификации как операционной системы, так и версий сервисов, запускающихся на целевой машине. Это позволяет более полно понять конфигурацию цели.

Мы также узнали, как указывать целевые IP-адреса, добавлять подробность с помощью флага -v и сохранять результаты сканирования в файл с помощью опции -oN. Кроме того, мы практиковались в анализе вывода в терминале Xfce и сравнении результатов с отдельными сканированиями, чтобы понять эффективность комбинированного сканирования.