Слабые пароли пользователей — очень распространенная проблема, которая может позволить злоумышленнику повысить свои привилегии и закрепиться в сети компании.
Чтобы этого не допустить, необходимо регулярно анализировать стойкость паролей пользователей.
У системных администраторов нет возможности увидеть пароли пользователей в открытом виде, но они могут выгрузить хэши паролей и провести их перебор.
В этой статье мы расскажем о том, как можно легко получить хэши паролей пользователей и провести эффективный перебор паролей, используя различные методы.
Данный материал также будет полезен пентестерам, которым для развития атаки требуется восстановить пароли пользователей из их хэш-значений.
TL;DR
Чем перебирать?
Скачать в GitHub репозитории последнюю сборку приложения в архиве. Разархивировать и запустить hashcat.exe в командной строке.
Где взять хэши?
Скачать с контроллера домена, утилитой secretsdump.py.
python secretsdump.py deiteriy.local/Administrator@192.168.88.32 -just-dc-ntlm
Как перебирать?
Если нет времени или желания долго ждать перебора, то рекомендуется использовать комбинацию из всех четырех методов из списка ниже:
-
Словарь realuniq.lst.
Запускаем hashcat с предварительно загруженным словарем:
hashcat.exe -m 1000 -a 0 -O -w 4 E:hashs.txt E:dictsrealuniq.lst
-
Словарь из календарных единиц (файл для генерации ниже) с правилами мутации dive.rule (правила из комплекта hashcat).
Запустить скрипт на Python, который создаст словарь calendar_passwords.txt:
wordlist_generator.py
Запускаем hashcat со сгенерированным словарем:
hashcat.exe -m 1000 -a 0 -O -w 4 E:hashs.txt E:dictscalendar_passwords.txt -r rulesdive.rule
-
Словарь rockyou.txt с правилами мутации dive.rule (стандартное правило).
Запускаем hashcat с предварительно загруженным словарем:
hashcat.exe -m 1000 -a 0 -O -w 4 E:hashs.txt E:dictsrockyou.txt -r rulesdive.rule
-
Словарь rockyou.txt с правилами мутации OneRuleToRuleThemAll.rule.
hashcat.exe -m 1000 -a 0 -O -w 4 E:hashs.txt E:dictsrockyou.txt -r rulesOneRuleToRuleThemAll.rule
Конфигурация тестового стенда
Для демонстрации получения хэшей была создана Active Directory инфраструктура, состоящая из одного контроллера домена и одного компьютера в сети.
Конфигурация компьютера для перебора паролей:
-
Intel Core i7-7700.
-
32GB RAM.
-
Nvidia GeForce GTX 1060 6GB.
-
hashcat 6.1.
-
Windows 10 build 19041.572.
-
GeForce Game Ready Driver 460.89.
-
CUDA 11.2.0.
Подготовка
Как получить хэши для перебора?
Что такое NTLM-хэш?
Хэш — это результат работы хэш-функции, которая осуществляет преобразование строки произвольной длины в строку фиксированной длины.
NT-хэш или NTLM-хэш является результатом работы функции MD4(UTF-16-LE(password)) — функции хэширования MD4 от пароля, закодированного в кодировке UTF-16 little-endian.
Слабости алгоритма MD4 были известны еще с 1991 года, а в 2011 году его признали устаревшим, однако он все еще повсеместно используется для хранения паролей в Windows-инфраструктуре. Данный алгоритм также обладает низкой вычислительной сложностью, что позволяет относительно быстро перебирать возможные значения.
В NTLM-хэш не применяется криптографическая соль, следовательно один пароль всегда будет соответствовать одному хэш-значению. Это позволяет находить пользователей, которые используют одинаковые пароли даже если мы не знаем их значения. Также это позволяет проводить поиск хэш-значений в радужных таблицах.
Для получения хэшей всех пользователей домена можно воспользоваться утилитой secretsdump.py, входящей в состав пакета impacket. Для использования утилиты необходимо иметь установленный интерпретатор языка программирования Python версии 2.7 или выше. Также существуют сборки утилиты secretsdump, специально созданные для работы под OS Windows, и не требующие наличия сторонних интерпретаторов.
Данная утилита может быть запущена на любом устройстве, имеющем сетевой доступ к контроллеру домена.
Для получения NTLM-хэшей с контроллера домена, можно воспользоваться следующей командой. Данная команда может быть выполнена на любом устройстве, имеющем сетевой доступ к контроллеру домена.
secretsdump.exe deiteriy.local/Administrator@192.168.88.32 -just-dc-ntlm
где:
-
deiteriy.local
— название домена. -
Administrator
— имя учетной записи с правами доменного администратора. -
192.168.88.32
— IP-адрес или доменное имя контроллера домена. -
-just-dc-ntlm
— аргумент, позволяющий получить только NTLM-хэши в формате domainuid:rid:lmhash:nthash.
Чем перебирать?
Offline:
-
hashcat — Самая популярная и производительная утилита, поддерживающая множество различных алгоритмов хэширования. Данная статья посвящена этой программе.
-
John the Ripper — Старейший набор программ для перебора хэшей и преобразования различных файлов в их хэш-значения для последующего перебора. Кросплатформенный, поддерживает множество алгоритмов, однако имеет меньшую производительность, чем hashcat.
-
RainbowCrack — Данное приложение использует другой подход к перебору хешей: не вычисление хэшей от паролей и их последующее сравнение, а поиск хэшей по заранее сгенерированным таблицам, содержащим пары хэш — значение. Отличается очень высокой скоростью подбора (быстрее в ~5000 раз), по сравнению с остальными утилитами, однако требует хранения заранее сгенерированных таблиц для каждого алгоритма хэширования, которые занимают десятки терабайт дискового пространства.
Online:
-
crackstation — Сервис, позволяющий производить поиск хэшей в словаре, содержащем 1,6 миллиарда паролей.
-
onlinehashcrack — Сервис, предоставляющий возможность полного перебора и перебора паролей по словарю в облаке. При успешном восстановлении исходного значения, будет предложено оплатить услуги для получения этого значения. Для проверки сложности паролей, может быть достаточно информации о том, что исходное значение хэша можно восстановить за приемлемое время.
-
Поисковые системы (Google, Yandex, …) — Любой хэш можно “загуглить”. Если в поисковой выдаче есть проиндексированная страница с данным хешем, то велик шанс, что на ней находится соответствие хэш — исходное значение.
Установка hashcat
-
Скачать в GitHub репозитории последнюю сборку приложения в архиве. Архив содержит программу под операционные системы Windows и Linux.
-
Скачать и установить последнюю версию драйверов GPU (Nvidia, AMD).
-
Разархивировать файл из первого пункта и запустить hashcat.exe из командой строки. Для проверки корректности установки можно использовать следующую команду:
hashcat.exe -w 4 -O -m 1000 --benchmark
где:
-
-w 4
— Выбор режима рабочей нагрузки из заданного набора, где 1 — самая минимальная нагрузка, а 4 — максимальная. Если вы заметили существенное ухудшение производительности, которое мешает работе с устройством, рекомендуется использовать меньшее значение параметра -w. -
-O
— Включить оптимизированные ядра. -
-m 1000
— Выбор алгоритма хаширования, в данном случае 1000 — NTLM. -
-benchmark
— Запустить тестирование производительности для выбранного алгоритма.
Более подробно об аргументах можно прочитать на странице помощи утилиты:
hashcat.exe --help или hashcat.exe -h
-
Если используется GPU Nvidia, то можно увидеть предупреждение, как на рисунке выше. По умолчанию hashcat использует открытый фреймворк OpenCL для работы с GPU, однако Nvidia разработала свой собственный — CUDA. Рекомендуется установить его для повышения производительности.
Запустив еще раз команду выше, видим, что после установки CUDA, производительность выросла на 15%.
Перебор паролей
90% успеха в переборе паролей — это правильно выбранный метод подбора. В данной статье рассмотрено несколько таких методов, а в конце приведено сравнение таких методов по скорости и эффективности.
Перебор по публично доступным словарям
Несколько примеров словарей, которые можно найти в открытом доступе:
-
SecLists — Репозиторий содержит большое количество файлов с паролями, в том числе рейтинги самых популярных паролей, а также словарей, полученных в результате утечек из различных сервисов.
-
Сrackstation — Сервис, позволяющий производить поиск хэшей в словаре, предоставляет один из самых больших (1,6 миллиарда строк) словарей. По заявлению создателей, словарь содержит все пароли, которые когда-либо были опубликованы в Интернете.
-
Probable-Wordlists — Репозиторий содержит словари паролей как из утечек, так и из различных публично доступных словарей. Проект содержит аналитику популярности использования паролей, а также маски и правила для утилиты hashcat.
-
weakpass.com — На сайте собрано большое количество словарей агрегированных из различных источников и их комбинаций. Есть словари размером как меньше мегабайта, так и больше четырехсот гигабайт.
Словарь rockyou.txt
rockyou.txt — самый популярный словарь для перебора, состоящий из самых популярных паролей, собранных из публично опубликованных баз данных.
Для перебора по словарю rockyou.txt, его необходимо загрузить на устройство, а затем выполнить следующую команду в командной строке:
hashcat.exe -m 1000 -a 0 -O -w 4 E:hashs.txt E:dictsrockyou.txt
где:
-
-m 1000
— Выбор алгоритма хэширования, в данном случае 1000 — NTLM. -
-a 0
— Выбор режима работы (0 — перебор по словарю, 3 — перебор по маске, 1,6,7 — Гибридные режимы работы). -
-O
— Включить оптимизированные ядра. -
-w 4
— Выбор режима рабочей нагрузки из заданного набора 1-4, где 1 — самая минимальная нагрузка, а 4 — максимальная. -
E:hashs.txt
— Путь к файлу с хэшами. -
E:dictsrockyou.txt
— Путь к словарю.
На рисунке ниже, видим пример вывода программы. Красным выделены пары хэш — значение, которые были успешно восстановлены.
На тестовом стенде программе потребовалось 3 секунды на перебор 20-и хэшей по словарю, содержащему 1,4 миллиона паролей.
После успешного подбора, пары хэш — значение будут помещены в pot-файл, расположенный в папке с программой — E:hashcathashcat.potfile. При каждом запуске программы, в первую очередь будет проверяться наличие хэшей в pot-файле, чтобы не перебирать известные хэши заново. Если такой хэш был найден, то он не будет выведен на экран. Вместо этого будет выведено информационное сообщение о том, что такой хэш был найден в pot-файле.
INFO: Removed 3 hashes found in potfile.
Содержимое pot-файла:
Для просмотра таких хэшей, можно воспользоваться командой:
hashcat.exe -m 1000 E:hashs.txt --show
Словарь realunique от Сrackstation
realuniq.lst — По заявлению создателей — это самый большой файл с паролями на просторах интернета — содержит 1,6 миллиарда паролей.
Для перебора по словарю realunique, его необходимо загрузить на устройство, а затем выполнить следующую команду в командной строке:
hashcat.exe -m 1000 -a 0 -O -w 4 E:hashs.txt E:dictsrealuniq.lst
Результат работы на рисунке ниже:
На тестовом стенде программе потребовалось 39 секунд на перебор 20-и хэшей по словарю, содержащему 1,2 миллиарда паролей.
Перебор по самодельному словарю
У каждой организации свои парольные политики и своя культура, связанная с особенностями работы (Bank2020!, Neft2020@, C@rd2019), местоположением (Russia2020!, Astana2010#, Moscow123$), названиями компании (BankRot123, G@zM0sPr0m, Vodorod!@#), филиалов (H3adOff1ce1, $KolymaDep$, Branch*) и отделов (HR123!@#, ITdep!!!, Accountants200). Также словари не учитывают специфику языка пользователей (Mamir2020 (май на казахском языке), Vfq2020! (май на русском языке, набранный другой раскладкой), Maijs2018 (май на латышском языке)). Поэтому рекомендуется создавать свои собственные словари для перебора паролей и использовать их вместе с другими методами перебора.
Также, публичные словари редко учитывают специфику сетей Windows и ее парольные политики:
Парольная политика “Passwords must meet complexity requirements”, регламентирует, что пароль должен содержать символы как минимум из трех следующих категорий:
-
Заглавные буквы европейских языков (от A до Z, с диакритическими знаками, греческие и кириллические символы).
-
Строчные буквы европейских языков (от a до z, ß, с диакритическими знаками, греческие и кириллические символы).
-
Цифры (от 0 до 9).
-
Не алфавитно-цифровые символы (специальные символы): (
~! @ # $% ^ & * _- + = | () {} [] :;" '<>,.? /
) Символы валюты, такие как евро или Британский фунт не считаются специальными символами для этого параметра политики. -
Любой символ Юникода, относящийся к категории алфавитных символов, но не прописных или строчных. В эту группу входят символы Unicode из азиатских языков.
Также, стоит учитывать, что в Windows по умолчанию стоит минимальная длина пароля 8 символов, а частота смены пароля обычно установлена 90 дней.
Словарь — календарные единицы
При частой смене паролей пользователям сложно запомнить сложный, стойкий пароль, который при этом будет действовать всего 3 месяца, и будет существенно отличаться от предыдущего. Поэтому, зачастую пользователи используют пароли, состоящие из следующих частей:
-
Месяц
-
Время года
-
Год
-
Спецсимволы
Например:
-
May2020!
-
Leto2019
-
Aprel2021@
-
19October.
-
Pbvf2020!! (где “Pbvf” — это слово “Зима” набранное другой раскладкой)
Для генерации такого словаря можно воспользоваться небольшим скриптом на Python:
import datetime
from itertools import permutations, product #библиотека для комбинирования элементов
#определяем компоненты, из которых будет состоять пароль
specials = ['!','@','#','$','.','*','^','?'] #спецсимволы
#месяца и времена года
words = ["April", "Atdhfkm", "August", "Autumn", "Besna", "Becna", "B.km", "B.ym", "Ctynz,hm", "December", "Dtcyf", "Fduecn", "February", "Fghtkm", "January", "Jctym", "Jrnz,hm", "July", "June", "Ktnj", "Leto", "Ltrf,hm", "March", "May", "November", "October", "Ocen", "Osen" "Pbvf", "September", "Spring", "Summer", "Vesna", "Vecna", "Vfq", "Vfhn", "Winter", "Yjz,hm", "Zima", "Zydfhm", "3ima"]
# года с 2010 по текущий + 2 в форматах YYYY и YY
now = datetime.datetime.now()
years = list(range(2010,now.year+2))+list(range(10,int(str(now.year)[2:])+2))
#открываем файл для сохранения паролей
f_o = open("calendar_passwords.txt", "w")
#генерируем список специальных символов от 0 до 3 элементов
special_array=[]
for i in range(0,4):
for subset in product(specials,repeat=i):
special_array.append(''.join(subset))
#собираем компоненты в пароль
for word in words:
for year in years:
for special in special_array:
for password in permutations([word, str(year), special], 3):
f_o.write(''.join(password)+"rn")
#закрываем файл
f_o.close()
В результате получаем словарь на 3,2 миллиона паролей.
hashcat.exe -m 1000 -a 0 -O -w 4 E:hashs.txt E:dictscalendar_passwords.txt
На тестовом стенде программе потребовалось 2 секунды на перебор 20-и хэшей по словарю, содержащему 3,2 миллиона паролей.
Пароль-“змейка”
“Змейка” это строка, набираемая на клавиатуре, позиции символов в которой, подвержены неким закономерностям, например, набираются друг за другом (qwerty, asdfgh, zxcvb), находятся друг под другом (qaz, wsx, edc), их можно набирать “не отрывая руки” от клавиатуры (qwedcxza, zxcdsaqwe, 4rfvbgt5) или комбинации этих закономерностей (1qaz2wsx3edc).
Большое число таких паролей содержится в публичных словарях, однако не все удовлетворяют парольным политикам Windows.
Для генерации таких паролей можно воспользоваться утилитой kwprocessor, либо набрать “змейку” самостоятельно, учитывая особенности парольных политик (!QAZ2wsx#EDC, 1q2w3e4r5t^Y, !QAZ1qaz!QAZ).
Перебор по словарю с правилами мутации
Правила мутации (Rule-based Attack) — преобразование слов из словаря, по некоторым, заранее заданным, правилам.
Для описания правил в hashcat существует специальный язык программирования. Написание собственных правил — это нетривиальная задача, поэтому hashcat уже содержит несколько десятков наборов правил, найти которые можно в директории “rules”. Также существует множество наборов правил в открытом доступе, например в репозиториях на GitHub.
dive.rule
dive.rule — самый большой набор правил, из тех, что идет в составе hashcat.
Для запуска hascat cо словарем rockyou.txt и этим набором правил можно воспользоваться следующей командой:
hashcat.exe -m 1000 -a 0 -O -w 4 E:hashs.txt E:dictsrockyou.txt -r rulesdive.rule
где:
-
-r
— Использовать правила. -
rules/dive.rule
— Путь к правилам.
На тестовом стенде программе потребовалось 415 секунд на перебор 20-и хэшей по словарю, из которого было создано 1,4 триллиона паролей. Также видим, что словарь, который содержал всего 3 пароля из 20, с помощью правил позволил восстановить 13 из 20 значений.
Получены с использованием правил |
Получены без использования правил |
---|---|
(пустой пароль) |
(пустой пароль) |
liverpool_fc5 |
liverpool_fc5 |
fr!3ndss |
fr!3ndss |
!QAZ1qaz!QAZ |
|
118@4 |
|
Albert93! |
|
May2020! |
|
!QAZ2wsx#EDC |
|
(!)(!) |
|
Ktnj2020 |
|
987654cc– |
|
1q2w3e4r5t^Y |
|
2020jana@@ |
OneRuleToRuleThemAll.rule
OneRuleToRuleThemAll.rule — набор правил, который является комбинацией самых популярных правил из других наборов.
По заверениям создателей, при двукратно меньшем размере позволяет восстановить на 4% больше паролей, чем dive.rule.
Для использования правила, необходимо сохранить файл, в директорию “rules”.
Далее правило можно вызвать как предустановленное:
hashcat.exe -m 1000 -a 0 -O -w 4 E:hashs.txt E:dictsrockyou.txt -r rulesOneRuleToRuleThemAll.rule
На тестовом стенде программе потребовалось 192 секунды на перебор 20-и хэшей по словарю, содержащему 745 миллиардов паролей. Данное правило позволило восстановить 11 паролей из 20, что на два меньше, чем в dive.rule, однако программа отработала в 2 раза быстрее, чем в случае с dive.rule.
Перебор по маске
Перебор по маске является разновидностью полного перебора.
В hashcat существуют предопределенные наборы символов, которые позволяют описывать маску для перебора.
Например, маска ?a?a?a
означает, что будут перебираться все комбинации символов из набора: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 !"#$%&'()*+,-./:;<=>?@[]^_{|}~
длиной 3. Однако набор символов ?a является очень большим, что не позволяет в обозримое время перебирать длинные пароли. Например, для перебора 20 хэшей по маске ?a?a?a?a?a?a?a?a
(длина 8) на тестовом стенде потребуется около 7-и дней.
hashcat.exe -m 1000 -a 3 -O -w 4 E:hashs.txt ?a?a?a?a?a?a?a?a
где:
-
a 3
— Режим перебора по маске. -
?a?a?a?a?a?a?a?a
— Маска, означающая пароль, длиной 8, состоящий из символовabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 !"#$%&'(),-./:;<=>?@[]^_{|}~+*
.
Перебором по маске с набором символов ?a можно пользоваться для перебора коротких паролей, например, длиной от 1 до 6. Для того чтобы не вводить команду 6 раз, можно воспользоваться режимом инкрементирования:
hashcat.exe -m 1000 -a 3 -O -w 4 E:hashs.txt ?a?a?a?a?a?a --increment --increment-min 1
где:
-
-increment
— Запуск в режиме инкрементирования. -
-increment-min 1
— Минимальная длина пароля 1.
Перебор 20 хэшей паролей с длиной от 1 до 6 символов был осуществлен за 71 секунду, а паролей длиной 7, был бы осуществлен уже за 2 часа. Попытка восстановления исходных хэш-значений паролей с длиной меньше 8 символов может быть полезна в сети AD, в том случае, если минимальная длина пароля была когда-либо установлена меньше чем восемь символов.
Перебор по маске c самодельными наборами
Для ускорения процесса перебора по маске, а также возможности перебора более длинных паролей, можно воспользоваться некоторыми правилами и закономерностями. Если рассмотреть описанные выше методы, то можно заметить, что большое количество полученных паролей начинается с большой буквы, после неё следуют несколько строчных букв, а потом цифры и/или спецсимволы. Это можно представить в виде маски, например:
?u?l?l?l?d?d?d?d
Существенно снизив набор символов, пароль длиной 8 символов можно перебрать за 2 секунды.
Перебор по наборам масок
Если мы хотим перебрать множество вариантов, состоящих из масок вида: большая буква, несколько строчных букв, цифры и/или спецсимволы, то придется запускать hashcat несколько десятков раз. Для упрощения задачи существуют hcmask-файлы — файлы набора масок. Создадим такой файл небольшим скриптом на Python:
for first in range(1,7):
for digits in range(0,6):
for second in range(0,3):
mask = "?l3@17,!@#$%^&*.,?u"+str("?1"*first)+str("?d"*digits)+str("?2"*second)
if len(mask)<37 and len(mask)>32:
print("?l3@17,!@#$%^&*.,?u"+str("?1"*first)+str("?d"*digits)+str("?2"*second))
print("?l3@17,!@#$%^&*.,"+str("?d"*digits)+"?u"+str("?1"*first)+str("?2"*second))
Этот скрипт создаст 62 строки вида:
?l3@17,!@#$%^&*.,?u?1?1?d?d?d?d?2?2
Каждая из созданных строк состоит из трех полей, разделенных запятыми:
-
Самодельный набор символов 1.
-
Самодельный набор символов 2.
-
Маска, состоящая из наборов символов.
Для перебора с использованием файла масок можно воспользоваться следующей командой:
hashcat.exe -m 1000 -a 3 -O -w 4 E:hashs.txt E:hashcatmask.hcmask
где:
-
E:hashcatmask.hcmask
— Путь к файлу масок.
Перебор 20 хэшей паролей по 62 маскам от 8 до 9 символов занял 44 минуты.
Как сделать удобный вывод
После всех операций выше, pot-файл будет заполнен полученными паролями и соответствующими им хэшами. Чтобы узнать какой пароль соответствует какому пользователю, можно выполнить следующую команду:
hashcat.exe -m 1000 --show --username --outfile E:output.txt --outfile-format 2 E:hashs.txt
где:
-
-username
— Игнорирование имя пользователя в хэш-файле. -
-outfile E:output.txt
— Файл, в который будет сохранен вывод программы. -
-outfile-format 2
— Формат вывода программы, где 2 — в открытом виде.
Сравнение эффективности
Для тестирования скорости перебора и количества получаемых паролей каждым из описанных выше методов, бы произведен перебор хэшей, полученных из существующей организации. С контроллера домена было получено 7168 пользователей с 5267 уникальными хэшами.
Методы перебора
Метод перебора №1
Словарь: rockyou.txt
Уникальных хэшей восстановлено: 0
Процент восстановленных хэшей: 1.689766
Затраченное время в секундах: 4
Хэшей восстановлено: 89
Команда для запуска: hashcat.exe -m 1000 -a 0 -O -w 4 hashs.txt dictsrockyou.txt
Метод перебора №2
Словарь: realunique
Уникальных хэшей восстановлено: 0
Процент восстановленных хэшей: 3.721283
Затраченное время в секундах: 122
Хэшей восстановлено: 196
Команда для запуска: hashcat.exe -m 1000 -a 0 -O -w 4 hashs.txt dictsrealuniq.lst
Метод перебора №3
Словарь: из календарных единиц
Уникальных хэшей восстановлено: 0
Процент восстановленных хэшей: 0.645529
Затраченное время в секундах: 2
Хэшей восстановлено: 34
Команда для запуска: hashcat.exe -m 1000 -a 0 -O -w 4 hashs.txt dictscalendar_passwords.txt
Метод перебора №4
Словарь: rockyou.txt с правилами мутации dive.rule
Уникальных хэшей восстановлено: 0
Процент восстановленных хэшей: 19.66964
Затраченное время в секундах: 448
Хэшей восстановлено: 1036
Команда для запуска: hashcat.exe -m 1000 -a 0 -O -w 4 hashs.txt dictsrockyou.txt -r rulesdive.rule
Метод перебора №5
Словарь: realunique с правилами мутации dive.rule
Уникальных хэшей восстановлено: 137
Процент восстановленных хэшей: 30.20695
Затраченное время в секундах: 34784
Хэшей восстановлено: 1591
Команда для запуска: hashcat.exe -m 1000 -a 0 -O -w 4 hashs.txt dictsrealuniq.lst -r rulesdive.rule
Метод перебора №6
Словарь: из календарных единиц с правилами мутации dive.rule
Уникальных хэшей восстановлено: 9
Процент восстановленных хэшей: 2.41124
Затраченное время в секундах: 92
Хэшей восстановлено: 127
Команда для запуска: hashcat.exe -m 1000 -a 0 -O -w 4 hashs.txt dictscalendar_passwords.txt -r rulesdive.rule
Метод перебора №7
Словарь: rockyou.txt с правилами мутации OneRuleToRuleThemAll.rule
Уникальных хэшей восстановлено: 0
Процент восстановленных хэшей: 18.54946
Затраченное время в секундах: 198
Хэшей восстановлено: 977
Команда для запуска: hashcat.exe -m 1000 -a 0 -O -w 4 hashs.txt dictsrockyou.txt -r rulesOneRuleToRuleThemAll.rule
Метод перебора №8
Словарь: realunique с правилами мутации OneRuleToRuleThemAll.rule
Уникальных хэшей восстановлено: 63
Процент восстановленных хэшей: 28.0805
Затраченное время в секундах: 15684
Хэшей восстановлено: 1479
Команда для запуска: hashcat.exe -m 1000 -a 0 -O -w 4 hashs.txt dictsrealuniq.lst -r rulesOneRuleToRuleThemAll.rule
Метод перебора №9
Словарь: из календарных единиц с правилами мутации OneRuleToRuleThemAll.rule
Уникальных хэшей восстановлено: 1
Процент восстановленных хэшей: 1.898614
Затраченное время в секундах: 46
Хэшей восстановлено: 100
Команда для запуска: hashcat.exe -m 1000 -a 0 -O -w 4 hashs.txt dictscalendar_passwords.txt -r rulesOneRuleToRuleThemAll.rule
Метод перебора №10
Словарь: Маска ?a длиной от 1 до 6
Уникальных хэшей восстановлено: 0
Процент восстановленных хэшей: 0.322764
Затраченное время в секундах: 73
Хэшей восстановлено: 17
Команда для запуска: hashcat.exe -m 1000 -a 3 -O -w 4 hashs.txt mask1-6.hcmask
Метод перебора №11
Словарь: Набор масок длиной от 7 до 9
Уникальных хэшей восстановлено: 71
Процент восстановленных хэшей: 7.404595
Затраченное время в секундах: 2668
Хэшей восстановлено: 390
Команда для запуска: hashcat.exe -m 1000 -a 3 -O -w 4 hashs.txt mask7-9.hcmask
Метод |
Уникальных* хэшей восстановлено |
Процент восстановленных хэшей |
Затраченное время в секундах |
Хэшей восстановлено |
---|---|---|---|---|
1 |
0 |
1.689766 |
4 |
89 |
2 |
0 |
3.721283 |
122 |
196 |
3 |
0 |
0.645529 |
2 |
34 |
4 |
0 |
19.66964 |
448 |
1036 |
5 |
137 |
30.20695 |
34784 |
1591 |
6 |
9 |
2.41124 |
92 |
127 |
7 |
0 |
18.54946 |
198 |
977 |
8 |
63 |
28.0805 |
15684 |
1479 |
9 |
1 |
1.898614 |
46 |
100 |
10 |
0 |
0.322764 |
73 |
17 |
11 |
71 |
7.404595 |
2668 |
390 |
*Уникальный хэш — хэш, который не был получен ни в одном из других методов.
Видим, что наибольшее число паролей восстановилось в методе “5. Словарь realunique с правилами мутации dive.rule”, который для получения конечных результатов требует 10 часов работы на тестовом стенде. В два раза быстрее отрабатывает метод “8. Словарь realunique с правилами мутации OneRuleToRuleThemAll.rule”, уступая предыдущему всего на 2% восстановленных паролей. Если требуется результат “как можно скорее”, то можно воспользоваться методами “4. Словарь rockyou.txt с правилами мутации dive.rule” или “7. Словарь rockyou.txt с правилами мутации OneRuleToRuleThemAll.rule”, которые отличаются друг от друга на 1% хэшей и уступают предыдущим методам почти на 10%, но при этом, отрабатывают за 7 и 3,5 минуты соответственно.
Комбинации методов
Наилучшие результаты достигаются путем использования нескольких из описанных выше методов.
В файле ниже приведена полная таблица со всеми комбинациями.
https://www.dropbox.com/s/v4xpi4vr7knve1l/combo_1_2_3_4_5_top.xlsx?dl=0
Ниже переведены лучшие комбинации из наборов методов от 2 до 5.
Топ 7 наборов методов по количеству восстановленных хэшей
Набор методов №1
Комментарий: Лучший по количеству восстановленных хэшей
Метод 1: Словарь из календарных единиц с правилами мутации dive.rule
Метод 2: Словарь из календарных единиц с правилами мутации OneRuleToRuleThemAll.rule
Метод 3: Набор масок длиной от 7 до 9
Метод 4: Словарь realunique с правилами мутации OneRuleToRuleThemAll.rule
Метод 5: Словарь realunique с правилами мутации dive.rule
Количество уникальных хэшей: 658
Процент восстановленных хэшей: 34.53579
Затраченное время в секундах: 53320
Всего восстановлено: 1819
Набор методов №2
Комментарий: Лучший по количеству уникальных хэшей
Метод 1: Словарь rockyou.txt с правилами мутации dive.rule
Метод 2: Словарь rockyou.txt с правилами мутации OneRuleToRuleThemAll.rule
Метод 3: Набор масок длиной от 7 до 9
Метод 4: Словарь realunique с правилами мутации OneRuleToRuleThemAll.rule
Метод 5: Словарь realunique с правилами мутации dive.rule
Количество уникальных хэшей: 1498
Процент восстановленных хэшей: 33.60547
Затраченное время в секундах: 53782
Всего восстановлено: 1770
Набор методов №3
Комментарий: Высокая скорость и большое количество восстановленных хэшей #1
Метод 1: Словарь из календарных единиц с правилами мутации dive.rule
Метод 2: Словарь rockyou.txt с правилами мутации OneRuleToRuleThemAll.rule
Метод 3: Словарь из календарных единиц с правилами мутации OneRuleToRuleThemAll.rule
Метод 4: Набор масок длиной от 7 до 9
Метод 5: Словарь realunique с правилами мутации dive.rule
Количество уникальных хэшей: 263
Процент восстановленных хэшей: 33.33966
Затраченное время в секундах: 37834
Всего восстановлено: 1756
Набор методов №4
Комментарий: Лучший набор из двух методов
Метод 1: Словарь realunique с правилами мутации OneRuleToRuleThemAll.rule
Метод 2: Словарь realunique с правилами мутации dive.rule
Количество уникальных хэшей: 462
Процент восстановленных хэшей: 32.23847
Затраченное время в секундах: 50468
Всего восстановлено: 1698
Набор методов №5
Комментарий: Высокая скорость и большое количество хэшей #2
Метод 1: Словарь из календарных единиц с правилами мутации dive.rule
Метод 2: Словарь rockyou.txt с правилами мутации dive.rule
Метод 3: Словарь из календарных единиц с правилами мутации OneRuleToRuleThemAll.rule
Метод 4: Набор масок длиной от 7 до 9
Метод 5: Словарь realunique с правилами мутации OneRuleToRuleThemAll.rule
Количество уникальных хэшей: 188
Процент восстановленных хэшей: 31.93469
Затраченное время в секундах: 18984
Всего восстановлено: 1682
Набор методов №6
Комментарий: Высокая скорость и большое количество хэшей #3
Метод 1: Словарь realunique
Метод 2: Словарь из календарных единиц с правилами мутации dive.rule
Метод 3: Словарь rockyou.txt с правилами мутации dive.rule
Метод 4: Словарь rockyou.txt с правилами мутации OneRuleToRuleThemAll.rule
Метод 5: Набор масок длиной от 7 до 9
Количество уникальных хэшей: 80
Процент восстановленных хэшей: 25.74521
Затраченное время в секундах: 3528
Всего восстановлено: 1356
Набор методов №7
Комментарий: Высокая скорость и большое количество хэшей #4
Метод 1: Словарь realunique
Метод 2: Словарь из календарных единиц с правилами мутации dive.rule
Метод 3: Словарь rockyou.txt с правилами мутации dive.rule
Метод 4: Словарь rockyou.txt с правилами мутации OneRuleToRuleThemAll.rule
Количество уникальных хэшей: 9
Процент восстановленных хэшей: 23.10613
Затраченное время в секундах: 860
Всего восстановлено: 1217
В зависимости от целей и располагаемого времени, рекомендуется выбрать один из наборов, из списка выше. Однако наилучший результат будет достигнут путем применения самостоятельно сгенерированных словарей, масок и правил.
Здесь я не буду писать прописные истины о том, что пароли хранятся в браузере, точнее на ПК в файле Login Data по пути;
— C:UsersИМЯ_ПОЛЬЗОВАТЕЛЯAppDataLocalGoogleChromeUser DataDefault
Это и так все знают. Пользы от этой информации и нет, так как данные здесь зашифрованные. Точнее сами пароли зашифрованы. Интереснее, как именно, какой способ шифрования применяется и можно ли его взломать.
В этой статье я попыталась максимально просто описать принцип хеширования и сколько времени и сил понадобится хакерам, чтобы взломать пароль от ВК.
Хеширование или ваши пароли невозможно взломать, но это неточно
Для защиты конфиденциальных данных, в частности, ВАШИХ паролей в социальных сетях применяется способ защиты — хеш-функция. Это математическая функция, которая на вход принимает любое значение, произвольного размера и длинны, а на выходе получается всегда фиксированная сумма.
Например, пароль — 12345 имеет хеш:
= 827ccb0eea8a706c4c34a16891f84e7b
Или пароль посложнее — ngTyhvv5Ghb5n6:
= 5c8aaa36654e83b1f0ce08bf050c3a19
И там и там хеш имеет сумму в 32 символа, хотя сами пароли разной длинны.
Основное качество хеширования, это необратимость — имея на руках хеш провернуть процесс назад, то есть расшифровать пароль, нельзя!
Однако, если злоумышленник каким-то образом получил доступ к хешам из базы данных какого-то сайта, несложно подобрать часто используемые пароли из открытых библиотек. 5 минут и вас взломали.
А теперь сложнее
При регистрации в социальной сети у нас есть какое-то ограничение. Пароль может быть от 8 до 20 символов, и состоять должен из латинских букв верхнего и нижнего регистра и цифр.
В латинском алфавите 26 букв в нижнем регистре. Плюс столько же для верхнего регистра и ещё плюс 10 цифр. В итоге получается 62 символа.
При таком раскладе можно легко посчитать, сколько получится возможных комбинаций паролей из 10 символов. Используя простейшую формулу из комбинаторики 62X^10, получаем:
— 839 299 365 868 340 224
Вот столько комбинаций программе нужно будет перебрать.
А теперь по времени:
На примере процессора Intel Core i3, который условно может делать 210 000 переборов в секунду и программки для подбора (можно написать самому — эта задача реализовывается легко на любом языке программирования в несколько строк кода, или найти в сети) нетрудно посчитать, сколько понадобится времени взломщику, чтобы подобрать нужный пароль.
Считаем:
- секунды — 839 299 365 868 340 224 / 210000 = 3 996 663 646 992,096
- часы — 3 996 663 646 992,096 / 3600 = 1 110 184 346,38
- сутки — 1 110 184 346,38 / 24 = 46 257 681,09
- годы — 46 257 681,09 / 365 = 126 733,37
Из этой простой математики мы видим, что способ перебора (брутфорс) требует невменяемого количества времени. Конечно, при условии использования обычного домашнего ПК. С мощностями намного больше, времени будет затрачено меньше, но даже супер компьютер будет обрабатывать все эти комбинации очень долго. Это по времени экономически невыгодно.
Другой способ перебора паролей с разницей, что все хеши записываются в базу данных. Сохранения такого количества хешей требует много места. Тут тоже можно посчитать — хеш-функция MD5 возвращает 128 бит информации, это 16 байт.
Умножаем количество паролей (хешей) — 839 299 365 868 340 224 на 16 байт и получаем 13428,78 Петаба́йт (ПБ, ПБайт) 10 в 15 степени (квадриллион) байт. Здесь злоумышленники просто в хлам проигрывают в объёмах требуемого хранилища.
Приходим к логическому выводу. В идеальных условиях взломать пароль от ВК невозможно. На это потребуется тысячи или даже миллионы лет и нереальные вычислительные мощности. Но статистика говорит об обратном — социальные сети постоянно взламывают. Вопрос, КАК?
Об этом читайте в предыдущей статье про то, как хакеры взламывают странички в социальных сетях.
Забыла упомянуть, радужные таблицы, способы защиты типа соли и прочие интересности я опишу в следующих статьях, следите за новостями.
И конечно же подписывайтесь на мой канал и ставьте пальчик вверх.
На чтение 2 мин Опубликовано 10.01.2022
Взлом паролей очень важен для специалистов по тестированию на проникновение.
Предположим, мы получили хэш из базы данных и нам нужно его взломать.
Перед этим нам нужно узнать, какой тип шифрования использовался для создания хэша, проще говоря, какой тип хэша мы получили.
namethathash узнает хэши паролей на kali linux
Очень рано мы написали статью о том, как определить хэши паролей.
Но она уже устарела (во всяком случае, работает безотказно).
В последнем обновление Kali Linux (2021.4) разработчики добавили в репозиторий новый инструмент под названием “Name That Hash”(nth).
В сегодняшней статье мы узнаем, как узнать хэш с помощью “Name That Hash” в нашей системе Kali Linux.
Мы можем установить его, выполнив следующую команду:
sudo apt install name-that-hash
Результат выполнения этой команды показан на следующем снимке экрана:
На скриншоте выше видно, что наш инструмент установлен.
Теперь мы можем использовать его.
Перед этим мы посмотрим опции справки, выполнив следующую команду:
name-that-hash --help
Эта команда кажется большой для ввода, ну да ладно, мы такие ленивые.
Поэтому мы можем использовать nth вместо name-that-hash.
Следующие команды работают так же, как и предыдущая, мы можем видеть опцию помощи на следующем снимке экрана.
Как видно из приведенного выше справочного меню, мы можем выполнить nth –text ‘hash’, чтобы узнать тип хэша.
Здесь у нас есть хэш ’00d06796e489999226fb5bb27fe1b3b2′.
Давайте узнаем, что это за хэш.
Для этого нам нужно выполнить следующую команду:
nth --text '00d06796e489999226fb5bb27fe1b3b2'
Мы не показываем здесь скриншот вывода.
Давайте получим ответ. Какой это хэш?
Cообщите нам ответ в разделе комментариев.
¯_(ツ)_/¯ Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.
См. также:
- Шифрование и Хэширование. Отличие и применение
- 🐧 Как хэшировать пароли в системах Linux
- #️⃣ Как проверить хэш SHA1 в Linux, FreeBSD и Unix
- 🔐 История криптографии
- 🤐 Как сгенерировать секрет в кодировке base64
- #️⃣ Что такое HMAC (Hash-based Message Authentication Code)
- 🦸 Что такое SHA-256 и как рассчитывать его на языках программирования Python, PHP, JavaScript, Go, Java, PowerShell👨⚕️
- ✗Создание радужных таблиц для алгоритмов хеширования, таких как MD5, SHA1 и NTLM ✗
Пожалуйста, не спамьте и никого не оскорбляйте.
Это поле для комментариев, а не спамбокс.
Рекламные ссылки не индексируются!
Определения типов хэшей при помощи скрипта hash-Identifier для расшифровки паролей
Когда вы имеете дело с неизвестным хэшем, первый шаг – корректная идентификация типа.
Определения типов хэшей при помощи скрипта hash-Identifier для расшифровки паролей
Автор: Kody
Хэши обычно используются для хранения конфиденциальной информации, как, например, учетных записей, которые не должны находиться в открытом виде. При помощи утилит наподобие Hashcat мы можем взломать эти хэши однако только в случае, если знаем алгоритм генерации. Используя инструменты навроде скрипта hash-identifier, можно легко определить тип любых хэшей, чтобы затем указать правильный режим при работе с Hashcat.
Помимо взлома хэшей hash-identifier также полезен для идентификации алгоритма, используемого при выдаче контрольной суммы для загрузки файлов. Кроме того, этот скрипт помогает определить, к какому приложению относится хэшированный файл или значение (например, SQL базе или какому-либо другому формату, специфичному для конкретного поставщика).
Что такое хэш и как расшифровать пароль?
Как было сказано ранее, пароли, извлекаемые из базы данных или компьютера, обычно хранятся в виде хэшей, а не в открытом виде. Функция хэширования преобразует пароли в хаотичный набор символов и чисел, которые не должны быть обратимы обратно в пароль.
Однако два или более одинаковых пароля, при использовании одной и той же функции, будут иметь один и тот же хэш. Соответственно, при помощи этой функции можно получить набор хэшей для списка паролей, а затем использовать этот перечень для обнаружения подходящего пароля. Подобным образом работает множество утилит для взлома.
Хотя хранение пароля в виде хэша лучше, чем в открытом виде, вероятность взлома все равно остается, если у злоумышленника хороший набор правил или словарь, которые можно использовать в Hashcat или другой подобной программе.
Если вы много работаете с хэшами, то легко увидите разницу между разными и часто используемыми типами.
Например, сможете ли вы на глаз определить, к какому типу относятся хэши, указанные ниже?
8743b52063cd84097a65d1633f5c74f5 b89eaac7e61417341b710b727768294d0e6a277b
Хотя вы могли видеть и тот и другой хэш ранее, ответ на вопрос, какой хэш – MD5, а какой – SHA1, не столь очевиден. Еще большая путаница может возникнуть со схожими типами хэшей, относящиеся к разным режимам в Hashcat. В случае с хэшами, приведенными выше, этот факт имеет чрезвычайно важное значение.
При использовании Hashcat для взлома этого хэша мы должны установить опцию –m с целью работы в нужном режиме. Для взлома хэша MD5 мы бы указали режим 0.
~$ sudo hashcat -m 0 -a 0 8743b52063cd84097a65d1633f5c74f5 example.dict --force hashcat (v4.0.1) starting... OpenCL Platform #1: The pocl project ==================================== * Device #1: pthread-Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93GHz, 1024/3639 MB allocatable, 2MCU 8743b52063cd84097a65d1633f5c74f5:hashcat
В итоге, установив нужный алгоритм и используя хороший словарь, после расшифровки хэша мы получили слово «hashcat».
Какие хэши поддерживаются?
На данный момент Hashcat в состоянии расшифровать большое количество хэшей. В репозитории на GitHub для утилиты hash-identifier список поддерживаемых хэшей очень внушителен:
ADLER-32 CRC-16 CRC-16-CCITT CRC-32 CRC-32B DES (Unix) Domain Cached Credentials FCS-16 GHash-32-3 GHash-32-5 GOST R 34.11-94 Haval-128 Haval-160 Haval-192 110080 Haval-224 114080 Haval-256 Lineage II C4 MD2 MD4 MD5 MD5 ($pass.$salt) - Joomla MD5 (APR) MD5 (Half) MD5 (HMAC(WordPress)) MD5 (Middle) MD5 (phpBB3) MD5 (Unix) MD5 (WordPress) MySQL MySQL 160bit - SHA-1(SHA-1($pass)) MySQL5 - SHA-1(SHA-1($pass)) NTLM RAdmin v2.x RipeMD-128 RipeMD-160 RipeMD-256 RipeMD-320 SAM - (LM_hash:NT_hash) SHA-1 SHA-1 (Django) SHA-1 (MaNGOS) SHA-224 SHA-256 SHA-256 (Django) SHA-384 SHA-384 (Django) SHA-512 SNEFRU-128 SNEFRU-256 Tiger-128 Tiger-160 Tiger-192 XOR-32 Whirlpool
и другие…
Что понадобится
Для начала нужно установить Python3
на вашем компьютере (есть версии для разных платформ). Кроме того, вам понадобится утилита Hashcat, которую можно загрузить, используя команду apt install hashcat, после обновления системы при помощи команд apt update и apt upgrade.
Если вы хотите сгенерировать ваши собственные хэши для тестового взлома, то можете воспользоваться командой в формате echo –n PLAINTEXT | (HASHTYPE)sum. Например, при создании хэша SHA1 для слова «nullbyte» я запустил следующую команду:
~$ echo -n nullbyte | sha1sum 32c0ced56f1fe08583bdb079d85a35a81995018c -
Шаг 1. Загрузка и установка Hash-Identifier
Установить скрипт, написанный на Python, – очень просто. Откройте терминал и запустите следующую команду:
~$ git clone https://github.com/blackploit/hash-identifier.git Cloning into 'hash-identifier'... remote: Enumerating objects: 21, done. remote: Total 21 (delta 0), reused 0 (delta 0), pack-reused 21 Unpacking objects: 100% (21/21), done.
Затем посмотрите содержимое директории hash-identifier:
~$ cd hash-identifier ~/hash-identifier$ ls hash-id.py README.md screenshots
Вы должны обнаружить файл hash–id.py, который можно запустить при помощи команды ниже:
~/hash-identifier$ python3 hash-id.py ######################################################################### # __ __ __ ______ _____ # # / / / /__ _ / _ ` # # _ __ ____ ___ /_/ / / # # _ /'__` / ,__ _ ` # # / _ _/__, ` _ __ _ # # _ _ ___ _/____/ _ _ /_____ ____/ # # /_//_//__//_//___/ /_//_/ /_____/ /___/ v1.2 # # By Zion3R # # www.Blackploit.com # # Root@Blackploit.com # ######################################################################### -------------------------------------------------- HASH:
Шаг 2. Идентификация неизвестных хэшей
В качестве пробного подхода при помощи hash-identifier попробуем опознать следующие пять неизвестных хэшей:
Hash 1: 7196759210defdc0 Hash 2: 1bbb234c81ef04a1c2f441253952a556276669d7fc9d1ee765bd4b18f796699d (256) Hash 3: 32c0ced56f1fe08583bdb079d85a35a81995018c (1) Hash 4: 753b27807b690ef889a259f3b219e024bf5c6c33c8d56116943d9285a0b55b2050981f29e6fafa660428c48d7db3c4bd2e8dd48f87c8e90bde5e0c82ed23be10 (512) Hash 5: 5f804b61f8dcf70044ad8c1385e946a8 (md5)
Для начала в командной строке вводим первую строку и быстро получаем результат, что скорее всего имеем дело с хэшем, используемым в MySQL, который попробуем взломать чуть позже.
HASH: 7196759210defdc0 Possible Hashs: [+] MySQL [+] MD5(Middle) Least Possible Hashs: [+] MD5(Half)
Второй хэш, показанный ниже, опознается как SHA256. Другой вероятный вариант – Haval256.
HASH: 1bbb234c81ef04a1c2f441253952a556276669d7fc9d1ee765bd4b18f796699d Possible Hashs: [+] SHA-256 [+] Haval-256 Least Possible Hashs: [+] GOST R 34.11-94 [+] RipeMD-256 [+] SNEFRU-256 [+] SHA-256(HMAC) [+] Haval-256(HMAC) [+] RipeMD-256(HMAC) [+] SNEFRU-256(HMAC) [+] SHA-256(md5($pass)) [+] SHA-256(sha1($pass))
Третий хэш опознается как SHA1:
HASH: 32c0ced56f1fe08583bdb079d85a35a81995018c Possible Hashs: [+] SHA-1 [+] MySQL5 - SHA-1(SHA-1($pass)) Least Possible Hashs: [+] Tiger-160 [+] Haval-160 [+] RipeMD-160 [+] SHA-1(HMAC) [+] Tiger-160(HMAC) [+] RipeMD-160(HMAC) [+] Haval-160(HMAC) [+] SHA-1(MaNGOS) [+] SHA-1(MaNGOS2) [+] sha1($pass.$salt) [+] sha1($salt.$pass) [+] sha1($salt.md5($pass)) [+] sha1($salt.md5($pass).$salt) [+] sha1($salt.sha1($pass)) [+] sha1($salt.sha1($salt.sha1($pass))) [+] sha1($username.$pass) [+] sha1($username.$pass.$salt) [+] sha1(md5($pass)) [+] sha1(md5($pass).$salt) [+] sha1(md5(sha1($pass))) [+] sha1(sha1($pass)) [+] sha1(sha1($pass).$salt) [+] sha1(sha1($pass).substr($pass,0,3)) [+] sha1(sha1($salt.$pass)) [+] sha1(sha1(sha1($pass))) [+] sha1(strtolower($username).$pass)
Четвертый хэш опознается как SHA512:
HASH: 753b27807b690ef889a259f3b219e024bf5c6c33c8d56116943d9285a0b55b2050981f29e6fafa660428c48d7db3c4bd2e8dd48f87c8e90bde5e0c82ed23be10 Possible Hashs: [+] SHA-512 [+] Whirlpool Least Possible Hashs: [+] SHA-512(HMAC) [+] Whirlpool(HMAC)
Наконец, пятый и последний хэш опознается как MD5:
HASH: 5f804b61f8dcf70044ad8c1385e946a8 Possible Hashs: [+] MD5 [+] Domain Cached Credentials - MD4(MD4(($pass)).(strtolower($username))) Least Possible Hashs: [+] RAdmin v2.x [+] NTLM [+] MD4 [+] MD2 [+] MD5(HMAC) [+] MD4(HMAC) [+] MD2(HMAC) [+] MD5(HMAC(WordPress)) [+] Haval-128 [+] Haval-128(HMAC) [+] RipeMD-128 [+] RipeMD-128(HMAC) [+] SNEFRU-128 [+] SNEFRU-128(HMAC) [+] Tiger-128 [+] Tiger-128(HMAC) [+] md5($pass.$salt) [+] md5($salt.$pass) [+] md5($salt.$pass.$salt) [+] md5($salt.$pass.$username) [+] md5($salt.md5($pass)) [+] md5($salt.md5($pass)) [+] md5($salt.md5($pass.$salt)) [+] md5($salt.md5($pass.$salt)) [+] md5($salt.md5($salt.$pass)) [+] md5($salt.md5(md5($pass).$salt)) [+] md5($username.0.$pass) [+] md5($username.LF.$pass) [+] md5($username.md5($pass).$salt) [+] md5(md5($pass)) [+] md5(md5($pass).$salt) [+] md5(md5($pass).md5($salt)) [+] md5(md5($salt).$pass) [+] md5(md5($salt).md5($pass)) [+] md5(md5($username.$pass).$salt) [+] md5(md5(md5($pass))) [+] md5(md5(md5(md5($pass)))) [+] md5(md5(md5(md5(md5($pass))))) [+] md5(sha1($pass)) [+] md5(sha1(md5($pass))) [+] md5(sha1(md5(sha1($pass)))) [+] md5(strtoupper(md5($pass)))
Все прошло без особых проблем. Следующий шаг – поиск нужного режима, соответствующего обнаруженному типу, который будет указываться в Hashcat во время взлома.
Шаг 3. Подбор режима в Hashcat
При поиске нужного режима мы можем взглянуть на огромный список хэшей, поддерживаемых в Hashcat. Сокращенный вариант с наиболее популярными типами приведен ниже:
Hash-Mode Hash-Name Example 0 MD5 8743b52063cd84097a65d1633f5c74f5 10 md5($pass.$salt) 01dfae6e5d4d90d9892622325959afbe:7050461 20 md5($salt.$pass) f0fda58630310a6dd91a7d8f0a4ceda2:4225637426 30 md5(utf16le($pass).$salt) b31d032cfdcf47a399990a71e43c5d2a:144816 40 md5($salt.utf16le($pass)) d63d0e21fdc05f618d55ef306c54af82:13288442151473 50 HMAC-MD5 (key = $pass) fc741db0a2968c39d9c2a5cc75b05370:1234 60 HMAC-MD5 (key = $salt) bfd280436f45fa38eaacac3b00518f29:1234 100 SHA1 b89eaac7e61417341b710b727768294d0e6a277b 110 sha1($pass.$salt) 2fc5a684737ce1bf7b3b239df432416e0dd07357:2014 120 sha1($salt.$pass) cac35ec206d868b7d7cb0b55f31d9425b075082b:5363620024 130 sha1(utf16le($pass).$salt) c57f6ac1b71f45a07dbd91a59fa47c23abcd87c2:631225 140 sha1($salt.utf16le($pass)) 5db61e4cd8776c7969cfd62456da639a4c87683a:8763434884872 150 HMAC-SHA1 (key = $pass) c898896f3f70f61bc3fb19bef222aa860e5ea717:1234 160 HMAC-SHA1 (key = $salt) d89c92b4400b15c39e462a8caa939ab40c3aeeea:1234 200 MySQL323 1EAFFED54F552AA5 300 MySQL4.1/MySQL5 fcf7c1b8749cf99d88e5f34271d636178fb5d130
В списке выше есть два примера, которые могут соответствовать первому хэшу (7196759210defdc0), рассмотренному нами в предыдущем шаге. На первый взгляд, режим 200 «MySQL323» наиболее соответствует. Подтвердить гипотезу можно при помощи проверки тестового хэша в hash-identifier.
HASH: 1EAFFED54F552AA5 Possible Hashs: [+] MySQL [+] MD5(Middle) Least Possible Hashs: [+] MD5(Half)
Точное совпадение с нужным хэшем:
HASH: 7196759210defdc0 Possible Hashs: [+] MySQL [+] MD5(Middle) Least Possible Hashs: [+] MD5(Half)
Если мы попробуем другой тип (300), то увидим, что результаты не совпадают.
HASH: fcf7c1b8749cf99d88e5f34271d636178fb5d130 Possible Hashs: [+] SHA-1 [+] MySQL5 - SHA-1(SHA-1($pass)) Least Possible Hashs: [+] Tiger-160 [+] Haval-160 [+] RipeMD-160 [+] SHA-1(HMAC) [+] Tiger-160(HMAC) [+] RipeMD-160(HMAC) [+] Haval-160(HMAC) [+] SHA-1(MaNGOS) [+] SHA-1(MaNGOS2) [+] sha1($pass.$salt) [+] sha1($salt.$pass) [+] sha1($salt.md5($pass)) [+] sha1($salt.md5($pass).$salt) [+] sha1($salt.sha1($pass)) [+] sha1($salt.sha1($salt.sha1($pass))) [+] sha1($username.$pass) [+] sha1($username.$pass.$salt) [+] sha1(md5($pass)) [+] sha1(md5($pass).$salt) [+] sha1(md5(sha1($pass))) [+] sha1(sha1($pass)) [+] sha1(sha1($pass).$salt) [+] sha1(sha1($pass).substr($pass,0,3)) [+] sha1(sha1($salt.$pass)) [+] sha1(sha1(sha1($pass))) [+] sha1(strtolower($username).$pass)
Соответственно, еще раз убеждаемся, что режим 200 выбран правильно.
Шаг 4. Расшифровка хэша при помощи Hashcat
После идентификации типа хэша и подбора нужно режима можно приступать к расшифровке пароля в Hashcat. Вначале нужно создать словарь с паролями, который будет использоваться в Hashcat для атаки на хэш. В сети есть много доступных списков, например, RockYou, но в нашем случае мы будем создавать тестовый словарь example.dict с несколькими паролями.
Если вы все еще находитесь внутри скрипта hash-identifier, нажмите Ctrl–C, а затем откройте файл в текстовом редакторе nano, запустив следующую команду:
~/hash-identifier$ nano example.dict
После добавления нескольких предполагаемых паролей, один из которых – «hashcat», нажимаем Ctrl–X для выхода из редактора и вводим Y, чтобы сохранить изменения в файле. Теперь мы можем использовать этот файл в качестве словаря вместе с ранее выбранным режимом для взлома хэша. Базовая команда выглядит примерно так:
sudo hashcat -m MODE_NUMBER -a 0 HASH_VALUE example.dict
Вместо значения HASH_VALUE указываем хэш 7196759210defdc0, вместо MODE_NUMBER – подобранный ранее режим 200. Результат работы показан ниже. Если у вас старая система, как в моем случае – нужно указать параметр –force.
~/hash-identifier$ sudo hashcat -m 200 -a 0 7196759210defdc0 example.dict --force hashcat (v5.1.0) starting... OpenCL Platform #1: The pocl project ==================================== * Device #1: pthread-Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93GHz, 1024/3639 MB allocatable, 2MCU /usr/share/hashcat/OpenCL/m00200_a0-optimized.cl: Pure OpenCL kernel not found, falling back to optimized OpenCL kernel Hashes: 1 digests; 1 unique digests, 1 unique salts Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates Rules: 1 Applicable optimizers: * Optimized-Kernel * Zero-Byte * Not-Iterated * Single-Hash * Single-Salt Password length minimum: 0 Password length maximum: 31 Watchdog: Hardware monitoring interface not found on your system. Watchdog: Temperature abort trigger disabled. Watchdog: Temperature retain trigger disabled. * Device #1: build_opts '-I /usr/share/hashcat/OpenCL -D VENDOR_ID=64 -D CUDA_ARCH=0 -D AMD_ROCM=0 -D VECT_SIZE=4 -D DEVICE_TYPE=2 -D DGST_R0=0 -D DGST_R1=1 -D DGST_R2=2 -D DGST_R3=3 -D DGST_ELEM=4 -D KERN_TYPE=200 -D _unroll' * Device #1: Kernel m00200_a0-optimized.44d10a8c.kernel not found in cache! Building may take a while... Dictionary cache hit: * Filename..: example.dict * Passwords.: 17 * Bytes.....: 76 * Keyspace..: 17 - Device #1: autotuned kernel-accel to 1024 - Device #1: autotuned kernel-loops to 1 [s]tatus [p]ause [r]esume [b]ypass [c]heckpoint [q]uit => The wordlist or mask that you are using is too small. This means that hashcat cannot use the full parallel power of your device(s). Unless you supply more work, your cracking speed will drop. For tips on supplying more work, see: https://hashcat.net/faq/morework Approaching final keyspace - workload adjusted. 7196759210defdc0:hashcat Session..........: hashcat Status...........: Cracked Hash.Type........: MySQL323 Hash.Target......: 7196759210defdc0 Time.Started.....: Mon Dec 9 17:00:25 2019 (0 secs) Time.Estimated...: Mon Dec 9 17:00:25 2019 (0 secs) Guess.Base.......: File (example.dict) Guess.Queue......: 1/1 (100.00%) Speed.Dev.#1.....: 0 H/s (0.03ms) Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts Progress.........: 17/17 (100.00%) Rejected.........: 0/17 (0.00%) Restore.Point....: 0/17 (0.00%) Candidates.#1....: wow -> again HWMon.Dev.#1.....: N/A Started: Mon Dec 9 17:00:17 2019 Stopped: Mon Dec 9 17:00:27 2019
В результате мы получили 7196759210defdc0:hashcat и смогли
расшифровать хэш посредством сравнения с элементами словаря из файла example.dict.
Заключение
Когда вы имеете дело с неизвестным хэшем, первый шаг – корректная идентификация типа. Хотя скрипт hash-identifier – не идеален, но позволяет без особых проблем опознать наиболее распространённые хэши и отличить разные типа хэшей, которые выглядят одинаково, но требуют разных режим работы в Hashcat. Даже если hash-identifier не уверен, с каким типом вы имеете дело, сравнение с результатами примеров с сайта Hashcat, может помочь в идентификации.
Надеюсь это руководство, посвященное опознанию неизвестных хэшей, вам понравилось.
Как найти хэш от пароля?
Anthony Stonem
Ученик
(129),
закрыт
4 месяца назад
пытаюсь освоить программу hashcat, подобрать пароль от хэша. но у меня нет самих хэшей, и как я понял, эти хэши паролей можно где-то найти.
не могу понять где взять эти хэши паролей с разных сайтов и аккаунтов?
Лучший ответ
xepb
Просветленный
(24944)
4 месяца назад
пароль от хэша ???
ржунимагуваляюсь
Anthony StonemУченик (129)
4 месяца назад
расшифровать хэш и получить пароль, правильно?
xepb
Просветленный
(24944)
Anthony Stonem, что-то типа того
тока хэш – функция необратимая…
Anthony StonemУченик (129)
4 месяца назад
но ведь хэш расшифровать можно? пароль из него подобрать можно, правильно? и если да, как мне узнать чей то хэш, если я знаю еще логин аккаунта с простенького сайта
xepbПросветленный (24944)
4 месяца назад
хеши хранятся в БД.
пока ее не ломанешб поля для деятельности тебе не будет
Остальные ответы
Data Bank
Знаток
(395)
4 месяца назад
Так хеш ведь формируется по заданному программистом методу…
Anthony StonemУченик (129)
4 месяца назад
я просто не совсем еще понимаю, только пытаюсь разобраться в теме. я сам должен спрограммировать хэш от чьего то пароля, чтобы потом по хэшу вычислить пароль?
᠌ ᠌ ᠌᠌ ᠌ ᠌ ᠌ ᠌ ᠌
Просветленный
(24804)
4 месяца назад
Рано тебе это знать
Anthony StonemУченик (129)
4 месяца назад
тебя не просили писать
᠌ ᠌ ᠌᠌ ᠌ ᠌ ᠌ ᠌ ᠌
Просветленный
(24804)
Так теебя и не просили тут вопрос задавать
Похожие вопросы