Определить тип хеша kali

Обновлено: 07.07.2024

Linux хранить зашифрованные пароли пользователей, также как и другую информацию связанную с безопасностью, например сроки действия аккаунтов или паролей, в файле /etc/shadow .

Однажды у вас может возникнуть необходимость вручную отредактировать файл /etc/shadow для того, чтобы задать или изменить чей-то пароль.

В отличие от файла /etc/passwd , который могут читать все, файл /etc/shadow должен быть доступен для чтения ИСКЛЮЧИТЕЛЬНО пользователю ROOT.

Для этого вам придется сгенерировать хэш пароля в формате, который будет совмести с /etc/shadow .

Нет необходимости устанавливать дополнительные утилиты, так как это может быть легко сделано из командной строки в Linux с помощью Python.

Создать Хэш Пароля для /etc/shadow

Зашифрованные пароли в /etc/shadow хранятся в следующем формате:

$ID обозначает тип шифрования, $SALT — это случайная (до 16 символов) строка и $ENCRYPTED — хэш пароля.

Тип ХэшаIDДлина Хэша
MD5$122 символов
SHA-256$543 символов
SHA-512$686 символов

Используйте следующие команды из терминала в Linux для создания хэшированых паролей со случайной солью для /etc/shadow .

Создать MD5 Хэш пароля:

Создать SHA-256 Хэш пароля:

Создать SHA-512 Хэш пароля:

Надеюсь эти команды будут вам полезны.

Только не забудьте поменять MySecretPassword на ваш YourSecretPassword.

Как вы видите, это действительно очень легко генерировать хэши для /etc/shadow из командной строки в Linux с помощью Python.

В частности потому, что Python, по умолчанию, установлен в большинстве Linux дистрибутивах.

Узнать тип хэша

Существуют два основных параметра, которые могут помочь распознать тип используемой хэш-функции:

  • Длина ХЭШа (каждая хэш-функция имеет определенную выходную длину);
  • Используемый алфавит (есть ли английские буквы? числа 0-9 и A-F … возможно это hex? используются ли специальные символы?).

Step 1: Скачиваем последнюю версию (v1.1 на текущий момент)

Step 2: Запускаем скрипт и копируем интересующие нас ХЭШи

Когда вы имеете дело с неизвестным хэшем, первый шаг – корректная идентификация типа.

image

Определения типов хэшей при помощи скрипта hash-Identifier для расшифровки паролей

Автор: Kody

Хэши обычно используются для хранения конфиденциальной информации, как, например, учетных записей, которые не должны находиться в открытом виде. При помощи утилит наподобие Hashcat мы можем взломать эти хэши однако только в случае, если знаем алгоритм генерации. Используя инструменты навроде скрипта hash-identifier, можно легко определить тип любых хэшей, чтобы затем указать правильный режим при работе с Hashcat.

Помимо взлома хэшей hash-identifier также полезен для идентификации алгоритма, используемого при выдаче контрольной суммы для загрузки файлов. Кроме того, этот скрипт помогает определить, к какому приложению относится хэшированный файл или значение (например, SQL базе или какому-либо другому формату, специфичному для конкретного поставщика).

Что такое хэш и как расшифровать пароль?

Как было сказано ранее, пароли, извлекаемые из базы данных или компьютера, обычно хранятся в виде хэшей, а не в открытом виде. Функция хэширования преобразует пароли в хаотичный набор символов и чисел, которые не должны быть обратимы обратно в пароль.

Однако два или более одинаковых пароля, при использовании одной и той же функции, будут иметь один и тот же хэш. Соответственно, при помощи этой функции можно получить набор хэшей для списка паролей, а затем использовать этот перечень для обнаружения подходящего пароля. Подобным образом работает множество утилит для взлома.

Хотя хранение пароля в виде хэша лучше, чем в открытом виде, вероятность взлома все равно остается, если у злоумышленника хороший набор правил или словарь, которые можно использовать в Hashcat или другой подобной программе.

Если вы много работаете с хэшами, то легко увидите разницу между разными и часто используемыми типами.

Например, сможете ли вы на глаз определить, к какому типу относятся хэши, указанные ниже?

Хотя вы могли видеть и тот и другой хэш ранее, ответ на вопрос, какой хэш - MD5, а какой - SHA1, не столь очевиден. Еще большая путаница может возникнуть со схожими типами хэшей, относящиеся к разным режимам в Hashcat. В случае с хэшами, приведенными выше, этот факт имеет чрезвычайно важное значение.

При использовании Hashcat для взлома этого хэша мы должны установить опцию –m с целью работы в нужном режиме. Для взлома хэша MD5 мы бы указали режим 0.

В итоге, установив нужный алгоритм и используя хороший словарь, после расшифровки хэша мы получили слово «hashcat».

Какие хэши поддерживаются?

На данный момент Hashcat в состоянии расшифровать большое количество хэшей. В репозитории на GitHub для утилиты hash-identifier список поддерживаемых хэшей очень внушителен:

Что понадобится

Для начала нужно установить Python3 на вашем компьютере (есть версии для разных платформ). Кроме того, вам понадобится утилита Hashcat, которую можно загрузить, используя команду apt install hashcat, после обновления системы при помощи команд apt update и apt upgrade.

Если вы хотите сгенерировать ваши собственные хэши для тестового взлома, то можете воспользоваться командой в формате echo -n PLAINTEXT | (HASHTYPE)sum. Например, при создании хэша SHA1 для слова «nullbyte» я запустил следующую команду:

Шаг 1. Загрузка и установка Hash-Identifier

Установить скрипт, написанный на Python, – очень просто. Откройте терминал и запустите следующую команду:

Затем посмотрите содержимое директории hash-identifier:

Вы должны обнаружить файл hash-id.py, который можно запустить при помощи команды ниже:

Шаг 2. Идентификация неизвестных хэшей

В качестве пробного подхода при помощи hash-identifier попробуем опознать следующие пять неизвестных хэшей:

Для начала в командной строке вводим первую строку и быстро получаем результат, что скорее всего имеем дело с хэшем, используемым в MySQL, который попробуем взломать чуть позже.

Второй хэш, показанный ниже, опознается как SHA256. Другой вероятный вариант - Haval256.

Третий хэш опознается как SHA1:

Четвертый хэш опознается как SHA512:

Наконец, пятый и последний хэш опознается как MD5:

Все прошло без особых проблем. Следующий шаг – поиск нужного режима, соответствующего обнаруженному типу, который будет указываться в Hashcat во время взлома.

Шаг 3. Подбор режима в Hashcat

При поиске нужного режима мы можем взглянуть на огромный список хэшей, поддерживаемых в Hashcat. Сокращенный вариант с наиболее популярными типами приведен ниже:

В списке выше есть два примера, которые могут соответствовать первому хэшу (7196759210defdc0), рассмотренному нами в предыдущем шаге. На первый взгляд, режим 200 «MySQL323» наиболее соответствует. Подтвердить гипотезу можно при помощи проверки тестового хэша в hash-identifier.

Точное совпадение с нужным хэшем:

Если мы попробуем другой тип (300), то увидим, что результаты не совпадают.

Соответственно, еще раз убеждаемся, что режим 200 выбран правильно.

Шаг 4. Расшифровка хэша при помощи Hashcat

После идентификации типа хэша и подбора нужно режима можно приступать к расшифровке пароля в Hashcat. Вначале нужно создать словарь с паролями, который будет использоваться в Hashcat для атаки на хэш. В сети есть много доступных списков, например, RockYou, но в нашем случае мы будем создавать тестовый словарь example.dict с несколькими паролями.

Если вы все еще находитесь внутри скрипта hash-identifier, нажмите Ctrl-C, а затем откройте файл в текстовом редакторе nano, запустив следующую команду:

После добавления нескольких предполагаемых паролей, один из которых – «hashcat», нажимаем Ctrl-X для выхода из редактора и вводим Y, чтобы сохранить изменения в файле. Теперь мы можем использовать этот файл в качестве словаря вместе с ранее выбранным режимом для взлома хэша. Базовая команда выглядит примерно так:

Вместо значения HASH_VALUE указываем хэш 7196759210defdc0, вместо MODE_NUMBER – подобранный ранее режим 200. Результат работы показан ниже. Если у вас старая система, как в моем случае – нужно указать параметр –force.

В результате мы получили 7196759210defdc0:hashcat и смогли расшифровать хэш посредством сравнения с элементами словаря из файла example.dict.

Когда вы имеете дело с неизвестным хэшем, первый шаг – корректная идентификация типа. Хотя скрипт hash-identifier – не идеален, но позволяет без особых проблем опознать наиболее распространённые хэши и отличить разные типа хэшей, которые выглядят одинаково, но требуют разных режим работы в Hashcat. Даже если hash-identifier не уверен, с каким типом вы имеете дело, сравнение с результатами примеров с сайта Hashcat, может помочь в идентификации.

Надеюсь это руководство, посвященное опознанию неизвестных хэшей, вам понравилось.

hashcat

Представления паролей в первую очередь связаны с хэш-ключами, такими как MD5, SHA, WHIRLPOOL, RipeMD, NTMLv1, NTMLv2 и т. д.

Hashcat переводит читаемые данные в искаженное состояние (это случайная строка фиксированного размера). Хэши не позволяют кому-либо расшифровать данные с помощью определенного ключа, как это позволяют стандартные протоколы шифрования. Hashcat использует предварительно вычисленные словари, радужные таблицы и даже методы брутфорса, чтобы найти эффективный и действенный способ взлома паролей.

Кстати, про использование Hashcat в Windows, мы рассказывали в этой статье.

Как взломать хеши

Атаки по словарю и перебором являются наиболее распространенными способами подбора паролей. Эти методы используют файл, содержащий слова, фразы, общие пароли и другие строки, которые могут быть использованы в качестве надежного пароля.

Другие подходы, используемые для взлома паролей:

Следует отметить, что не существует гарантированного способа предотвратить атаки по словарю или атаки методом перебора.

Что такое Hashcat

В программе используется распараллелиный алгоритм перебора, базированный на технологии CUDA (NVidia) и OpenCL (AMD/ATI). Программа кросс-платформенная работает на всех версиях Windows, Linux и Max OS X.

Алгоритмы шифрования, которые взламывает Хешкэт

MD5
md5($pass.$salt)
md5($salt.$pass)
HMAC-MD5 (key = $pass)
HMAC-MD5 (key = $salt)
SHA1
sha1($pass.$salt)
sha1($salt.$pass)
HMAC-SHA1 (key = $pass)
HMAC-SHA1 (key = $salt)
MySQL
MySQL4.1/MySQL5
phpass, MD5(WordPress), MD5(phpBB3)
md5crypt, MD5(Unix), FreeBSD MD5, Cisco-IOS MD5
SHA-1(Django)
MD4
NTLM
Domain Cached Credentials, mscash
SHA256
sha256($pass.$salt)
sha256($salt.$pass)
HMAC-SHA256 (key = $pass)
HMAC-SHA256 (key = $salt)
md5apr1, MD5(APR), Apache MD5
SHA512
sha512($pass.$salt)
sha512($salt.$pass)
HMAC-SHA512 (key = $pass)
HMAC-SHA512 (key = $salt)
SHA-512(Unix)
Double MD5
MD5(Sun)
md5(md5(md5($pass)))
md5(md5($salt).$pass)
md5($salt.md5($pass))
md5($salt.$pass.$salt)
md5(md5($pass).md5($salt))
md5($salt.md5($salt.$pass))
md5($salt.md5($pass.$salt))
md5($username.0.$pass)
md5(strtoupper(md5($pass)))
md5(sha1($pass))
sha1(sha1($pass))
sha1(sha1(sha1($pass)))
sha1(md5($pass))
MD5(Chap)
nsldap, SHA-1(Base64), Netscape LDAP SHA
nsldaps, SSHA-1(Base64), Netscape LDAP SSHA
SMF > v1.1
OS X v10.4, v10.5, v10.6
MSSQL
OS X v10.7
MSSQL 2012
vBulletin < v3.8.5 vBulletin > v3.8.5
IPB2+, MyBB1.2+

Как пользоваться Hashcat

Hashcat можно скачать здесь. Его можно использовать в Kali Linux и он предустановлен в системе. В нашем примере осуществим атаку по словарю. Будем взламывать хеши MD5, изначально созданные и сохраненные в текстовом файле. Для взлома созданных хешей будем использовать словарь для брута «rockyou» из Kali Linux.

Для начала создадим несколько хешей разных паролей.

Создание файла с хешами MD5

После создания они будут добавлены в файл «target_hashes». Каждая команда должна выполняться в терминале, как показано ниже:

Создание словаря с хешами MBD5

Проверим наши хеши. Для этого введем в терминале команду:

Вот как выглядят созданные хеши паролей:

Запуск Hashcat в Kali Linux

Hashcat можно запустить в консоли Kali с помощью следующей командной строки:

Запуск Hashcat в Kali Linux

Hashcat также имеет специально разработанные правила для использования в файле списка слов. Список символов можно настроить для взлома пароля (ов).

Наконец, Hashcat предоставляет множество вариантов хэшей паролей, которые можно взломать. Это видно на скриншоте ниже:

Использование Hashcat в Kali Linux

Выбор словаря для брута хешей

В Kali Linux встроены многочисленные словари. Чтобы найти их, используйте команду:

Hashcat как пользоваться

Теперь используется список слов «rockyou», как показано ниже:

Взлом хешей с помощью Hashcat

Теперь можно приступить к взлому хешей из файла target_hashes.txt. Будем использовать следующую командную строку:

Мы взломали пять из семи хэшей:

Взлом хешей с помощью Hashcat

Важно отметить, что чем проще пароль, тем легче его будет сбрутить.

Заключение

На этом все. Теперь вы знаете как пользоваться Hashcat в Kali Linux и взламывать пароли.

Для защиты пароля, рекомендую использовать сложные надежные пароли и никогда не использовать один пароль на разных сервисах.

В этой статье мы разберем инструменты, которые доступны дистрибутиве Kali Linux.

Hydra

Чтобы запустить, перейдите в Applications → Password Attacks → Online Attacks → hydra.


Откроется консоль терминала, как показано на следующем снимке экрана.


Сейчас мы будем подбирать пароль для FTP на хосте с IP адресом 192.168.1.101

У нас есть список паролей в файле password.lst и файл с логинами в файле user.lst по пути \usr\share\wordlist\metasploit


Команда будет выглядеть следующим образом


Как показано на следующем скриншоте, имя пользователя и пароль найдены — это msfadmin:msfadmin


Johnny

Чтобы открыть его, перейдите в раздел Applications → Password Attacks → johnny.


Сейчас мы попробуем узнать пароль пользователя (в данном случае мы под root) на нашей машине с Kali с помощью следующей команды (файл будет создан на рабочем столе)





Если мы так же хотим узнать пароль нашего пользователя, но через командную строку, то введем команду

В файле unshadowed.txt будут сохранены нужные нам данные.

Rainbowcrack

Программное обеспечение RainbowCrack ломает хеши по радужной таблице. Радужные таблицы — это обычные файлы, хранящиеся на жестком диске. Как правило, радужные таблицы покупаются или могут быть скомпилированы с помощью различных инструментов.


Чтобы воспользоваться этой утилитой, выполните команду

SQLdict

Это инструмент атаки по словарю для SQL сервера и он очень прост в использовании. Чтобы открыть его, откройте терминал и введите команду

Появится подобное окно


Hash-identifier

Это инструмент, который используется для определения типа хеша, чтобы понять, для чего они используются. Например, если у меня есть хеш, он может сказать мне, является ли он хешем ОС Linux или Windows.


На приведенном выше скриншоте показано, что указанный хеш может быть хешем MD5 и похож на кешированные учетные данные домена.

Вся информация представлена исключительно в образовательных целях. Помните, что все противоправные действия караются законом! 🙂

Читайте также: