Итоговый проект • Урок 14

Проект: Внутренний пентест

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

1. Устройство процесса подготовки к атаке: Правила игры

Перед началом любого пентеста проводится этап Pre-engagement (Подготовка). Это самая важная часть с юридической и организационной точки зрения.

Scope of Work (SoW) — Определение границ

Вы с заказчиком подписываете документ, который четко определяет:

  • Цели: Что мы пытаемся достичь? (Например, "Получить права администратора домена" или "Получить доступ к базе данных клиентов").
  • Границы (Scope): Какие IP-адреса, подсети, приложения можно атаковать? Что находится за границами (out of scope)?
  • Правила взаимодействия (Rules of Engagement): Что можно и чего нельзя делать? Можно ли использовать DoS-атаки? В какое время можно проводить активное сканирование? Нужно ли останавливаться после получения первого доступа?
  • Контакты: Кто ваш контакт со стороны заказчика для экстренной связи 24/7?

Никогда не выходите за рамки Scope! Атака на хост, не указанный в договоре — это преступление, а не пентест.

Подготовка инструментария

Ваша рабочая станция — это Kali Linux или аналог (Parrot OS), запущенный на виртуальной машине. Перед началом вы должны убедиться, что все инструменты обновлены (sudo apt update && sudo apt upgrade -y) и настроены.

2. Сбор информации о цели атаки (внутренняя сеть)

Сценарий: вы подключили свой ноутбук к порту в переговорке офиса клиента. Вы ничего не знаете о сети. Ваша первая задача — составить карту.

Шаг 1: Определение своей подсети

Сначала нужно понять, где вы находитесь.

ip a

Допустим, вы получили IP 192.168.10.123 с маской /24. Это значит, ваша цель — вся подсеть 192.168.10.0/24.

Шаг 2: Поиск "живых" хостов

Используем Nmap для "пинг-сканирования", чтобы найти все активные устройства в подсети.

sudo nmap -sn 192.168.10.0/24

Шаг 3: Глубокое сканирование и перечисление сервисов

Сохранив список живых хостов в файл `targets.txt`, запускаем на них детальное сканирование для определения ОС, портов и сервисов.

sudo nmap -A -iL targets.txt -oN nmap_scan_results.txt

Шаг 4: Пассивный анализ трафика

Пока идет сканирование, можно запустить инструменты вроде Responder или Wireshark для пассивного прослушивания сети. Это может выдать нам имена хостов, доменов и даже хэши учетных данных без единого активного запроса.

3. Цепочка атаки (Cyber Kill Chain)

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

Recon -> Foothold -> Escalate -> Lateral Movement -> Persistence -> Domain Dominance
(Разведка -> Плацдарм -> Эскалация -> Боковое перемещение -> Закрепление -> Захват домена)
                

Давайте пройдем по этому пути шаг за шагом.

3.1. Получение начального доступа (Initial Foothold)

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

  • Уязвимый веб-сервер: Старая версия Jenkins, Apache Tomcat с дефолтными паролями, уязвимость в самописном приложении.
  • Протокол SMB: Анонимный доступ к файловым шарам, уязвимость MS17-010 (EternalBlue).
  • Слабые пароли: Подбор паролей к SSH, RDP, FTP, используя популярные комбинации (Password Spraying).
  • Перехваченные хэши: Использование хэшей, полученных с помощью Responder, для аутентификации на других машинах (Pass-the-Hash).

Пример: Nmap показал, что на 192.168.10.50 открыт порт 8080 с Apache Tomcat. Мы проверяем в браузере и видим стандартную страницу входа. Пробуем стандартные пароли (`admin:admin`, `tomcat:s3cret`) и получаем доступ к панели администратора, откуда можем загрузить веб-шелл.

3.2. Закрепление и повышение привилегий (Persistence & Escalation)

Итак, у нас есть доступ к системе, но обычно с правами низкопривилегированного пользователя (например, `www-data`). Наша цель — стать root или `NT AUTHORITY\SYSTEM`.

Закрепление (Persistence)

Нужно обеспечить себе доступ к системе даже после перезагрузки. Это можно сделать, добавив себя в автозагрузку, создав задачу в cron/планировщике задач или установив бэкдор.

Повышение привилегий (Privilege Escalation)

Это поиск уязвимостей и мисконфигураций внутри самой ОС.

  • Автоматизированный поиск: Скрипты LinPEAS (для Linux) и WinPEAS (для Windows) ищут сотни известных векторов для повышения привилегий.
  • Частые векторы:
    • Уязвимости ядра (Kernel Exploits): Устаревшая версия ядра. Опасно, может привести к "синему экрану".
    • Неправильные права на файлы/папки: Возможность перезаписать системный файл.
    • SUID-бинарники (Linux): Поиск программ с SUID-битом, которые можно проэксплуатировать.
    • Слабые пароли в файлах конфигурации.

3.3. Боковое перемещение (Lateral Movement)

Мы захватили одну машину и стали на ней администратором. Но наша цель — контроллер домена. Теперь мы используем скомпрометированную машину как плацдарм для атаки на другие хосты в сети.

Сбор учетных данных

Став администратором, мы можем запустить Mimikatz (на Windows), чтобы извлечь из памяти пароли и хэши всех пользователей, которые когда-либо логинились на этой машине, в открытом виде!

Pass-the-Hash (PtH) и Pass-the-Ticket (PtT)

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

# Пример использования PsExec из Impacket для получения удаленной консоли # с помощью NTLM-хэша администратора psexec.py -hashes : administrator@192.168.10.20

3.4. Захват домена (Domain Dominance)

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

BloodHound — наш главный навигатор. Он строит граф, который показывает самый короткий путь для получения прав Domain Admin от нашего текущего положения.

Получив права администратора домена, мы можем выполнить финальные атаки:

  • DCSync: Заставить контроллер домена "поделиться" хэшами паролей всех пользователей в домене, включая учетную запись `krbtgt`.
  • Golden Ticket: Используя хэш `krbtgt`, создать "золотой билет" Kerberos, который дает нам права администратора домена на 10 лет и практически не обнаруживается.

На этом этапе цель пентеста достигнута. Мы получили полный контроль.

4. Финальный отчет: Продукт вашей работы

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

Структура отчета:

  1. Резюме для руководства (Executive Summary): 1-2 страницы. Никаких технических терминов. Описывает общую оценку защищенности, ключевые риски для бизнеса и стратегические рекомендации.
  2. Техническая часть:
    • Описание методологии и области тестирования.
    • Детальное описание каждой найденной уязвимости:
      • Название и оценка по CVSS.
      • Описание: что это за уязвимость и где найдена.
      • Доказательство (Proof of Concept): скриншоты, команды, которые вы выполняли.
      • Оценка бизнес-риска.
      • Рекомендации по устранению.
  3. Приложения: Полные выводы сканеров, логи и т.д.

5. Ваше итоговое задание: Разработка плана атаки

Вы — пентестер, которому поручили провести внутренний пентест сети `10.10.0.0/24`. Заказчик предоставил вам физический доступ. Ваша задача — не провести атаку, а составить детальный **план работ (Methodology of Work)**.

Опишите ваши действия по следующему плану:

  1. Подготовка: Какие 3 ключевых пункта вы бы обязательно включили в "Правила взаимодействия" (RoE)? Какие основные инструменты должны быть готовы на вашей Kali-машине?
  2. Сбор информации: Какую первую команду Nmap вы выполните, оказавшись в сети? Что вы будете делать с ее результатами?
  3. Цепочка атаки (первые шаги): Опишите гипотетический сценарий, как бы вы получили первоначальный доступ, основываясь на "типичных" результатах сканирования (например, вы нашли открытый SMB и веб-сервер).
  4. Повышение привилегий: Получив доступ к Linux-хосту под пользователем `www-data`, какие 3 вещи вы проверите в первую очередь для повышения привилегий?
  5. Отчетность: Назовите 3 главных раздела, которые должны быть в вашем финальном отчете.

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