Сбор информации с помощью Nmap

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

Введение

В процессе тестирования на проникновение этап сбора информации является одним из самых важных. Эта лабораторная работа посвящена знакомству с инструментами для получения данных. Чем больше информации вы соберете о целевом хосте, тем выше будет вероятность успеха теста на проникновение. В системе Kali некоторые инструменты для тестирования уже предустановлены. Используя их, вы постепенно освоите основные шаги сбора информации.

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

Сканирование открытых портов на целевом хосте

На этом этапе мы рассмотрим, как использовать инструменты для сканирования открытых портов на целевом хосте.

В процессе тестирования на проникновение необходимо понимать, какие порты открыты на целевом узле. В Kali Linux по умолчанию предоставляются два инструмента для сканирования портов: Nmap и Zenmap. Мы сосредоточимся на использовании этих двух инструментов.

Сначала запустим лабораторную среду. Хостовая машина — это Ubuntu (рабочий стол, к которому вы подключены), на которой установлены Docker и виртуальные среды QEMU. Они обеспечивают поддержку платформы для контейнера Kali Linux и целевой машины Metasploitable2 соответственно.

На хостовой машине LabEx запустите Metasploitable2, дважды щелкнув по терминалу xfce на рабочем столе и введя следующую команду:

sudo virsh start Metasploitable2

Дождитесь запуска целевой машины, это может занять 1-3 минуты.

Пропингуйте целевую машину, чтобы убедиться, что она работает (нажмите Ctrl-C, чтобы выйти из ping):

ping 192.168.122.102

Теперь запустим контейнер Kali и войдем в интерфейс bash, выполним операцию ping для проверки сетевого соединения:

docker run -ti --network host b5b709a49cd5 bash

Теперь мы можем выполнить операцию ping для проверки сетевого соединения (нажмите Ctrl-C, чтобы выйти из ping):

ping 192.168.122.102

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

Примечание: Если вы случайно выйдете из текущего bash, контейнер Kali автоматически остановится. Вы можете снова выполнить команду docker run -ti --network host b5b709a49cd5 bash на хостовой машине, чтобы запустить новый контейнер Kali и войти в bash для продолжения работы.

Инструмент сканирования TCP-портов: Nmap

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

Nmap поддерживает множество методов сканирования, таких как UDP, TCP Connect(), TCP SYN (полуоткрытое сканирование), FTP-прокси (Bounce-атака), Idle scan, ICMP, FIN, ACK scan, Xmas Tree, SYN scan и Null scan.

Nmap включает четыре основные функции:

  • Обнаружение хостов
  • Сканирование портов
  • Определение версий
  • Определение операционной системы

Используйте инструмент nmap и введите следующую команду для выполнения сканирования портов и получения информации об открытых портах на целевой машине:

nmap 192.168.122.102

Zenmap: Графический интерфейс для Nmap

Zenmap — это официальный графический интерфейс для Nmap, разработанный проектом Nmap. Zenmap — это бесплатный инструмент с открытым исходным кодом, написанный на Python, который может работать на различных операционных системах (Windows/Linux/Unix/Mac OS и т.д.). Zenmap призван упростить работу с Nmap. Часто используемые операции можно сохранять как профили, что позволяет пользователям выбирать профиль во время сканирования и удобно сравнивать результаты. Он также предоставляет графическое отображение топологии сети.

Примечание: Среда LabEx использует контейнер Kali, поэтому графический интерфейс в данный момент недоступен.

Получение базовой информации о целевом хосте

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

На данном этапе нам необходимо собрать как можно больше базовых сведений об операционной системе целевого хоста. Это повысит вероятность успеха теста на проникновение. Сбор информации включает в себя создание «отпечатков» (fingerprinting), а также использование инструментов активного сканирования, таких как параметры -O и -sV в nmap. Хотя термин «fingerprinting» звучит сложно, по сути это просто определение версии операционной системы и приложений целевого хоста, что помогает нам в дальнейшем обнаруживать уязвимости на уровне ОС и приложений.

Инструменты активного сканирования (Fingerprinting)

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

nmap -O 192.168.122.102

В терминале Kali выполните команду для просмотра информации о целевой машине. IP-адрес целевой машины — 192.168.122.102:

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

nmap -sV 192.168.122.102

Инструменты пассивного сканирования

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

p0f обладает мощными возможностями сетевого анализа и может использоваться для анализа NAT, балансировки нагрузки, прокси-серверов приложений и многого другого.

Основная информация, которую определяет p0f:

  • Тип операционной системы, порт
  • Работает ли хост в режиме NAT
  • Находится ли хост за брандмауэром
  • Работает ли хост в режиме балансировки нагрузки

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

p0f host 192.168.122.102

Скрытое сканирование (TCP Half-Open Scan)

В терминале Kali выполните команду для выполнения скрытого сканирования:

nmap -sS 192.168.122.102

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

TCP Connect Scan

В терминале Kali выполните команду для выполнения сканирования типа TCP Connect:

nmap -sT 192.168.122.102

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

Получение информации о сетевых службах целевого сайта

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

Получение информации о сетевых службах

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

Откройте браузер Firefox и введите http://192.168.122.102 в адресной строке. Если все прошло успешно, вы увидите следующее:

Домашняя страница целевого сайта LabEx

Сканирование конкретных портов на целевом хосте с помощью amap

amap используется для сканирования определенных портов на хосте. В терминале Kali LabEx введите команду для сканирования порта 21 на целевом хосте:

amap -bqv 192.168.122.102 21

Перечисление пользователей с помощью smtp-user-enum

Инструмент smtp-user-enum в основном используется для перечисления пользователей SMTP. В терминале Kali LabEx введите команду для перечисления пользователей SMTP:

smtp-user-enum -M VRFY -u root -t 192.168.122.102

Резюме

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

  • Использование инструментов для сканирования открытых портов на целевом хосте
  • Получение базовой информации о целевом хосте, такой как операционная система
  • Получение информации о сетевых службах, предоставляемых целевым сайтом
  • Анализ собранной информации для выявления потенциальных векторов атаки

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