Уязвимости механизмов аутентификации в ОС Windows Практические аспекты Антон Карпов, компания Digital Security Уязвимости механизмов аутентификации в Windows Практические аспекты Содержание Протоколы и механизмы авторизации Windows Пароли в Windows. Проблемы LM и NTLM. Исторический экскурс «Pass-the-Hash»: история и эволюция Большая красная кнопка «Сломать все» В поисках NTLM-хеша Способы защиты 2 Уязвимости механизмов аутентификации в Windows Практические аспекты Где-то я про это уже слышал... лет пять назад Первая публичная демонстрация в 1997 году • «A modified SMB client can mount shares on an SMB host by passing the username and corresponding LanMan hash of an account that is authorized to access the host and share. The modified SMB client removes the need for the user to "decrypt" the password hash into its clear-text equivalent» DefCon 16 Августа 2008: «NTLM is dead» • Windows Vista/Server 2008: LMCompatibilityLevel=3 NTLM все еще широко используется 3 Уязвимости механизмов аутентификации в Windows Практические аспекты Аутентификация в Windows Winlogon GINA Local Security Authority (LSA) Аутентификационные пакеты • NTLM (MSV1_0.dll) • Kerberos (Kerberos.dll) Локальный вход в систему: SAM, LM/NTLM/NTLMv2 hash Удаленный вход: LSA, challenge-response SSO Кеширование аутентификационных данных 4 Уязвимости механизмов аутентификации в Windows Практические аспекты Аутентификация в Windows (продолжение) Пароли • LM • NTLM • NTLMv2 Удаленная аутентификация • Challenge-response • LM response • NTLM response • NTLMv2 response • Kerberos 5 Уязвимости механизмов аутентификации в Windows Практические аспекты LM/NTLM хeши Максимум 14 символов («два по семь») Регистронезависимый Дешифруется давно и успешно 6 Уязвимости механизмов аутентификации в Windows Практические аспекты LM/NTLM challenge-response 7 Уязвимости механизмов аутентификации в Windows Практические аспекты NTLMv2 challenge-response 8 Уязвимости механизмов аутентификации в Windows Практические аспекты LM/NTLM/NTLMv2 – проблемы KGS!@#$% Два одинаковых пароля дают два одинаковых хеша Raibow tables Использование хеша вместо пароля 9 Уязвимости механизмов аутентификации в Windows Практические аспекты Tools Gsecdump.exe PwdumpX.exe Msvctl.exe FGdump.exe whosthere.exe/iam.exe Metasploit SMB Module (только LM/NTLMv1) и другие Текущие активные сессии LSA Secrets (кешированные логоны) 10 Уязвимости механизмов аутентификации в Windows Практические аспекты Пример 11 Уязвимости механизмов аутентификации в Windows Практические аспекты PtH-Pwner Patched WINEXE + NbtScan + bunch of shell magic http://www.dsec.ru/dsecrg/releases/pth-pwner.tar.gz Usage: ./pth-pwner -u [domain\]username -s SMBHASH -h host|subnet [-c cfile] [-f hostfile] [-g gsecdump log] username SMBHASH host|subnet domain cfile hostfile gsecdump log username to log into computer should be in form LM:NTLM single host or subnet in CIDR treat username as domain user of <domain> otherwise it’s treated as local user read commands to execute on remote computer from file. We use ‘ipconfig’ if not present read hosts to scan from <hostfile> rather than using –h read usernames and hashes from output produced by gsecdump.exe utility. In this mode pth-pwner tries to login with each presented credentials to each box from the list. So-called "Try-them-all" mode 12 Уязвимости механизмов аутентификации в Windows Практические аспекты PtH-Pwner ./pth-pwner -u CORP\Administrator \ -s 1451aa541d3...6:b3..393e7 -h 192.168.1.0/24 ./pth-pwner -g gsecdump.log -f hosts.txt ./pth-pwner -g gsecdump.log \ -h 192.168.1.1 \ -c myevilcommands.txt 13 Уязвимости механизмов аутентификации в Windows Практические аспекты Kerberos? Да, но... HKLM\SYSTEM\CurrentControlSet\Control\Lsa 0. Клиенты: LM и NTLM, контроллеры: LM/NTLMv1/NTLMv2 1. Клиенты: LM/NTLMv1/NTLMv2, контроллеры: LM/NTLMv1/NTLMv2 2. Клиенты: NTLMv1/NTLMv2, контроллеры: LM/NTLM/NTLMv2 3. Клиенты: NTLMv2, контроллеры: LM/NTLM/NTLMv2 4. Клиенты: NTLMv2, контроллеры: NTLM/NTLMv2 5. Клиенты: NTLMv2, контроллеры: NTLMv2 14 Уязвимости механизмов аутентификации в Windows Практические аспекты Как получить хеш? MS 06-040 (NetpwPathCanonicalize) • Win2000 ≤ SP4 MS 07-029 (DNS RPC) • Win2000 ≤ SP4 • Win2003 ≤ SP2 MS 03-026 (RPC DCOM) • «Жива не только в наших сердцах» и не только 15 Уязвимости механизмов аутентификации в Windows Практические аспекты HTTP NTLM auth Squirtle • http://code.google.com/p/squirtle/ PokeHashball • http://grutz.jingojango.net/exploits/pokehashball.html • «Зоны доверия» (IE trusted zones) — атаки только в локальной сети • Однако в IE были уязвимости... (flash/java) Squirtle + ntlmapps 16 Уязвимости механизмов аутентификации в Windows Практические аспекты Способы защиты Длина пароля PKI / смарткарты / токены Избавиться от MSV1_0.dll 21.11.2007, Compass Security AG http://www.csnc.ch/static/download/Hash_Injection_Attack_E.pdf Удалить LSA\SecurityPackages Удалить msv1_0.dll Не сработало :) 17 Уязвимости механизмов аутентификации в Windows Практические аспекты Спасибо за внимание 18