Базовое сканирование уязвимостей с помощью Nmap

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

Введение

Добро пожаловать в эту лабораторную работу по базовому сканированию уязвимостей с помощью Nmap. Nmap (Network Mapper) — это мощный инструмент с открытым исходным кодом, используемый сетевыми администраторами и специалистами по безопасности для обнаружения сетей и аудита безопасности. Он может определить, какие хосты доступны в сети, какие службы предлагают эти хосты, какие операционные системы они используют, и многое другое.

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

Установка Nmap в Ubuntu 22.04

На этом шаге вы установите инструмент Nmap на вашу систему Ubuntu 22.04. Прежде чем использовать любое программное обеспечение, вы должны убедиться, что оно установлено. Мы будем использовать менеджер пакетов apt, который является стандартом для дистрибутивов Linux на основе Debian, таких как Ubuntu.

Сначала рекомендуется обновить список пакетов вашей системы. Это гарантирует, что вы получите последние доступные версии программного обеспечения. Откройте терминал и выполните следующую команду:

sudo apt update

Вы увидите вывод, поскольку apt получает последнюю информацию о пакетах из репозиториев.

Далее установите Nmap с помощью команды apt install. Флаг -y автоматически отвечает "да" на любые запросы, делая установку неинтерактивной.

sudo apt install -y nmap

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

nmap --version

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

Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.1f libz-1.2.11 libpcre-8.39 nmap-libpcap-1.9.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select

Теперь, когда Nmap установлен, вы готовы выполнить свое первое сканирование.

Выполнение сканирования портов localhost для идентификации открытых служб

На этом шаге вы выполните базовое сканирование портов на вашей локальной машине, чтобы определить открытые порты и связанные с ними службы. Сканирование localhost (IP-адрес которого 127.0.0.1) — это безопасный способ попрактиковаться в использовании Nmap, поскольку вы сканируете только свою собственную систему.

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

Чтобы выполнить базовое сканирование на вашей локальной машине, выполните следующую команду в терминале:

nmap localhost

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000087s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus
8000/tcp open  http-alt       SimpleHTTPServer 0.6 (Python 3.10.12)

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

Давайте разберем этот вывод:

  • PORT: Номер порта и протокол (например, 8000/tcp).
  • STATE: Состояние порта. open означает, что служба активно принимает соединения на этом порту.
  • SERVICE: Общепринятое название службы, обычно работающей на этом порту (например, ssh для порта 22).

Из этого сканирования вы определили, что порты 22 и 8000 на вашей машине открыты.

Интерпретация результатов сканирования Nmap на предмет потенциальных уязвимостей

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

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

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

Выполните следующую команду для выполнения сканирования версий на localhost:

nmap -sV localhost

Теперь вывод будет более подробным. Обратите особое внимание на столбец VERSION.

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.00012s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh         OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
3001/tcp open  ssl/nessus?
8000/tcp open  http        SimpleHTTPServer 0.6 (Python 3.10.12)

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

Как вы можете видеть, Nmap теперь определил конкретную версию работающих служб. Например, на порту 8000 это не просто общий веб-сервис (http-alt), а конкретно SimpleHTTPServer 0.6 (Python 3.10.12).

Имея эту информацию о версии, аналитик по безопасности (или злоумышленник) может искать в онлайн-базах данных уязвимостей (например, CVE) известные эксплойты, затрагивающие "SimpleHTTPServer 0.6 (Python 3.10.12)". Это фундаментальный процесс базового сканирования уязвимостей.

Резюме

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

В этой лабораторной работе вы научились:

  • Устанавливать инструмент Nmap в системе Ubuntu с помощью apt.
  • Выполнять базовое сканирование портов на localhost для обнаружения открытых портов.
  • Использовать сканирование с определением версий (-sV) для идентификации конкретного программного обеспечения и его версий, работающих на этих портах.
  • Понимать основной принцип интерпретации результатов сканирования для выявления потенциальных областей уязвимости.

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