Введение
Уязвимость CVE-2021-36934 (https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-36934), также известная как SeriousSAM и HiveNightmare, была обнаружена Йонасом Ликкегаардом в июле 2021 года. Из-за неправильной конфигурации ACL в Windows 10 после сборки 1809 и Windows 11 пользователям без прав администратора предоставляется доступ для чтения к священному трио файлов SAM, SYSTEM и SECURITY в каталоге% windir%\system32\config. Однако для этого необходимо включить защиту системы и создать теневую копию тома. Название "HiveNightmare" происходит от общего названия "hives", которое относится к файлам, в которых хранятся данные реестра.
Защита системы и создание точек восстановления
Защита системы в Windows: эта функция доступна после выхода Windows ME и XP и позволяет пользователю создавать резервные копии, снимки состояния или точки восстановления в своей системе Windows. Если вы чувствуете необходимость восстановить вашу Windows до предыдущего момента времени, вы можете это сделать. Microsoft упоминает, какие файлы, настройки и конфигурации сохраняются здесь (https://docs.microsoft.com/en-gb/windows/win32/sr/system-restore-portal).
Теневое копирование тома: после Windows 7 и Win Server 2003 служба VSS (служба теневого копирования тома) сопровождает пользователей в их стремлении правильно создавать резервные копии своих серверов, общих папок и точек восстановления на локальных или удаленных системах - это NTFS или ReFS. В нашем случае теневая копия тома относится к локальной точке восстановления, созданной пользователем.
Чтобы продемонстрировать использование этой уязвимости, мы сначала создадим нашу собственную лабу. После чистой установки нашей собственной Windows 10 мы активировали учетную запись администратора в системе и установили для нее простой пароль 1234.
net user administrator /active:yes
net user administrator 1234
Далее нужно будет включить защиту системы. Для этого перейдите в панель управления -> система и безопасность -> система -> защита системы и нажмите configure
Теперь установите флажок "Включить защиту системы", нажмите "Применить" и "ОК".
Когда вы вернетесь в меню защиты системы сейчас, вы увидите, что ранее выделенная серым цветом опция "создать" в настройках точки восстановления теперь активирована. Нажмите "Создать", чтобы создать точку восстановления прямо сейчас.
Дайте ей любое имя. Я назвал случайную дату.
Теперь пойдем дальше
Метод эксплуатации 1: HiveNightmare.exe (эксплойт C++)
Теперь, чтобы использовать уязвимость, Кевин Бомонт создал для нее зеродей (и PoC). Этот эксплойт ищет теневую копию в системе и считывает ее для кустов SAM, SYSTEM и SECURITY.
Эксплойт написан на C++ и создан GossiTheDog. Его можно найти здесь (https://github.com/GossiTheDog/HiveNightmare). Поскольку эксплойт запускается локально, мы загрузим его в систему, в которой была создана точка восстановления системы, и запустим его с помощью простой командной строки пользователя, не являющегося администратором. Как видите, в приглашении ясно говорилось, что если выполнение завершится успешно, три файла будут сдамплены в одну и ту же папку. Мы проверяем то же самое с помощью команды "dir".
Метод эксплуатации 2: serioussam.ps1 (Powershell эксплойт)
Сценарий, созданный Ромаррокой, можно найти здесь (https://github.com/romarroca/SeriousSam). Он создан на Powershell и более портативен, чем вариант exe, созданный Кевином Бомонтом. Он копирует кусты SAM и SYSTEM из созданного дампа точки восстановления. Выполнение довольно простое, просто запустите скрипт вот так
Способ эксплуатации 3: hive.exe (Go exploit)
Кристиан Мелмауэр перевел тот же эксплойт на Go и создал готовый к запуску exe-файл, который можно найти здесь(https://github.com/FireFart/hivenightmare). Он выгружает святое трио в текущий каталог, просто выполнив исполняемый файл следующим образом
Повышение привилегий
До сих пор мы получали дампы кустов SAM, SECURITY и SYSTEM, и теперь мы будем использовать эти файлы для извлечения хэшей и проведения атаки pass-hash. Во-первых, мы используем скрипт secretsdump.py инструментария impacket для сброса хэшей. Сценарий заключается в том, что злоумышленник (т.е. мы) успешно получил ульи с машины жертвы.
Для этого загрузите здесь набор инструментов impacket (https://github.com/SecureAuthCorp/impacket).
Secretsdump - это сценарий Python без агента, используемый для получения различных хэшей из файлов разных типов, включая NTLM, из тройки (формат хэша паролей Windows по умолчанию). Его можно скачать здесь (https://github.com/SecureAuthCorp/impacket/blob/master/impacket/examples/secretsdump.py).
Для этого мы скопируем три файла в текущий каталог и введем:
python3 secretsdump.py -sam /root/SAM -system /root/SYSTEM -security /root/SECURITY LOCAL
Как видно на скриншоте выше, мы получили NTLM-хэш для учетной записи администратора. Очевидно, что в этом случае мы знали пароль (1234), но в идеале злоумышленник теперь взламывает этот хэш с помощью Джона или других подобных инструментов для взлома хеша, или он проводит атаку "pass the hash".
PassTheHash (PtH): в этом типе атаки злоумышленник может обойти/нарушить механизмы аутентификации, предоставив хэш пароля, а не сам пароль. Эта слабость наиболее распространена в системах Windows. Во время входа в сетевую службу в Windows серверная часть в конечном итоге преобразует обычную текстовую строку в хэш и сравнивает ее с существующим хешем в базе данных (кусты); аналогично, при атаке PtH внутренний код из-за присущей ему слабости действует не так как нужно, когда пользователь вводит хэш вместо строки пароля и разрешает аутентификацию. Обратитесь к руководству здесь(https://www.hackingarticles.in/lateral-movement-pass-the-hash-attack/) для более глубокого понимания этой атаки.
Теперь, исходя из хэшей, полученных на предыдущем шаге, мы проведем атаку PtH, используя скрипт psexec.py инструментария Impacket (находится здесь https://github.com/SecureAuthCorp/impacket/blob/master/examples/psexec.py).
Обратите внимание, что после Windows 10 Microsoft изменила принцип работы NTLM-хеширования. LM-хэши больше не используются, но используемый инструмент существует со времен NT и LM. Итак, здесь мы будем использовать строку из 32 нулей вместо хеша LM.
PsExec - В Windows PsTools используется для ряда различных функций, связанных с процессами, таких как листинг, ведение журнала, мониторинг и т.д. PsExec используется для удаленного выполнения процессов. Согласно Sysinternals (здесь https://docs.microsoft.com/en-us/sysinternals/downloads/psexec), "самые мощные возможности PsExec включают запуск интерактивных командных запросов в удаленных системах и инструменты удаленного включения, такие как IpConfig, которые в противном случае не имеют возможности отображать информацию об удаленных системах".
Impacket разработал PsExec на основе Python, который можно использовать для удаленного вызова интерфейса командной строки с использованием учетных данных. Однако здесь мы будем передавать хеш:
python3 psexec.py -hashes 00000000000000000000000000000000:7ce21f17c0aee7fb9ceba532d0546ad6 administrator@192.168.1.145
И у нас все сработало!
Заключение и защита
Простота эксплуатации делает эту уязвимость серьезной угрозой для любой организации. Microsoft выпустила исправления безопасности, однако есть еще одно обходное решение - ограничить доступ к содержимому %windir%\system32\config, введя команду в командной строке cmd:
icacls %windir%\system32\config\*.* /inheritance:e
Спасибо за чтение.
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/windows-privilege-escalation-hivenightmare/
Уязвимость CVE-2021-36934 (https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-36934), также известная как SeriousSAM и HiveNightmare, была обнаружена Йонасом Ликкегаардом в июле 2021 года. Из-за неправильной конфигурации ACL в Windows 10 после сборки 1809 и Windows 11 пользователям без прав администратора предоставляется доступ для чтения к священному трио файлов SAM, SYSTEM и SECURITY в каталоге% windir%\system32\config. Однако для этого необходимо включить защиту системы и создать теневую копию тома. Название "HiveNightmare" происходит от общего названия "hives", которое относится к файлам, в которых хранятся данные реестра.
Защита системы и создание точек восстановления
Защита системы в Windows: эта функция доступна после выхода Windows ME и XP и позволяет пользователю создавать резервные копии, снимки состояния или точки восстановления в своей системе Windows. Если вы чувствуете необходимость восстановить вашу Windows до предыдущего момента времени, вы можете это сделать. Microsoft упоминает, какие файлы, настройки и конфигурации сохраняются здесь (https://docs.microsoft.com/en-gb/windows/win32/sr/system-restore-portal).
Теневое копирование тома: после Windows 7 и Win Server 2003 служба VSS (служба теневого копирования тома) сопровождает пользователей в их стремлении правильно создавать резервные копии своих серверов, общих папок и точек восстановления на локальных или удаленных системах - это NTFS или ReFS. В нашем случае теневая копия тома относится к локальной точке восстановления, созданной пользователем.
Чтобы продемонстрировать использование этой уязвимости, мы сначала создадим нашу собственную лабу. После чистой установки нашей собственной Windows 10 мы активировали учетную запись администратора в системе и установили для нее простой пароль 1234.
net user administrator /active:yes
net user administrator 1234
Далее нужно будет включить защиту системы. Для этого перейдите в панель управления -> система и безопасность -> система -> защита системы и нажмите configure
Теперь установите флажок "Включить защиту системы", нажмите "Применить" и "ОК".
Когда вы вернетесь в меню защиты системы сейчас, вы увидите, что ранее выделенная серым цветом опция "создать" в настройках точки восстановления теперь активирована. Нажмите "Создать", чтобы создать точку восстановления прямо сейчас.
Дайте ей любое имя. Я назвал случайную дату.
Теперь пойдем дальше
Метод эксплуатации 1: HiveNightmare.exe (эксплойт C++)
Теперь, чтобы использовать уязвимость, Кевин Бомонт создал для нее зеродей (и PoC). Этот эксплойт ищет теневую копию в системе и считывает ее для кустов SAM, SYSTEM и SECURITY.
Эксплойт написан на C++ и создан GossiTheDog. Его можно найти здесь (https://github.com/GossiTheDog/HiveNightmare). Поскольку эксплойт запускается локально, мы загрузим его в систему, в которой была создана точка восстановления системы, и запустим его с помощью простой командной строки пользователя, не являющегося администратором. Как видите, в приглашении ясно говорилось, что если выполнение завершится успешно, три файла будут сдамплены в одну и ту же папку. Мы проверяем то же самое с помощью команды "dir".
Метод эксплуатации 2: serioussam.ps1 (Powershell эксплойт)
Сценарий, созданный Ромаррокой, можно найти здесь (https://github.com/romarroca/SeriousSam). Он создан на Powershell и более портативен, чем вариант exe, созданный Кевином Бомонтом. Он копирует кусты SAM и SYSTEM из созданного дампа точки восстановления. Выполнение довольно простое, просто запустите скрипт вот так
Способ эксплуатации 3: hive.exe (Go exploit)
Кристиан Мелмауэр перевел тот же эксплойт на Go и создал готовый к запуску exe-файл, который можно найти здесь(https://github.com/FireFart/hivenightmare). Он выгружает святое трио в текущий каталог, просто выполнив исполняемый файл следующим образом
Повышение привилегий
До сих пор мы получали дампы кустов SAM, SECURITY и SYSTEM, и теперь мы будем использовать эти файлы для извлечения хэшей и проведения атаки pass-hash. Во-первых, мы используем скрипт secretsdump.py инструментария impacket для сброса хэшей. Сценарий заключается в том, что злоумышленник (т.е. мы) успешно получил ульи с машины жертвы.
Для этого загрузите здесь набор инструментов impacket (https://github.com/SecureAuthCorp/impacket).
Secretsdump - это сценарий Python без агента, используемый для получения различных хэшей из файлов разных типов, включая NTLM, из тройки (формат хэша паролей Windows по умолчанию). Его можно скачать здесь (https://github.com/SecureAuthCorp/impacket/blob/master/impacket/examples/secretsdump.py).
Для этого мы скопируем три файла в текущий каталог и введем:
python3 secretsdump.py -sam /root/SAM -system /root/SYSTEM -security /root/SECURITY LOCAL
Как видно на скриншоте выше, мы получили NTLM-хэш для учетной записи администратора. Очевидно, что в этом случае мы знали пароль (1234), но в идеале злоумышленник теперь взламывает этот хэш с помощью Джона или других подобных инструментов для взлома хеша, или он проводит атаку "pass the hash".
PassTheHash (PtH): в этом типе атаки злоумышленник может обойти/нарушить механизмы аутентификации, предоставив хэш пароля, а не сам пароль. Эта слабость наиболее распространена в системах Windows. Во время входа в сетевую службу в Windows серверная часть в конечном итоге преобразует обычную текстовую строку в хэш и сравнивает ее с существующим хешем в базе данных (кусты); аналогично, при атаке PtH внутренний код из-за присущей ему слабости действует не так как нужно, когда пользователь вводит хэш вместо строки пароля и разрешает аутентификацию. Обратитесь к руководству здесь(https://www.hackingarticles.in/lateral-movement-pass-the-hash-attack/) для более глубокого понимания этой атаки.
Теперь, исходя из хэшей, полученных на предыдущем шаге, мы проведем атаку PtH, используя скрипт psexec.py инструментария Impacket (находится здесь https://github.com/SecureAuthCorp/impacket/blob/master/examples/psexec.py).
Обратите внимание, что после Windows 10 Microsoft изменила принцип работы NTLM-хеширования. LM-хэши больше не используются, но используемый инструмент существует со времен NT и LM. Итак, здесь мы будем использовать строку из 32 нулей вместо хеша LM.
PsExec - В Windows PsTools используется для ряда различных функций, связанных с процессами, таких как листинг, ведение журнала, мониторинг и т.д. PsExec используется для удаленного выполнения процессов. Согласно Sysinternals (здесь https://docs.microsoft.com/en-us/sysinternals/downloads/psexec), "самые мощные возможности PsExec включают запуск интерактивных командных запросов в удаленных системах и инструменты удаленного включения, такие как IpConfig, которые в противном случае не имеют возможности отображать информацию об удаленных системах".
Impacket разработал PsExec на основе Python, который можно использовать для удаленного вызова интерфейса командной строки с использованием учетных данных. Однако здесь мы будем передавать хеш:
python3 psexec.py -hashes 00000000000000000000000000000000:7ce21f17c0aee7fb9ceba532d0546ad6 administrator@192.168.1.145
И у нас все сработало!
Заключение и защита
Простота эксплуатации делает эту уязвимость серьезной угрозой для любой организации. Microsoft выпустила исправления безопасности, однако есть еще одно обходное решение - ограничить доступ к содержимому %windir%\system32\config, введя команду в командной строке cmd:
icacls %windir%\system32\config\*.* /inheritance:e
Спасибо за чтение.
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/windows-privilege-escalation-hivenightmare/