Как расшифровать хеш пароля
Взлом хешей с помощью HashCat
Hashcat – это самая быстрая и передовая утилита для восстановления паролей, поддерживающая пять уникальных режимов атаки для более чем трёхсот алгоритмов хеширования.
Hashcat поддерживает:
Также hashcat имеет средства, которые помогают включить распределенный взлом паролей.
HashCat поддерживает следующие режимы атаки:
С помощью данной команды можно проверить все доступные параметры:
Сегодня мы будем использовать режим атаки по словарю.
Содержание:
MD5-хеши
Убедитесь, что входные хеши имеют совместимый с hashcat формат.
Пример:
Команда:
MD5-хеши с солью
Убедитесь, что входные хеши имеют совместимый с hashcat формат.
Пример:
md5($pass.$salt):
01dfae6e5d4d90d9892622325959afbe:7050461> hash.txt
Команда:
Хеш-суммы MD5Crypt
Убедитесь, что входные хеши имеют совместимый с hashcat формат.
Пример:
Команда:
HMAC-SHA1 key
Убедитесь, что входные хеши имеют совместимый с hashcat формат.
Пример:
Команда:
Хеш-суммы SHA-1
Убедитесь, что входные хеши имеют совместимый с hashcat формат.
Пример:
Команда:
Хеши SHA2–384
Убедитесь, что входные хеши имеют совместимый с hashcat формат.
Пример:
SHA2-384 07371af1ca1fca7c6941d2399f3610f1e392c56c6d73fddffe38f18c430a2817028dae1ef09ac683b62148a2c8757f42> hash.txt
Команда:
Хеши SHA3–512
Убедитесь, что входные хеши имеют совместимый с hashcat формат.
Пример:
SHA3–512 7c2dc1d743735d4e069f3bda85b1b7e9172033dfdd8cd599ca094ef8570f3930c3f2c0b7afc8d6152ce4eaad6057a2ff22e71934b3a3dd0fb55a7fc84a53144e >hash.txt
Команда:
NTLM-хеши
Убедитесь, что входные хеши имеют совместимый с hashcat формат.
Пример:
Команда:
CRC32-хеши
Убедитесь, что входные хеши имеют совместимый с hashcat формат.
Хеширование и расшифровка MD5 хеш-кода
Что такое MD5?
MD5 является одним из алгоритмов хеширования на 128-битной основе. Под хешированием понимают преобразование входных данных по определенному алгоритму в битовую строку определенной длины. При этом полученный в ходе вычислений результат представлен в шестнадцатеричной системе исчисления. Она называется хешем, хеш-суммой или хеш-кодом.
Процесс хеширования широко применяется в программировании и веб-индустрии. В основном для создания уникальных значений в ассоциативных массивах, идентификаторов.
Область применения хеш-кодов:
MD5 как стандарт хеширования был разработан в 1991 году для создания уникального хеш-кода от заданного значения с последующей проверкой его подлинности.
То есть хеш, полученный от функции, работа которой основана на этом алгоритме, выдает строку в 16 байт (128) бит. И эта строка включает в себя 16 шестнадцатеричных чисел. При этом изменение хотя бы одного ее символа приведет к последующему бесповоротному изменению значений всех остальных битов строки:
Проблемы надежности MD5
Казалось бы, такая характеристика MD5 должна обеспечивать 100% гарантии неуязвимости и сохранения данных. Но даже этого оказалось мало. В ходе проводимых исследований учеными был выявлен целый ряд прорех и уязвимостей в этом уже распространенном на тот момент алгоритме. Основной причиной слабой защищенности MD5 является относительно легкое нахождение коллизий при шифровании.
Проще говоря, чем больше вероятность нахождения коллизий, тем надежность используемого алгоритма ниже. Вероятность нахождения коллизий при шифровании более надежными хеш-функциями практически сводится к 0.
То есть большая вероятность расшифровки паролей MD5 является основной причиной отказа от использования этого алгоритма. Многие криптологи ( специалисты по шифрованию данных ) связывают низкую надежность MD5 с малой длиной получаемого хеш-кода.
Область применения алгоритма хеширования:
Обзор средств для декодирования хеш-кода MD5
Иногда при работе с компьютером или поврежденными базами данных требуется декодировать зашифрованное с помощью MD5 значение хеша.
Удобнее всего использовать специализированные ресурсы, предоставляющие возможность сделать это online :
Если происмотреться к значениям декодинга, отображенных на показонном выше рисунке, то становится понятно, что процесс расшифровки почти не дает результатов. Эти ресурсы представляют собой одну или несколько объединенных между собой баз данных, в которые занесены расшифровки самых простых слов.
При этом данные декодирования хеша MD5 даже такой распространенной части пароля как « админ » нашлись лишь в одной базе. Поэтому хеши паролей, состоящих из более сложных и длинных комбинаций символов, практически невозможно расшифровать.
Основы безопасности при использовании MD5
Этот стандарт кодирования является одним из самых распространенных методов защиты данных не только в прикладном, но и в веб-программировании. Поэтому не будет лишним обезопасить свой md5 hash от намеренного взлома.
Основным способом, гарантирующим безопасность хеша вашего пароля, является использование « соли ». Он основан на добавлении к паролю нескольких случайных символов и последующем хешировании результата.
Во многих языках программирования для этого используются специальные классы и функции. Не являются исключением из правил и серверные языки программирования.
Создать хеш-код MD5 в php можно с помощью нескольких функций:
При использовании функции md5() в PHP для задания значения соли используют методы генерации случайных чисел. Например, rand() :
Кроме применения « соли » было разработано еще несколько методов защиты хеша MD5 :
В статье приведены лишь начальные сведения об обеспечении безопасности хеша, полученного с помощью этого алгоритма. Самым простым и эффективным из них является использование уникального значения « соли », которая позволяет существенно « насолить » злоумышленнику и « подсластить » жизнь владельцу взламываемого пароля.
Как расшифровать хеш пароля
В этой статье пойдет речь о замечательном инструменте для расшифровки огромного числа алгоритмов — HASHCAT. Это одна из самых быстрых БЕСПЛАТНЫХ утилит для восстановления зашифрованных паролей. Скачать ее можно под разные платформы на официльном сайте. Вы только посмотрите на список алгоритмов, которые она может взламывать:
Нажмите, чтобы раскрыть весь список алгоритмов (пришлось свернуть его, потому что он просто огромный! :))
Как видно, можно взламывать и MD5, SHA, Keccak, WPA, архивы ZIP/RAR, документы MS Office, хэши паролей операционных систем и даже ключи крипто-кошельков! Конечно, все возможности будут упираться лишь в мощности Вашего железа. Hashcat умеет использовать GPU (графический процессор), что значительно ускоряет процесс. Поэтому, если у Вас имеется соверменная видеокарта, ее можно использовать для взлома пароля.
Hashcat включен в такой известный дистрибуетив линукс, как Kali Linux.
hashcat [опции]… хеш|файл_хеша|hccapxfile [словарь|маска|директория]…
— [ Тип устройства OpenCL ] —
# | Типы устройств
===+=============
1 | CPU
2 | GPU
3 | FPGA, DSP, Co-Processor
— [ Профили рабочей нагрузки ] —
# | Производительность | Время выполнения | Потребление энергии | Влияние на рабочий стол
===+====================+==================+=====================+=========================
1 | Низкая | 2 ms | Низкое | Минимальное
2 | По умолчанию | 12 ms | Экономичное | Заметное
3 | Высокая | 96 ms | Высокое | Неотзывчивый
4 | Ночной кошмар | 480 ms | Безумное | Безголовый
Простые примеры
Ниже рассмотрим пример использования hashcat на хэше MD5.
1 – Список слов
В этом примере произведем перебор по произольному списку слов в качестве паролей из файла
Русские Блоги
Метод шифрования и взлом пароля пользователя Windows
Когда я снова изучил Hastcat, он включал в себя взлом хеша Windows. Я чувствую, что здесь все еще есть некоторые моменты и детали. Я пишу статью, чтобы записать это.
Введение в хэш
Хеш обычно переводится как «хеш», но может быть напрямую транслитерирован как «хеш». Эта функция шифрования выполняет операцию функции шифрования для строки данных произвольной длины, а затем возвращает строку фиксированной длины. Хеш в основном используется для алгоритмов шифрования в области информационной безопасности.Получение открытого текста или хэша целевой системы во время тестирования на проникновение часто является важной частью всего процесса тестирования на проникновение. В системе Windows хэш пароля локального пользователя хранится в локальном файле SAM, а хэш пароля пользователя в домене хранится в файле NTDS.DIT элемента управления доменом.
Классификация хэшей Windows
Введение в LM Hash
Принцип генерации LM Hash
Недостатки LM Hash
Введение в NTLM Hash
Принцип генерации NTLM Hash
Сканирование хэша Windows
mimikatz
Локальное интерактивное сканирование
Покажите, есть ли у вас соответствующие разрешения, чтобы продолжить:
Запустить функцию регистрации:
Выведите все пароли в открытом виде, хранящиеся на этом компьютере:
Локальное неинтерактивное сканирование
Запускайте непосредственно из командной строки CMD с высокими привилегиями:
Удаленное неинтерактивное сканирование
лабораторная среда
Детали устройства | айпи адрес | Взять на себя роль |
---|---|---|
macOS | 10.211.55.2 | злоумышленник |
Windows 7 SP 1 | 10.211.55.12 | Атаковали |
В этом эксперименте ncat используется для отскока сообщения. Студенты, не знакомые с командой ncat, могут обратиться к этой моей статье:запись обучения команде NC
macOS
Заранее встроенные мониторы macOS:
Guoguang Лично я предпочитаю больше команд ncat, в зависимости от личных предпочтений.
Windows
Здесь для удобства положил nc.exe Загружено на mimikatz.exe В том же каталоге:
эффект
После завершения этой операции, не оставляя никаких файлов в целевой системе, напрямую отправьте захваченные результаты на указанный удаленный компьютер с помощью nc. В это время сторона macOS получила возвращенную информацию о пароле:
Powershell load mimikatz grab
Когда целевая машина может подключиться к внешней сети:
В случае интрасети вы можете загрузить сценарий, создать локальный веб-сервер самостоятельно и получить к нему доступ через IP-адрес интрасети:
Взять образцы каждой версии системы
Windows Server 2003 R2
Ключевая информация такова:
Виды | ценить |
---|---|
имя пользователя | Administrator |
Простой текст | [email protected] |
LM | 896108c0bbf35b5caad3b435b51404ee |
NTLM | f6502cbe4802f94ab472288970c124cd |
Windows Server 2008 R2
Конфигурация Windows Server 2008 R2 по умолчанию все еще может считывать хэш типа LM, что не соответствует теории в Интернете, что указывает на то, что WIndows Server 2008 R2 и Windows 7 еще не полностью отключили хеш типа LM.
Windows 7 SP1
Ключевая информация такова:
Виды | ценить |
---|---|
имя пользователя | Administrator |
Простой текст | [email protected] |
LM | 921988ba001dc8e14a3b108f3fa6cb6d |
NTLM | e19ccf75ee54e06b06a5907af13cef42 |
Windows 10 1903
Ключевая информация такова:
Виды | ценить |
---|---|
имя пользователя | sqlsec |
Простой текст | Пусто здесь не читается |
NTLM | f00a25418f128daaef2bc89ed94416bd |
Windows 10 не может использовать mimikatz для чтения пароля в виде обычного текста, только зашифрованный можно прочитать напрямую NTLM ценить.
ProcDump + mimikatz
Официальный адрес сайта:ProcDump v9.0
дамп процесса lsass.exe
x86 x64, соответственно, выполнить соответствующие исполняемые файлы.Так как на этот раз тестовая система 64-разрядная, выполните procdump64.exe
Для систем NT6 и выше вы также можете использовать встроенные функции Windows для дампа:
Прочитать информацию о файле dmp
Перенести созданный выше lsass.dmp Файл в mimikatz.exe В том же каталоге выполните следующую неинтерактивную команду, чтобы прочитать пароль напрямую:
# Прочтите пароль в виде открытого текста + значение хэша для более полной информации
mimikatz.exe “sekurlsa::minidump lsass.dmp” “sekurlsa::logonPasswords” exit
QuarksPwDump
В настоящее время автор открыл только исходный код и не выпустил скомпилированную версию, поэтому, если вы ее используете, вам придется отправить несколько и скомпилировать с помощью VS Studio. Следующая версия, составленная самим Гогуаном, выглядит следующим образом, друзья могут скачать ее сами:
имя файла | ссылка для скачивания |
---|---|
QuarksPwDump.exe | Ссылка для скачивания OneDriver |
Если вы хотите добавить антивирусную функцию самостоятельно, вы можете скомпилировать ее самостоятельно. Здесь Guoguang использует VS Studio 2010 для ее компиляции. Кстати, адрес загрузки прилагается:
имя файла | ссылка для скачивания |
---|---|
Учебная версия VC ++ 2010 и постоянный регистрационный code.zip | Ссылка для скачивания OneDriver |
Кроме того, у Githun есть другие обновленные версии, которые скомпилировал Даниэль, и мы также можем загрузить их напрямую:
QuarksPwDump записывает команду пароля следующим образом:
Возьмите Hash и сгенерируйте его в том же каталоге hash.txt Конкретный хеш файла выглядит следующим образом:
Использование хэша Windows
Взлом Hashcat
Предположим, мы читаем хэш следующим образом:
Фактически, это открытый текст: P @ ssw0rd
Ничего особенного, давайте пройдемся по процессу и раскроем его:
Hashcat взламывает LM Hash
Поскольку длина LM Hash составляет не более 14 символов, пароль делится на 2 символа длиной 7 для хранения, поэтому, когда Hashcat взламывается здесь, он также разделяется на две части для взлома отдельно:
Hashcat взламывает NTLM Hash
Взлом прошел успешно и были получены следующие результаты:
Взлом хеша в Интернете
Для старого иностранного веб-сайта взлома хэша просто введите значение NTLM Hash:
Отечественный CMD5.com также поддерживает взлом хэшей типа NTLM. Он будет автоматически расшифрован путем прямой вставки в систему, что также более удобно:
Есть много других веб-сайтов, которые не рекомендуются, вот только два наиболее используемых веб-сайта.
Доставка хэша
Вступление
PASS THE Hash также называется атакой передачи хэша, или сокращенно PTH. Имитация входа пользователя в систему не требует пароля пользователя в виде открытого текста, и только полученный хэш может использоваться для входа в целевую систему.
Предпосылками для успешного использования являются:
Включите службу SMB на порту 445
Здесь хэш пользователя-администратора, захваченный mimikatz для целевой Windows Server 2008 R2 (10.211.55.4):
Хэш пользователя-администратора, захваченный QuarksDump:
После теста Guoguang, когда следующий хэш пройден, если следующий NTLM-хеш верен, вы можете успешно войти в систему с тем, что вы вводите спереди. После тестирования следующий хеш может быть успешным:
Другими словами :E19CCF75EE54E06B06A5907AF13CEF42 Эта деталь играет ключевую роль в аутентификации. Пока номер на лицевой стороне правильный, нет проблем с заполнением чего-либо. Ниже приводится конкретная демонстрация.
Metasploit
В Metasploit есть три модуля psexec, которые можно использовать для передачи хэша. Это:
# Выполнить напрямую, чтобы получить модуль PTH из meterpreter
exploit/windows/smb/psexec
# Модуль, поддерживающий проверку PTH в сегменте сети
exploit/windows/smb/psexec_psh
auxiliary/admin/smb/psexec_command
Более безвкусно то, что этот модуль не поддерживает пакетную проверку формата сетевого сегмента, поэтому следующие два модуля можно рассматривать в реальных боевых условиях.
exploit/windows/smb/psexec
Поддерживает IP в формате сегмента сети для облегчения пакетной проверки PTH. Ниже приводится единый процесс проверки:
Следующий эффект пакетной проверки сетевого сегмента более практичен и эффективен в качестве такой проверки в интрасети:
По поводу вопроса о том, что предыдущий 32-битный хеш не работает, я зашел на форум T00ls, чтобы задать вопрос. Вот ответы мастеров:
Hello_C: NTLM Hash = LM Hash + NT Hash, если LM Hash имеет значение aad3b435b51404eeaad3b435b51404ee, пароль может быть пустым или хеш lm не сохраняется. В 2008 году хеш lm не сохраняется по умолчанию. Pth использует хэш nt. Для некоторых инструментов может потребоваться формат хеша lm hash: nt. Без хеша lm для заполнения можно использовать любые 32 символа.
exploit/windows/smb/psexec_psh
Этот модуль также поддерживает пакетную проверку сегментов сети, поэтому я не буду здесь вдаваться в подробности.
Взлом «посоленных» хешей
Безопасность веб-приложений: Что можно, а что нельзя делать при шифровании с использованием соли.
Безопасность веб-приложений: Что можно, а что нельзя делать при шифровании с использованием соли
Обзор:
Вопрос безопасности баз данных стал более насущным по мере того, как базы данных становились более открытыми. Шифрование является одним из пяти основных факторов безопасности данных.
Небезопасной практикой является хранение такой важной информации, как пароль, номер кредитной карты в базе данных в незашифрованном виде. Эта статья охватывает различные возможности шифрования.
Даже в если вы зашифровали вашу информацию, это совершенно не значит, что она находится в полной безопасности. В этой статье рассматриваются действия со стороны злоумышленника.
Соль (Криптография)
http://en.wikipedia.org/wiki/Salt_(cryptography)
Предположим, что украден хешированный пароль пользователя. Известно, что пароль является одним из 200,000 английских слов. Система использует 32-х битную соль. «Посоленный» ключ – это оригинальный пароль, добавленный к произвольной 32-х битной соли. Из-за соли посчитанные хеши злоумышленника не подойдут (не удастся использовать радужные таблицы). Злоумышленник должен посчитать хеш каждого слова с каждым из 232 (4,294,967,296) возможных вариантов соли, добавленных к паролю, до тех пор, пока не будет получено совпадение. Общее число возможных комбинаций может быть получено умножением количества слов в словаре на количество возможных вариантов соли:
2^ <32>\умножить на 200 000 = 8.58993459 \умножить на 10^ <14>
Для завершения брут-форс атаки злоумышленник должен перебрать почти 900 триллионов хешей, вместо всего-лишь 200,000. Даже если пароль сам по себе достаточно прост, соль делает взлом паролей достаточно сложной операцией.
Соль должна быть неизвестной. Если злоумышленник знает, какая используется соль, он сразу может перейти к первому шагу. Ниже приведены несколько возможных способов взлома «посоленных» хешей.
Приложения, не использующие хеши:
Во время изучения веб-приложения я дошел до этого места программы. Программа использовала javascript для шифрования пароля пользователя перед отправкой. В качестве соли использовался текущий ID сессии.
На сервере программа не сможет проверить значение пароля по причине использования соли и случайного ID сессии. И поскольку MD5 является нереверсивной хеш-функцией, пароль не сможет быть проверен до тех пор, пока пароли хранятся в виде текста в базе данных.
В качестве соли для шифрования пароля перед отправкой используется случайно сгенерированный ID сессии. Это значит, что серверные базы данных не будут зашифрованы.
Иногда такого рода программы выдают много информации.
Пункт №1: Всегда шифруйте вашу базу данных паролей.
Для того, чтобы использовать все эти виды атак, вы должны знать, при помощи какого алгоритма был посчитан хеш.
Что можно сделать, чтобы выяснить используемый алгоритм хеширования??
Ответ: Все алгоритмы генерируют хеш фиксированной длины. Поэтому на основании выходного значения вы можете прикинуть, какой алгоритм использовался☺. “Все это – достаточно известные факты”, но по-прежнему я помещаю их здесь.
Для этого я размещу небольшую таблицу для выявления хеш-функций на основе их выходного значения
Функция: md5(“входные данные”); Hash(“входные данные”); Вывод: 32 Символа Пример: “5f4dcc3b5aa765d61d8327d eb882cf99”
Функция: System.Security.Cryptogr aphy Вывод: 32 Символа Пример: “5f4dcc3b5aa765d61d8327d eb882cf99”
Функция:java.secur ity.MessageDigest Вывод: 32 Символа Пример: “5f4dcc3b5aa765d61d 8327deb882cf99”
Функция: Crypt() По-умолчанию DES вывод: 13 Символов Пример: “sih2hDu1acVcA”