Комплексное сканирование в Nmap

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

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

Введение

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

Вы выполните полные сканирования с использованием параметров, таких как -sS (TCP SYN-сканирование), -sU (UDP-сканирование), -O (определение операционной системы) и -sV (определение версии сервиса). Также вы изучите добавление скриптов с использованием -sC, настройку времени с использованием -T3, увеличение подробности с использованием -v и сохранение результатов сканирования в файл с использованием -oN. Наконец, вы проанализируете комплексный вывод, полученный этими сканированиями, в терминале Xfce.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/timing_performance("Timing and Performance") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/syn_scan("SYN Scan") nmap/NmapGroup -.-> nmap/udp_scanning("UDP Scanning Techniques") nmap/NmapGroup -.-> nmap/os_version_detection("OS and Version Detection") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") nmap/NmapGroup -.-> nmap/script_management("Script Categories and Updating") subgraph Lab Skills nmap/save_output -.-> lab-547104{{"Комплексное сканирование в Nmap"}} nmap/port_scanning -.-> lab-547104{{"Комплексное сканирование в Nmap"}} nmap/timing_performance -.-> lab-547104{{"Комплексное сканирование в Nmap"}} nmap/verbosity -.-> lab-547104{{"Комплексное сканирование в Nmap"}} nmap/syn_scan -.-> lab-547104{{"Комплексное сканирование в Nmap"}} nmap/udp_scanning -.-> lab-547104{{"Комплексное сканирование в Nmap"}} nmap/os_version_detection -.-> lab-547104{{"Комплексное сканирование в Nmap"}} nmap/service_detection -.-> lab-547104{{"Комплексное сканирование в Nmap"}} nmap/script_management -.-> lab-547104{{"Комплексное сканирование в Nmap"}} end

Запустить полный скан с помощью nmap -sS -sU -O -sV 192.168.1.1

В этом шаге мы выполним полный скан целевого IP-адреса с использованием Nmap. Полный скан комбинирует несколько типов сканирования для сбора комплексной информации о цели. Это включает в себя TCP SYN-сканирование (-sS), UDP-сканирование (-sU), определение операционной системы (-O) и определение версии сервиса (-sV).

Прежде чем мы начнем, кратко поясним каждый из этих параметров Nmap:

  • -sS: TCP SYN-сканирование (также известное как скрытое сканирование или полупрозрачное сканирование). Это быстрый и скрытый скан, который не завершает TCP-соединение.
  • -sU: UDP-сканирование. Он отправляет UDP-пакеты цели и слушает ответы, чтобы определить, какие UDP-порты открыты.
  • -O: Определение операционной системы. Он пытается определить операционную систему целевого хоста, анализируя отпечаток его TCP/IP-стека.
  • -sV: Определение версии сервиса. Он определяет версию программного обеспечения, работающего на открытых портах.

Теперь выполним команду полного скана. Мы будем сканировать IP-адрес 192.168.1.1. Убедитесь, что целевой IP-адрес доступен из вашей виртуальной машины LabEx. Если у вас нет конкретной цели, вы можете использовать IP-адрес своей собственной машины или тестовый IP-адрес в вашей локальной сети.

Откройте терминал Xfce и перейдите в каталог ~/project. Затем выполните следующую команду:

nmap -sS -sU -O -sV 192.168.1.1

Эта команда запустит полный скан целевого IP-адреса 192.168.1.1. Nmap выполнит TCP SYN-сканирование, UDP-сканирование, определение операционной системы и определение версии сервиса.

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

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
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.6p0 Ubuntu 7ubuntu2 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
139/tcp  open  netbios-ssn Samba netbios-ssn (workgroup: WORKGROUP)
445/tcp  open  microsoft-ds Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
5353/udp open  mdns    Avahi mDNS/DNS-SD

OS details: Linux 3.2 - 4.9
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   1.20 ms 192.168.1.1

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

Этот вывод показывает открытые порты (например, 22, 80, 139, 445), сервисы, работающие на этих портах (например, ssh, http, netbios-ssn, microsoft-ds), и операционную систему цели (Linux). Результат UDP-сканирования показывает, что порт 5353 открыт.

Добавить скрипты с помощью nmap -sS -sU -sC -p 22,80 127.0.0.1

В этом шаге мы усовершенствуем наш скан Nmap, включив скрипты Nmap. Скрипты Nmap - это мощные инструменты, которые могут автоматизировать различные задачи, такие как обнаружение уязвимостей, перечисление служб и многое другое. Параметр -sC сообщает Nmap использовать стандартный набор скриптов. Мы также укажем порты для сканирования с использованием параметра -p.

Прежде чем мы продолжаем, уточним назначение параметров -sC и -p:

  • -sC: Этот параметр сообщает Nmap запустить стандартный набор скриптов для целевого объекта. Эти скрипты предназначены для предоставления базовой информации о службах, работающих на целевом объекте.
  • -p: Этот параметр позволяет вам указать порты, которые вы хотите сканировать. В этом случае мы указываем порты 22 и 80.

Теперь выполним команду. Мы будем сканировать 127.0.0.1 (локальный хост) на портах 22 и 80, используя стандартные скрипты.

Откройте терминал Xfce и перейдите в каталог ~/project. Затем выполните следующую команду:

nmap -sS -sU -sC -p 22,80 127.0.0.1

Эта команда выполнит SYN-сканирование (-sS) и UDP-сканирование (-sU) на портах 22 и 80 локального хоста (127.0.0.1), а также запустит стандартные скрипты (-sC) для этих портов.

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

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000039s latency).

PORT   STATE SERVICE
22/tcp open  ssh
| ssh-hostkey:
|   2048 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (RSA)
|_  256 SHA256:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy (ECDSA)
80/tcp closed http

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

В этом примере порт 22 (SSH) открыт, и скрипт ssh-hostkey предоставил информацию о SSH-ключу хоста. Port 80 (HTTP) закрыт. UDP-сканирование не обнаружило открытых портов.

Настроить время выполнения с помощью nmap -sS -sU -T3 192.168.1.1

В этом шаге мы узнаем, как настраивать время выполнения сканов Nmap с использованием параметра -T. Параметр -T контролирует агрессивность сканирования, что влияет на скорость и точность результатов. Более высокий шаблон времени выполнения может ускорить сканирование, но также увеличивает шансы быть обнаруженным или пропустить некоторые результаты.

Параметр -T принимает значения от 0 до 5, при этом каждое значение представляет собой отдельный шаблон времени выполнения:

  • -T0: Паранойя (очень медленно, используется для систем обнаружения вторжений)
  • -T1: Обманчивость (медленно, избегать обнаружения)
  • -T2: Вежливость (замедляет сканирование, чтобы избежать перегрузки цели)
  • -T3: Нормальный (стандартный, сбалансированная скорость и точность)
  • -T4: Агрессивность (быстро, может увеличить риск обнаружения или получить неточные результаты)
  • -T5: Безумство (очень быстро, высокий риск обнаружения и неточных результатов)

В этом шаге мы будем использовать параметр -T3, который представляет "Нормальный" шаблон времени выполнения. Это стандартная настройка, но мы явно укажем ее в целях демонстрации. Мы также выполним SYN-сканирование (-sS) и UDP-сканирование (-sU) на целевом IP-адресе 192.168.1.1.

Откройте терминал Xfce и перейдите в каталог ~/project. Затем выполните следующую команду:

nmap -sS -sU -T3 192.168.1.1

Эта команда выполнит SYN-сканирование и UDP-сканирование на целевом IP-адресе 192.168.1.1 с использованием "Нормального" шаблона времени выполнения.

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

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh     OpenSSH 7.6p0 Ubuntu 7ubuntu2 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
139/tcp  open  netbios-ssn Samba netbios-ssn (workgroup: WORKGROUP)
445/tcp  open  microsoft-ds Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
5353/udp open  mdns    Avahi mDNS/DNS-SD

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

Этот вывод похож на вывод из первого шага, но демонстрирует, как явно задать шаблон времени выполнения с использованием параметра -T.

Добавить подробность вывода с помощью nmap -v -sS -sU -O 127.0.0.1

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

Параметр -v увеличивает уровень подробности вывода. Его можно использовать несколько раз (например, -vv), чтобы еще больше увеличить подробность вывода.

В этом шаге мы выполним SYN-сканирование (-sS), UDP-сканирование (-sU) и определение операционной системы (-O) на целевом IP-адресе 127.0.0.1 (локальный хост), и мы добавим подробность вывода с использованием параметра -v.

Откройте терминал Xfce и перейдите в каталог ~/project. Затем выполните следующую команду:

nmap -v -sS -sU -O 127.0.0.1

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

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
NSE: Loaded 0 scripts for scanning.
Initiating SYN Stealth Scan
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Completed SYN Stealth Scan
Initiating UDP Scan
Scanning localhost (127.0.0.1) [1000 ports]
Completed UDP Scan
Initiating OS detection.
Scanning localhost (127.0.0.1)
Completed OS detection.
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000039s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
5353/udp open  mdns

Device type: General purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5
OS details: Linux 5.0 - 5.15

Read data files from: /usr/bin/../share/nmap
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 15.24 seconds

Обратите внимание на дополнительную информацию, отображаемую о процессе сканирования, такой как "Initiating SYN Stealth Scan", "Completed UDP Scan" и "Initiating OS detection". Это результат повышенной подробности вывода.

Сохранить полный скан с помощью nmap -sS -sU -sV -oN full.txt 192.168.1.1

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

Параметр -oN задает, что вывод должен быть сохранен в "обычном" формате в указанный файл. "Обычный" формат - это человекочитаемый формат, который легко разбирается.

В этом шаге мы выполним SYN-сканирование (-sS), UDP-сканирование (-sU) и определение версии сервиса (-sV) на целевом IP-адресе 192.168.1.1, и мы сохраним вывод в файл с именем full.txt в каталоге ~/project.

Откройте терминал Xfce и перейдите в каталог ~/project. Затем выполните следующую команду:

nmap -sS -sU -sV -oN full.txt 192.168.1.1

Эта команда выполнит указанные сканирования и сохранит вывод в файл full.txt.

После завершения сканирования вы можете просмотреть содержимое файла full.txt с помощью команды cat или текстового редактора, такого как nano.

cat full.txt

или

nano full.txt

Файл full.txt будет содержать вывод скана Nmap в человекочитаемом формате.

Пример содержимого full.txt (фактическое содержимое может отличаться в зависимости от цели):

## Nmap 7.80 scan initiated Fri Oct 27 10:20:00 2023
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.6p0 Ubuntu 7ubuntu2 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
139/tcp  open  netbios-ssn Samba netbios-ssn (workgroup: WORKGROUP)
445/tcp  open  microsoft-ds Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
5353/udp open  mdns    Avahi mDNS/DNS-SD
Service Info: Host: MYSERVER; OS: Linux; CPE: cpe:/o:linux:linux_kernel

## Nmap done at Fri Oct 27 10:20:10 2023 -- 1 IP address (1 host up) scanned in 10.24 seconds

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

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

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

Во - первых, давайте обсудим виды сканов, которые мы выполняли, и информацию, которую они предоставляют:

  • SYN - сканирование (-sS): Это скрытое сканирование, которое быстро определяет открытые порты, не завершая TCP - рукопожатие. Оно полезно для быстрого определения открытых портов на цели.
  • UDP - сканирование (-sU): Это сканирование, которое определяет открытые UDP - порты. UDP - это безсоединственный протокол, поэтому это сканирование может быть менее надежным и медленнее, чем TCP - сканирование.
  • Определение операционной системы (-O): Это пытается определить операционную систему, которая запущена на цели.
  • Определение версии сервиса (-sV): Это пытается определить версию сервисов, запускающихся на открытых портах.
  • Сканирование с помощью сценариев (-sC): Это выполняет набор сценариев Nmap для выявления уязвимостей и сбора дополнительной информации о цели.

Теперь давайте проанализируем вывод. Вы можете сослаться на файл full.txt, созданный в предыдущем шаге, или повторно запустить скан и непосредственно наблюдать за выводом в терминале. Например, вы можете просмотреть содержимое full.txt с помощью команды cat:

cat ~/project/full.txt

Или вы можете повторно запустить полный сканирующий комманду из шага 1:

nmap -sS -sU -O -sV 192.168.1.1

Ключевые элементы, которые нужно искать в выводе:

  • Открытые порты: Nmap будет перечислять открытые порты на целевой системе. Это первый шаг в выявлении потенциально запускаемых сервисов.
  • Информация о сервисе: Nmap будет пытаться определить сервис, запускающийся на каждом открытом порту. Эта информация может быть использована для выявления известных уязвимостей в этих сервисах.
  • Операционная система: Nmap будет пытаться определить операционную систему, которая запущена на цели. Эта информация может быть использована для выявления уязвимостей, специфичных для данной ОС.
  • Задержка сканирования: Вывод показывает задержку, которая представляет собой время, которое требуется Nmap для общения с целевым объектом. Более высокая задержка может указывать на сетевое перегрузка или медленное соединение.

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:25 UTC
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.6p0 Ubuntu 7ubuntu2 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
139/tcp  open  netbios-ssn Samba netbios-ssn (workgroup: WORKGROUP)
445/tcp  open  microsoft-ds Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
5353/udp open  mdns    Avahi mDNS/DNS-SD
Service Info: Host: MYSERVER; OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS CPE: cpe:/o:linux:linux_kernel
Aggressive OS guesses: Linux 3.10 - 4.11 (95%), Linux 3.16 (95%), Linux 4.4 (95%), Linux 4.6 - 4.7 (95%), Linux 4.8 (95%), Linux 4.9 (95%), Linux 4.12 (95%), Linux 4.13 (95%), Linux 4.14 (95%), Linux 4.15 (95%)
No exact OS matches for host.

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

В этом примере вывода:

  • Порт 22 открыт и запущен OpenSSH 7.6p0.
  • Порт 80 открыт и запущен Apache httpd 2.4.29.
  • Порты 139 и 445 открытые и запущены Samba.
  • Порт 5353 открыт и запущен Avahi mDNS/DNS - SD.
  • Nmap сделал агрессивные догадки о ОС, предполагая, что это, вероятно, Linux - ядро в диапазоне версий от 3.10 до 4.15.

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

Резюме

В этом практическом занятии мы провели комплексное сканирование с использованием Nmap, комбинируя TCP SYN - сканирование (-sS), UDP - сканирование (-sU), определение операционной системы (-O) и определение версии сервиса (-sV), чтобы собрать обширную информацию о целевом IP - адресе. Мы узнали, как выполнить полный скан с помощью команды nmap -sS -sU -O -sV 192.168.1.1 и интерпретировать вывод, который включает в себя открытые порты, запущенные сервисы и операционную систему цели.

Помимо этого, в практическом занятии рассматривалось добавление сценариев с использованием -sC, настройка времени сканирования с использованием -T3, повышение подробности вывода с использованием -v и сохранение результатов сканирования в файл с использованием -oN. Эти методы расширяют возможности Nmap для детального анализа сети и составления отчетов.