• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Повышение привилегий Windows: HiveNightmare

yashechka

Генератор контента.Фанат Ильфака и Рикардо Нарвахи
Эксперт
Регистрация
24.11.2012
Сообщения
2 344
Реакции
3 563
Введение

Уязвимость 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

1641546210652.png


Далее нужно будет включить защиту системы. Для этого перейдите в панель управления -> система и безопасность -> система -> защита системы и нажмите configure
1641546220591.png


Теперь установите флажок "Включить защиту системы", нажмите "Применить" и "ОК".

1641546228842.png


Когда вы вернетесь в меню защиты системы сейчас, вы увидите, что ранее выделенная серым цветом опция "создать" в настройках точки восстановления теперь активирована. Нажмите "Создать", чтобы создать точку восстановления прямо сейчас.

1641546236588.png


Дайте ей любое имя. Я назвал случайную дату.

1641546246127.png


Теперь пойдем дальше

Метод эксплуатации 1: HiveNightmare.exe (эксплойт C++)


Теперь, чтобы использовать уязвимость, Кевин Бомонт создал для нее зеродей (и PoC). Этот эксплойт ищет теневую копию в системе и считывает ее для кустов SAM, SYSTEM и SECURITY.

Эксплойт написан на C++ и создан GossiTheDog. Его можно найти здесь (https://github.com/GossiTheDog/HiveNightmare). Поскольку эксплойт запускается локально, мы загрузим его в систему, в которой была создана точка восстановления системы, и запустим его с помощью простой командной строки пользователя, не являющегося администратором. Как видите, в приглашении ясно говорилось, что если выполнение завершится успешно, три файла будут сдамплены в одну и ту же папку. Мы проверяем то же самое с помощью команды "dir".

1641546264888.png


Метод эксплуатации 2: serioussam.ps1 (Powershell эксплойт)

Сценарий, созданный Ромаррокой, можно найти здесь (https://github.com/romarroca/SeriousSam). Он создан на Powershell и более портативен, чем вариант exe, созданный Кевином Бомонтом. Он копирует кусты SAM и SYSTEM из созданного дампа точки восстановления. Выполнение довольно простое, просто запустите скрипт вот так

1641546277701.png


Способ эксплуатации 3: hive.exe (Go exploit)

Кристиан Мелмауэр перевел тот же эксплойт на Go и создал готовый к запуску exe-файл, который можно найти здесь(https://github.com/FireFart/hivenightmare). Он выгружает святое трио в текущий каталог, просто выполнив исполняемый файл следующим образом

1641546289686.png


Повышение привилегий

До сих пор мы получали дампы кустов 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

1641546350423.png


Как видно на скриншоте выше, мы получили 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

1641546383984.png

И у нас все сработало!

Заключение и защита

Простота эксплуатации делает эту уязвимость серьезной угрозой для любой организации. Microsoft выпустила исправления безопасности, однако есть еще одно обходное решение - ограничить доступ к содержимому %windir%\system32\config, введя команду в командной строке cmd:

icacls %windir%\system32\config\*.* /inheritance:e


Спасибо за чтение.

Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/windows-privilege-escalation-hivenightmare/
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх