DsecRG Опыт создания security

advertisement
Уязвимости механизмов
аутентификации в ОС 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
Download