Внутреннее тестирование на проникновение, одна из самых сложных и при этом впечатляющих услуг на рынке. Впечатляющих в первую очередь для руководства, ведь за несколько дней, а иногда и часов, пентестер выкладывает перед ним на стол пароли к учетным записям в базах данных 1с, SAP, CRM, Jira, пароль администратора домена, финансовую отчетность, сканы паспортов топ менеджмента и любую другую информацию по запросу.
Но в большинстве случаев все это получить не так сложно как кажется, по моей статистике, накопленной за 4 года работы в этой области, около 80% внутренних пентестов заканчиваются захватом всей сети.
Неплохая схема от securelist.ru, но фишинг тут лишний для данного повествования
Модель злоумышленника при таких работах проста, он имеет доступ в корпоративную сеть, или же к одному из компьютеров рядовых сотрудников, например секретарши. Как именно он получил доступ не имеет значения, прошел ли на территорию и спрятал где-то за принтером Raspberry, или же банально заразил компьютер через фишинговое письмо.
С этого пентестер и начинает свой путь по сети. Этот “злоумышленник” не использует никакое уникальное ПО, и конечно же не имеет под рукой уязвимостей нулевого дня. Наш герой обращается к публичным гайдам и публичному ПО и… ему этого более чем достаточно. Именно так это и делают настоящие злоумышленники, например в 2017 году Group-iB подробно описывала атаки на банки в РФ и этап захвата сети банка. Так вот ничего уникального они не использовали, все подходы и методы были идентичны тем, что мои коллеги пентестеры делают на внутреннем пентесте!
Поехали
Существует ряд наиболее часто встречающихся проблем ИБ, из-за которых захватить корпоративную сеть организации становится слишком легко.
- Shadow IT — забытые компьютеры/сервера/системы. Они как правило не обновлены, без домена и групповых политик, с паролями по умолчанию. Возможно они использовались когда-то для теста и не были выключены, или остались «в наследство» от прошлого админа и были забыты. Именно с такого проще всего начинать, получить первые учетные записи домена, запись старого локального админа… Именно на такой инфраструктуре работают bluekeep, Estemaudit, PrivExchange и прочие публичные эксплойты под критические уязвимости. Там находятся MS17-010 и даже MS08-067! Да в 2021 году.
- LLMNR и NBNS спуффинг — настоящая палочка-выручалочка для пентестера. Два включенных по умолчанию протокола, которые позволяют вам практически незаметно для пользователей вашей сети встать посередине и угнать хэши учетных записей домена.
- “Любовь” пользователей к смене паролей — у нас политикой разрешены только стойкие пароли. И меняются они каждые 3 месяца, скажете вы. Тогда я вас расстрою, процентов 60% вашей компании будут “January2021”, “February2021” и так далее. Спецсимволы? “January2021!” Проверено не на одной компании, на удивление практика частой смены паролей сейчас играет в минус.
- Файловые помойки — во многих компаниях активно с ними борются, но они есть. И что на них только нет, при правильном поиске можно найти не только пароли пользователей, но и сервисные учетные записи. Также там можно оставить ярлык, на свою шару и собирать хэши учетных записей зашедших пользователей.
- Хранение паролей в оперативной памяти lsass.exe — есть такая любимая игрушка у пентестеров и злоумышленников — Mimikatz, которая помимо всего прочего позволяет эффективно доставать пароли из оперативной памяти процесса lsass.exe, в открытом виде. Это не заработает если у вас в сети нет серверов/компьютеров с ОС ниже Server 2012 или Windows 8. Но до полного перехода на эти версии еще далеко, а защитить lsass на старых серверах еще сложнее. Поэтому это лучшее средство поднятия привилегий с локального админа.
- Кривая настройка антивируса — антивирус установлен, заблокированы изменения паролем, что еще нужно? Исключения. Очень часто они настраиваются единообразно для всех компьютеров в сети, например есть исключение на папку IIS… которого на большинстве компьютеров то и нет. А что мешает злоумышленнику ее создать и запускать оттуда вирус? Ничего, вы сами оставили избыточные исключения.
- Пароль локального администратора в GPO — Майкрософт уже много лет говорит о том, что нельзя менять учетные записи через групповые политики, и даже сделало для этого отдельный софт. Но почему пароль ведь там зашифрован? Да зашифрован, ключом который уже много лет слит в интернет, и все пользователи домена нагуглив гайд могут узнать УЗ локальных админов, или другие раздаваемые локальные УЗ.
- Неэффективная сетевая сегментация — да, VLANы нарезаны, но только правил фаерволов между ними нет, или почти нет, подключаться по управляющим портам может кто угодно, пользователям доступны сервисы, которые им и не нужны, а все это очень ускоряет работу пентестеру, да так удобнее и админам и злоумышленникам, спасибо.
- Проблемы Linux-машин, о них покороче ведь встречаются они пореже в энтерпрайзе. Запуск скриптов через crontab с кривыми правами или неполными путями, позволяют подменить скрипт или выполнить свой и так поднять привилегии. Избыточные права на sudo команды, ну и конечно же bash history и по ошибке введенные пароли, чего только не увидишь там.
“Нам потребовался всего один день, теперь взгляните на отчёт”
Кейсы и Kill-chains. От самых простых и коротких до простых и длинных
“Плоская сеть”
- Llmnr/nbns спуффинг.
- Множественные хэши включая хэш доменного админа(Ivanov_adm).
- Перебор хэша (Cby[hjafpjnhjy).
- Профит!
Время? 20 минут.
“Грязные шары”
- Llmnr/nbns спуффинг.
- Множественные хэши пользователей, часть из них подобраны (January2021!).
- Поиск по файловой помойке, найдены конфиги сервиса с сервисной УЗ администратора (Zabbix_m).
- Профит!
Время? 1 час.
“Групповые политики”
- Llmnr/nbns спуффинг.
- Множественные хэши пользователей, часть из них подобраны (January2021!).
- Анализ GPO, найден пароль локального админа, расшифрован(Administrator).
- Заход под локальным админом на один из серверов с ОС 2008R2(Terminal_2_srv).
- Пароли из оперативной памяти процесса lsass.exe получены, включая доменного админа.
- Профит!
Время? 2 часа.
“Shadow IT”
- Сканирование сети.
- Найден уязвимый сервер вне домена.
- MS17-010, сервер захвачен, получена УЗ локального администратора(Administrator).
- Заход под локальным админом на один из серверов с ОС 2008R2(Msk_mail3).
- Пароли из оперативной памяти процесса lsass.exe получены, включая доменного админа.
- Профит!
Время? 2 часа.
“Банк”
- Первоначальная сеть “мертвая” Llmnr/nbns спуффинг ничего не дает
- Сканирование сети, поиск сервисов.
- Найдена забытая система мониторинга с учеткой по умолчанию (admin/admin), в ней УЗ домена(Monitor1), но с правами обычного пользователя.
- Получен доступ к файловой шаре пользователей, найдена УЗ пользователя с правами на удаленное подключение(PopovAO).
- Выполнено подключение к серверу 2008R2(MSK_FSRV3), выполнено закрепление и обход Антивирусного ПО из-за лишних исключений.
- Привилегии подняты, из памяти процесса lsass.exe получена привилегированная УЗ сотрудника ИБ(Romanov_sec), но без прав администратора домена.
- Наиболее интересный сегмент — процессинг недоступен, закрыт сетевой доступ с серверов.
- Проход по ИБ-серверам, сервер (MSK_MaxPatrol) имеет доступ ко всей сети без ограничений.
- Вход на сервер 2008R2(MSK_PRC_APP2) в защищенном сегменте, восстановлен пароль локального администратора из lsass.exe.
- Профит!
Время? 1 день.
Подытожим
Это самые популярные проблемы ИБ, во многих корпоративных сетях встречаются 2-3 из них, а иногда и все. Для их эксплуатации не требуется высокого уровня навыков, и гайдов что находится дальше первой страницы поиска гугла. От этих проблем нужно избавляться, вот самые популярные рекомендации:
- Регулярно проводить аудит/сканирование корпоративной сети, обновление карты сети и сервисов, отключать все неиспользуемое.
- Использовать DNS, а не LLMNR и NBNS.
- Ввести требования по сложности паролей, черный список словарных паролей, смена паролей не чаще раза в полгода. Провести работу с пользователями.
- Бороться с файловыми помойкам, только папки для отделов со строгим контролем доступа.
- Перейти на версии ОС Windows выше 2008R2.
- Провести аудит исключений антивирусного ПО, удалить все лишние и неиспользуемые, уделить особое внимание исключениям на папки.
- Использовать Microsoft LAPS, а не GPO для распространения пароля локального администратора.
- Использовать только “белый список” правил между сегментами сети, уделить особое внимание серверам, которым нужен доступ во все сегменты.
- Внимательно изучить содержимое Linux-машин и запускаемых скриптов из crontab.
Эти проблемы можно решить и иначе, так как вам удобнее, но главное решить.
Я очень надеюсь, что в будущем жизнь пентестерам и злоумышленникам усложнят, заставят их изучать все доступные сервисы в сети и забыть про этот список. Сделайте свою корпоративную сеть защищеннее, а среднестатистический пентест настоящей битвой умов.
Автор: Бочкарев Антон