Внутренний пентест: разведка в домене Windows — эфир CyberED - CyberED
Повышение цен ▲
на все программы в 2026 году
Интенсивы Взлом Защита Безопасная разработка Основы
Мероприятия Календарь О нас Отзывы
+7 495 181-00-79
+7 495 181-00-79
заказать звонок

Компрометация инфраструктуры с минимальными привилегиями

Тема:Пентест
Когда прошло 15 апреля2 ч 24 мин344 участников
Евгений Строев
Евгений Строев
Вирусный аналитик в Exness

О чём эфир

Посмотришь, как изнутри сети компании узнать о ней многое, не имея ни одной учётной записи: пользователей, версии ПО, карту домена.

Первые шаги: найти контроллер домена, построить карту сети нешумными инструментами и вести разведку по SMB так, чтобы защита ничего не заметила.

Дальше то, что делать после разведки: пользователи через нулевую сессию, Kerberoasting и AS-REP Roasting, поиск секретов в файлах и выгрузка хешей.

В конце истории из проектов о том, как это выглядит на практике.

Забери материалы эфира

Материалы одним файлом: вернись к ним, когда будешь повторять на практике.

Скачать материалы

Разбор эфира по темам

Внутренний пентест: тихая разведка бьёт громкие эксплойты

Внутренний пентест (тестирование на проникновение изнутри сети) начинается с положения, когда у атакующего часто нет ничего: ни доменной учётной записи, ни привилегий, ни карты инфраструктуры.

Четыре этапа внутреннего пентеста
Четыре этапа внутреннего пентеста

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

Логика простая: не захватывать всё подряд, а понять, где контроллер домена и интересные узлы, и двигаться точечно.

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

Евгений Строев

Как найти контроллер домена Active Directory

Контроллер домена это центральный узел Active Directory, и выйти на него получается даже без единой учётной записи. Если ты воткнулся в сеть и получил адрес по DHCP, твои собственные сетевые настройки уже многое держат: адрес DNS, адрес DHCP-сервера, имя внутреннего домена. DNS и DHCP-серверами часто оказываются сами контроллеры домена. Вытащить это помогает nslookup, а на захваченном хосте те же настройки читаются нативно и в Windows, и в Linux.

Nslookup запрашивает SRV-записи LDAP и Kerberos
Nslookup запрашивает SRV-записи LDAP и Kerberos

Хуже, когда настроек нет: доступ пришёл удалённо через VPN, DHCP в сегменте не работает. Тогда выручает Nmap: широковещательные скрипты собирают сетевые параметры, DNS-скрипты опрашивают записи пачкой. А когда приходится сканировать самому, не нужно проходить все порты сразу.

Проверяй сервисы, которые на контроллере домена есть почти всегда: Kerberos, LDAP, SMB, DNS. Это тише и чаще выводит на цель.

Имя внутреннего домена критично потому, что оно часто отличается от публичного. Снаружи компания живёт на company.ru, а внутри домен называется company.local. Без внутреннего имени не провести часть атак на доменных пользователей, ведь аутентификация идёт через контроллер домена.

Карта внутренней сети без привилегий

У готовых построителей карт сети есть известные беды. Кластер из нескольких адресов инструмент рисует как разные хосты, хотя физически это один узел. Серьёзные утилиты стоят дорого и рассчитаны на крупные компании, а взломанные копии могут отдавать собранные данные куда-то на сторону. Тяжёлый серверный софт с обычного ноутбука просто не запустить.

IOXIDResolver для разведки сетевых интерфейсов
IOXIDResolver для разведки сетевых интерфейсов

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

Ищешь в выдаче хост с двумя и более интерфейсами. Это мостик в соседний сегмент: корпоративная сеть сидит на 192.168, а изолированная промышленная часть на 172 или 10.0. Атаковать имеет смысл именно такой узел, а не первый попавшийся, потому что через него есть путь дальше.

Разведка по SMB и SNMP в домене Windows

В Windows-сети почти всегда работают два протокола: SMB и SNMP. SNMP принято считать историей про сетевые устройства, но на практике он часто включён и на обычных машинах. Из того, что отдаёт SMB без доменной учётки, отдельно пригодится подпись: она важна для relay-атак.

Что отдают SMB и SNMP при сканировании
Что отдают SMB и SNMP при сканировании
  • snmpwalk опрашивает один хост, но для больших объёмов слишком медленный; работает он на community-строках, стандартных public для чтения и private для чтения и записи, и любой из них хватает.
  • onesixtyone сканирует огромные диапазоны быстро: на вход ему идут файл со строками и список целей.
  • CrackMapExec и его современный преемник NetExec закрывают путь от разведки до доступа одной утилитой: версия ОС, имя компьютера, роли, подпись SMB, а ещё они отдельно подсвечивают контроллер домена.
  • RunFinger из набора Responder быстро находит хосты без подписи и вытягивает версию ОС и имя домена.

Начинать с Nmap не стоит: он шумнее. Сначала скан хоста, потом сервисов, потом попытка определить версию, и по сети летит слишком много пакетов, на которые есть сигнатуры.

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

На проектах Nmap палился быстро, а SNMP-сканирование мало кто отслеживает. Про старьё: SMBv1 обычно выключен, но встречаются сети, где на банкоматах и внутренних машинах до сих пор живёт XP.

Нулевая сессия SMB и парольная политика домена

Нулевая сессия это подключение к Windows по SMB с пустым именем и пустым паролем. Если сервер настроен неправильно, он отдаёт много полезного. Так умеют CrackMapExec, enum4linux и rpcclient: имя домена, список пользователей, группы, парольную политику, шары, открытые для гостевой учётки.

Сама парольная политика подсказывает, как действовать дальше. Видно порог блокировки, окно счётчика и глубину истории паролей. Если история равна 24, пользователь, который приписывает к постоянному паролю цифры 1, 2, 3, по кругу вернётся к старому примерно на 24-й смене.

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

А если блокировки нет совсем, спрей паролей запускается без оглядки. Отключают блокировку обычно по бытовым причинам: внешние сервисы постоянно брутят со стороны, пользователи сами лочат себе учётки, и поддержка устаёт их разблокировать.

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

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

Евгений Строев

Kerberoasting и AS-REP Roasting без подбора паролей

AS-REP Roasting работает там, где у учётной записи отключена предварительная проверка подлинности Kerberos. Это просто массовый запрос легитимной информации, поэтому сеть без алертов SOC и мониторинга событий Windows атаку может и пропустить. Выстреливает она примерно на одном проекте из пяти.

GetNPUsers запрашивает AS-REP хеши без пароля
GetNPUsers запрашивает AS-REP хеши без пароля

Kerberoasting популярнее и даёт больше. У сервисных учётных записей есть атрибут SPN, который связывает учётку с сервисом: веб, MSSQL, базы данных. Сама атака идёт в три шага:

  1. 1

    Запрашиваешь для сервисной учётки билет Kerberos.

  2. 2

    Забираешь из него зашифрованную часть.

  3. 3

    Ломаешь её офлайн по словарю в hashcat.

В большой инфраструктуре сервисных учёток много, а пароли на них слабые: из десятка обычно вскрывается хотя бы одна.

Инструмент для запроса тот же impacket.

Про словари: заточенные под страну списки из публичных утечек срабатывают почти безотказно. Радужные таблицы для внутренней работы нужны редко.

Поиск секретов в файлах и выгрузка хешей для pass-the-hash

Шары это самое богатое поле. smbmap показывает цветным выводом, где доступ только на чтение, где на запись, а где его нет, выводит содержимое директорий и проходит по всей сети рекурсивно под гостем или найденной учёткой. Есть чтение, выкачиваешь и ищешь секреты и вшитые пароли. Есть запись, можешь положить свой файл под будущую эксплуатацию. Модули spider и spider_plus у CrackMapExec ищут по шаблону, например файлы txt в папке Users, пропускают системные ресурсы и складывают список найденных документов.

Smbmap перечисляет сетевые ресурсы и права доступа
Smbmap перечисляет сетевые ресурсы и права доступа

Когда есть учётка, которая на хосте является администратором, CrackMapExec помечает это как Pwned. Тогда выгружаются локальная база SAM, закэшированные доменные учётки, а при удаче пароли в открытом виде или хеши из процесса LSASS. Хеши идут в pass-the-hash для бокового перемещения либо в hashcat на расшифровку.

Снимать всё подряд не нужно, это шумно и бессмысленно. По сути хватает трёх учёток: одна доменная, чтобы ходить по хостам, один локальный администратор и один привилегированный пользователь. Сократить путь помогает BloodHound: он собирает пользователей, группы и хосты домена и строит карту, куда двигаться, хотя охватывает один домен за раз.

Отдельно про mimikatz. Утилита отличная, но очень известная, и её знает любое средство защиты. На полностью прикрытой сети она не сработает, зато где-нибудь обязательно найдётся забытая старая машина с базой 1С без EDR, в домене, куда заходят администраторы. Применять её стоит осторожно: если спалишься, сразу станет понятно, что в сети кто-то есть. Как альтернатива, процесс LSASS снимают дампом вручную или выгружают данные через реестр.

Чему учит пентест заводов без интернета

На промышленных объектах правила меняются. Пять заводов в двух соседних городах и полное отсутствие интернета означают, что инструменты надо продумать заранее, потому что на месте уже ничего не докачать. Обычный SYN-скан способен подвесить промышленные контроллеры, поэтому там применяют щадящие типы сканирования. Когда во время скана что-то останавливается в цеху, первая мысль всегда о том, не ты ли это сломал, ведь на АСУ ТП ошибка приводит к физическим последствиям.

Агрессивные эксплойты кусаются. Запуск EternalBlue однажды отправил хост в выключение, и точка закрепления была потеряна. Чем больше практики, тем точнее понимаешь, что запускать в первую очередь, чтобы не положить узел и не всполошить команду безопасности.

Беспроводные и физические работы похожи на шпионаж. На одном заводе Wi-Fi никто не использовал, потому что все работали руками, и поймать единственного пользователя удалось только через две недели, случайно в столовой, когда он открыл телефон. Только тогда вышло подсунуть ему поддельную точку доступа.

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

Научиться можно быть кем угодно. Всё решают практика, время и усилия.

Евгений Строев

Ещё эфиры по теме