Первый официальный pentest внутренней сети: что нашлось за восемь часов
Проводим первый формальный внутренний pentest для клиента: nmap, Nessus, ручная проверка прав. Открытый RDP, admin/admin на принтере, SMB с финансами - всё это за один рабочий день.
OWASP Testing Guide выходит в финальной версии в 2006 году, pentest перестаёт быть экзотикой и становится реальной услугой для среднего бизнеса
До этого мы делали аудиты прав в Active Directory, проверяли политики паролей, разбирали инциденты постфактум. Но вот клиент попросил именно pentest - слово, которое ещё год назад звучало бы как что-то из хакерских форумов, а сегодня фигурирует в договоре с юридическим отделом и печатью. Восемь часов, один инженер, согласованный scope - только внутренняя сеть, без социальной инженерии.
Общепринятой методологии тогда ещё не было, OWASP Testing Guide только вышел в финальной версии. Поэтому структуру работы мы выстраивали из здравого смысла и того, что накопилось в практике: разведка, сканирование, анализ уязвимостей, ручная проверка критических точек.
Разведка и сканирование. Первый час - nmap по всему адресному пространству клиента. Флаги -sV -O, выявляем живые хосты, открытые порты, версии сервисов. Карта сети оказалась куда богаче, чем показывала документация: несколько хостов, которых «не должно быть», принтеры с открытыми веб-интерфейсами, пара машин с Windows 2000, давно не обновлявшихся. Второй инструмент - Nessus 2.x: запустили полный скан, пока разбирали вывод nmap. Nessus выплюнул отчёт страниц на сорок, половина - info-уровень, но среди них несколько критических.
Открытый RDP на периметре. Это нашёл nmap ещё на первом часу - порт 3389, доступный снаружи, на машине в DMZ. Не на сервере приложений, не на чём-то очевидном - на старой рабочей станции, которую когда-то подключили для удалённой работы одного сотрудника и забыли закрыть. Машина под Windows XP SP1, без последних патчей, со стандартными учётными данными. Мы не стали проверять дальше учётки - по договору достаточно было зафиксировать факт доступности и остановиться. Но вектор очевиден.
Принтер с паролем admin/admin. Сетевой лазерный принтер - солидная марка, корпоративная модель - оказался с заводским паролем на веб-интерфейсе. Внутри: адресная книга с именами и email сотрудников, журнал заданий печати с именами файлов, настройки SNMP-сообщества. Отдельно интересно, что принтер отвечал на SNMP с community string «public» - стандарт, который мы рекомендовали менять ещё в посте про мониторинг сети. Клиент искренне удивился: они считали, что принтер - это не «система», к которой нужна политика паролей.
SMB-шара с финансовыми документами. Вот это - самая неприятная находка дня. На одном из файловых серверов обнаружился открытый SMB-ресурс, доступный без аутентификации любому в локальной сети. Внутри - папка с названием вроде «Бухгалтерия», несколько Excel-файлов с именами, которые не оставляют сомнений в содержимом. Мы открыли один - платёжные реестры за несколько месяцев. Всё это лежало открытым, потому что «так удобнее бухгалтерам, они забывают пароль».
Почему так вышло. Это не халтура конкретного администратора. Это системная история: инфраструктура росла органически, каждое решение принималось из соображений «работает - не трогай». Принтер настраивал один человек, шару открывал другой, RDP на DMZ-машину прокидывал третий. Никакой сегментации с контролем трафика между зонами не было - всё в одном плоском пространстве. В такой среде каждая точка доступа - потенциальный вход.
Что сделали по итогам. Отчёт на следующий день, приоритизация по критичности. RDP закрыли в тот же день - файерволл, правило. Принтер - смена пароля, отключение SNMP «public», ограничение доступа к веб-интерфейсу по IP. SMB-шара - удаление анонимного доступа, разграничение прав по группам AD, проверка остальных ресурсов на сервере. На «остальные ресурсы» ушла ещё половина дня - нашлись ещё два открытых шары, уже без чувствительных данных, но всё равно лишних.
Наблюдение из практики. Восемь часов работы одного инженера без специализированного железа - и три критических находки. Не потому что сеть была плохо защищена по каким-то абстрактным меркам, а потому что её никто никогда не смотрел снаружи внутрь. Администраторы защищают от угроз, которые знают. Pentest показывает угрозы, которых не знают.
Для клиента это было неожиданно ударно. Для нас - подтверждение, что аудит в формате проверки прав и политик стоит дополнять периодической проверкой периметра. Не раз в три года по требованию регулятора, а как нормальная рабочая процедура.
- SIEM: первые шаги и корреляция логов · 19 сентября 2006
- Сегментация сети для PCI DSS: три VLAN на одном Cisco-стеке · 29 марта 2006