Сегодня я на конкретном примере покажу, как антивирус может подставить под удар всю корпоративную сеть.
Крупная промышленная компания заказала у нас пентест. Для внутреннего тестирования выбрали сценарий, в котором злоумышленник подключил свой ПК к локальной сети организации.
Я развернул на машине Kali Linux и начал изучать сеть. Nmap показал около двух с половиной тысяч активных IP-адресов. Пришлось перебрать ряд потенциальных векторов атак. В сети не нашлось ни одного контроллера домена, который можно было скомпрометировать при помощи ZeroLogon (CVE-2020-1472), Bluekeep (CVE-2019-0708) или атаки LLMNR-poisoning (кстати, Responder, входящий в состав Kali, ― удобный инструмент для ее проведения).
Прорыв случился, только когда Metasploit засек три хоста с подозрением на наличие уязвимости EternalBlue (CVE-2017-0147).
В первом действительно была уязвимость, но использовать ее помешало СЗИ. Тогда я еще не знал, какая защитная система была развернута в сети. Во втором случае наличие уязвимости не подтвердилось, а вот третий хост поддался атаке, и я получил удаленный доступ к системе с максимальными привилегиями.
Эксплуатация уязвимости EternalBlue
Существует много сценариев постэксплуатации такой дыры. Я остановился на создании новой учетной записи с административными привилегиями. Вошел под этой учетной записью по протоколу RDP, снял дамп памяти процесса lsass.exe, а затем при помощи Mimikatz извлек валидные учетные данные в виде логинов и NTLM-хешей паролей пользовательских учетных записей.
Затем вытащил файлы из локального хранилища учетных записей: SAM, SYSTEM, SECURITY. Внутри нашелся NTLM-хеш учетной записи локального администратора.
Извлечение учетных данных из дампа локального хранилища учетных записей
Этого вполне достаточно для горизонтального продвижения по инфраструктуре, ведь существует атака Pass-the-hash. Она подразумевает использование хеша пароля и позволяет получить доступ ко всем хостам, которые доступны этому локальному администратору.
Аутентификация при помощи атаки Pass-the-hash
Среди хостов, доступных администратору, нашлась машина, защищенная антивирусом Касперского. В его настройках был указан IP-адрес сервера управления антивирусной защитой. Оказалось, что одна из пользовательских учетных записей, извлеченных из lsass.exe на предыдущем этапе пентеста, имеет доступ к этому серверу.
Используя хеш, я получил сессию на сервере администрирования и создал вспомогательную локальную учетную запись pentest. Затем добавил pentest в локальную группу Administrators (чтобы получить право на подключение по протоколу RDP) и локальную группу KLAdmins, в которой находятся учетки администраторов антивирусной защиты.
Антивирусная защита компании оказалась под моим управлением.
Административная сессия на сервере управления антивирусной защитой
Теперь оставалось только развернуть консоль управления и аутентифицироваться на центральном сервере антивирусной защиты. Центр управления дал исчерпывающую информацию об устройстве сети: где расположены рабочие станции, сервера и базы данных, где сидят бухгалтеры, а где программисты, какие ОС установлены на машинах.
Можно было атаковать, например, базы данных, отключив антивирус и ослабив их защиту. Но, это довольно грубый ход. Куда интереснее сыграть на том, что центр управления позволяет удаленно устанавливать приложения.
Обычно так раскатывают прикладное программное обеспечение, а я собрал установочный пакет, который делает только одну вещь — создает локальную учетную запись с административными привилегиями.
Параметры запуска утилиты в составе инсталляционного пакета. Исполняемые команды видны в параметрах запуска
Затем я нашел хост с сессиями учетных записей, входящих в группу Domain Admins, и накатил туда пакет через центр управления антивирусной защитой.
Свежесозданный инсталляционный пакет PsExec в списке программ для удаленной установки
Основной пакета послужила утилита PsExec. Она имеет цифровую подпись Microsoft, не вызывает срабатывание антивирусных решений и позволяет выполнять любые команды операционной системы. Так что все успешно установилось.
Доступ к скомпрометированному хосту по протоколу RDP
После этого я подключился к хосту по протоколу RDP, снял еще один дамп памяти процесса lsass.exe и на этот раз извлек NTLM-хеши паролей учетных записей доменных администраторов.
Извлечение NTLM-хеша пароля учетной записи доменного администратора на скомпрометированном хосте
Атакующий может внедрить NTLM-хеш учетной записи администратора домена в процесс lsass.exe на подконтрольном хосте и выполнить атаку DCSync. Ведь по умолчанию все члены группы Domain admins обладают привилегией выполнения синхронизации.
Таким образом, на подконтрольный хост заливается все содержимое хранилища доменных учетных записей NTDS с любого контроллера домена в сети. Это NTLM-хеши всех компьютерных и пользовательских учетных записей, включая служебные.
Фрагмент дампа хранилища учетных записей
С этими данными можно легко закрепиться в домене при помощи атак Golden Ticket и Silver Ticket, а также найти учетные записи, обладающие правами DCSync в других доменах леса и скомпрометировать их.
Скомпрометировать центр управления даже стратегически выгоднее, чем администратора домена. Полномочия администратора, как правило, дают доступ только к определенным сегментам сети, а с сервера управления обычно видна вся сеть организации. Не говоря о том, что его можно использовать для распространения вредоносного ПО.
автор @secm3n
источник bastion-tech.ru
Крупная промышленная компания заказала у нас пентест. Для внутреннего тестирования выбрали сценарий, в котором злоумышленник подключил свой ПК к локальной сети организации.
Я развернул на машине Kali Linux и начал изучать сеть. Nmap показал около двух с половиной тысяч активных IP-адресов. Пришлось перебрать ряд потенциальных векторов атак. В сети не нашлось ни одного контроллера домена, который можно было скомпрометировать при помощи ZeroLogon (CVE-2020-1472), Bluekeep (CVE-2019-0708) или атаки LLMNR-poisoning (кстати, Responder, входящий в состав Kali, ― удобный инструмент для ее проведения).
Прорыв случился, только когда Metasploit засек три хоста с подозрением на наличие уязвимости EternalBlue (CVE-2017-0147).
В первом действительно была уязвимость, но использовать ее помешало СЗИ. Тогда я еще не знал, какая защитная система была развернута в сети. Во втором случае наличие уязвимости не подтвердилось, а вот третий хост поддался атаке, и я получил удаленный доступ к системе с максимальными привилегиями.
Эксплуатация уязвимости EternalBlue
Существует много сценариев постэксплуатации такой дыры. Я остановился на создании новой учетной записи с административными привилегиями. Вошел под этой учетной записью по протоколу RDP, снял дамп памяти процесса lsass.exe, а затем при помощи Mimikatz извлек валидные учетные данные в виде логинов и NTLM-хешей паролей пользовательских учетных записей.
Затем вытащил файлы из локального хранилища учетных записей: SAM, SYSTEM, SECURITY. Внутри нашелся NTLM-хеш учетной записи локального администратора.
Извлечение учетных данных из дампа локального хранилища учетных записей
Этого вполне достаточно для горизонтального продвижения по инфраструктуре, ведь существует атака Pass-the-hash. Она подразумевает использование хеша пароля и позволяет получить доступ ко всем хостам, которые доступны этому локальному администратору.
Аутентификация при помощи атаки Pass-the-hash
Среди хостов, доступных администратору, нашлась машина, защищенная антивирусом Касперского. В его настройках был указан IP-адрес сервера управления антивирусной защитой. Оказалось, что одна из пользовательских учетных записей, извлеченных из lsass.exe на предыдущем этапе пентеста, имеет доступ к этому серверу.
Используя хеш, я получил сессию на сервере администрирования и создал вспомогательную локальную учетную запись pentest. Затем добавил pentest в локальную группу Administrators (чтобы получить право на подключение по протоколу RDP) и локальную группу KLAdmins, в которой находятся учетки администраторов антивирусной защиты.
Антивирусная защита компании оказалась под моим управлением.
Административная сессия на сервере управления антивирусной защитой
Теперь оставалось только развернуть консоль управления и аутентифицироваться на центральном сервере антивирусной защиты. Центр управления дал исчерпывающую информацию об устройстве сети: где расположены рабочие станции, сервера и базы данных, где сидят бухгалтеры, а где программисты, какие ОС установлены на машинах.
Можно было атаковать, например, базы данных, отключив антивирус и ослабив их защиту. Но, это довольно грубый ход. Куда интереснее сыграть на том, что центр управления позволяет удаленно устанавливать приложения.
Обычно так раскатывают прикладное программное обеспечение, а я собрал установочный пакет, который делает только одну вещь — создает локальную учетную запись с административными привилегиями.
Параметры запуска утилиты в составе инсталляционного пакета. Исполняемые команды видны в параметрах запуска
Затем я нашел хост с сессиями учетных записей, входящих в группу Domain Admins, и накатил туда пакет через центр управления антивирусной защитой.
Свежесозданный инсталляционный пакет PsExec в списке программ для удаленной установки
Основной пакета послужила утилита PsExec. Она имеет цифровую подпись Microsoft, не вызывает срабатывание антивирусных решений и позволяет выполнять любые команды операционной системы. Так что все успешно установилось.
Доступ к скомпрометированному хосту по протоколу RDP
После этого я подключился к хосту по протоколу RDP, снял еще один дамп памяти процесса lsass.exe и на этот раз извлек NTLM-хеши паролей учетных записей доменных администраторов.
Извлечение NTLM-хеша пароля учетной записи доменного администратора на скомпрометированном хосте
Атакующий может внедрить NTLM-хеш учетной записи администратора домена в процесс lsass.exe на подконтрольном хосте и выполнить атаку DCSync. Ведь по умолчанию все члены группы Domain admins обладают привилегией выполнения синхронизации.
Таким образом, на подконтрольный хост заливается все содержимое хранилища доменных учетных записей NTDS с любого контроллера домена в сети. Это NTLM-хеши всех компьютерных и пользовательских учетных записей, включая служебные.
Фрагмент дампа хранилища учетных записей
С этими данными можно легко закрепиться в домене при помощи атак Golden Ticket и Silver Ticket, а также найти учетные записи, обладающие правами DCSync в других доменах леса и скомпрометировать их.
Разбор полетов
Подобную атаку возможно реализовать при помощи практически любой системы централизованного управления. СЗИ, DLP, центры управления обновлениями, системы резервного копирования, системы удаленной техподдержки и контроля работы сотрудников — все это потенциальный источник проблем и заманчивая цель для хакерских атак.Скомпрометировать центр управления даже стратегически выгоднее, чем администратора домена. Полномочия администратора, как правило, дают доступ только к определенным сегментам сети, а с сервера управления обычно видна вся сеть организации. Не говоря о том, что его можно использовать для распространения вредоносного ПО.
автор @secm3n
источник bastion-tech.ru