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

Обновлено: 03.07.2024

Hashcat — это кроссплатформенная программа, которая работает на Windows и Linux. Для работы требуются проприетарные драйвера. У программы открыт исходный код и она полностью бесплатна.

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

Поддерживает огромное количество алгоритмов, в том числе может взламывать пароли Wi-Fi и пароли из хешей веб-приложений.

Умеет перебирать пароли по словарю, по маске, а также с использованием других атак.

У программы открыт исходный код и она находится в стадии активной разработке — постоянно добавляются новые функции и поддержка новых хешей.

Легко устанавливается в Linux, но без проприетарных драйверов бесполезна.

  • Поддерживающие множество алгоритмов хешей: John the Ripper
  • Поддерживающие только взлом Wi-Fi хеша: Pyrit, coWPAtty, Aircrack-ng.

Вышла hashcat v5.0.0

Главным в этом выпуске являются две основные функции:

  • The hashcat brain — Мозг hashcat
  • Slow candidates — Медленные кандидаты

Также добавлены алгоритмы:

  • hash-mode 17300 = SHA3-224
  • hash-mode 17400 = SHA3-256
  • hash-mode 17500 = SHA3-384
  • hash-mode 17600 = SHA3-512
  • hash-mode 17700 = Keccak-224
  • hash-mode 17800 = Keccak-256
  • hash-mode 17900 = Keccak-384
  • hash-mode 18000 = Keccak-512
  • hash-mode 18100 = TOTP (HMAC-SHA1)

Также очень подробно рассказывается про новые функции The hashcat brain и Slow candidates. Особенно много про hashcat brain.

Slow candidates — это интерфейс для генерации паролей. В будущем к нему планируется прикрутить разные алгоритмы генерации паролей (пример, табличную атаку hashcat, kwprocessor, OMEN, PassGAN, PCFG, princeprocessor и т. д.)

На данный момент позволяет избегать «бутылочного горлышка» при генерации паролей с использованием правил при определённых условиях… В общем, это довольно специфичная функция.

Что касается hashcat brain — это интеллектуальная система, которая теперь встроена в hashcat. Она позволяет избегать дубликатов в кандидатах в пароли при взломах одного и того же хеша в нескольких атаках. Например, сначала мы взламывали хеш по словарю, а затем начали взламывать его по маске. Насколько я понял, теперь hashcat brain будет отсеивать дубликаты — одинаковые пароли, которые уже были попробованы в первой атаке (по словарю) и при атаке по маске будет пропускать их.

Также упоминается, что много дубликатов возникает при атаке на основе правил и hashcat brain позволяет их отбрасывать.

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

Также hashcat brain поможет, если вы делаете взлом одновременно по нескольким словарям — дубликаты будут отброшены.

Для включения этой функции добавлена опция -z. В статье, на которую дана ссылка, говориться, что имеется серверная и клиентская часть. То есть указанные оптимизации будут работать если вы взламываете хеши распределённо с коллегами.

Не совсем понятно, нужно ли запускать серверную часть отдельное, если выполняется взлом только на одном компьютере?

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

Также упоминаются требования к хранилищу и оперативной памяти при больших словарях.

Это только поверхностный обзор hashcat brain — очень много всего под капотом.

Раньше большинство паролей хранилось в открытом виде, но очень быстро разработчики поняли, что так делать небезопасно. Лучше хранить не сам пароль, а его хэш, набор цифр определенного размера, который генерируется на основе пароля. В таком случае, даже если злоумышленник получит хэш, то он не сможет узнать пароль. Существуют различные способы хэширования, например, md5, sha1, sha2 и многие другие. Но существует способ восстановления пароля из хэша. Для этого можно использовать перебор, нам достаточно создавать хэш для каждого возможного пароля и сравнивать его с тем хэшем, который нужно расшифровать.

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

Какие хэши можно перебрать?

Как я уже говорил, существует несколько алгоритмов хэширования, но сложность перебора каждого из них отличается. Каждый из алгоритмов может иметь коллизии. Это когда для одного хэша можно подобрать несколько различных исходных наборов данных. Самым небезопасным из популярных алгоритмов на данный момент считается md5. Было доказано, что в этом алгоритме можно найти множество коллизий, а это значит, что перебрать значение такого хэша будет намного проще. Алгоритм sha1 тоже имеет коллизии, но их намного сложнее найти, а значит перебор будет ненамного проще. Существования коллизий для Sha2 пока не доказано, но не исключено.

Программа hashcat поддерживает работу с такими алгоритмами хэширования: md5, md5crypt, sha1, sha2, sha256, md4, mysql, sha512, wpa, wpa2, grub2, android, sha256crypt, drupal7, scrypt, django и другими.

Установка hashcat

Если вы используете Windows, то вам достаточно загрузить установщик из официального сайта.

Вам нужно выбрать hashcat binaries нужной версии внизу страницы. В архиве находятся исполняемые файлы для Windows, Linux и MacOS, так что у вас не возникнет проблем. В Linux вы также можете установить утилиту из официальных репозиториев. Например, в Ubuntu команда будет выглядеть вот так:

sudo apt install hashcat


Но это еще не все. Если в вашей системе есть видеокарта, то программа будет использовать ее. И на нее должен быть установлен драйвер, желательно проприетарный. Я не буду на этом останавливаться. Но если видеокарта слабая, то можно использовать процессор. Для этого нужно установить несколько пакетов для работы OpenCL на процессоре. Вот так выглядят команды установки в Ubuntu:

sudo apt install libhwloc-dev ocl-icd-dev ocl-icd-opencl-dev
$ sudo apt install pocl-opencl-icd

Теперь мы можем выполнить тестирование производительности:

Утилита hashcat

Сначала давайте рассмотрим синтаксис и возможные опции утилиты, а потом уже перейдем к ее использованию. Это консольная утилита, поэтому придется использовать ее через терминал. Давайте сначала рассмотрим синтаксис:

$ hashcat опции файл_хэшей словари_и_настройки

Как видите, все довольно просто. Начнем с основных опций, которые настраивают как будет вести себя утилита:

  • -h - вывести доступные команды и опции;
  • -V - версия программы;
  • -m - тип хэша, который нужно перебрать, например, md5 или sha;
  • -a - вид атаки;
  • -b - запустить тестирование производительности;
  • --hex-salt - указать соль, которая использовалась при хэшировании;
  • --hex-charset - набор символов, для исходных данных;
  • --status - автоматически обновлять состояние подбора;
  • -o - файл для записи результата;
  • -p - символ, которым разделены хэши для перебора;
  • -c - размер кэша для словаря;
  • -n - количество потоков;
  • -l - ограничить количество слов для перебора;
  • -r - файл с правилами генерации вариантов;
  • -D - устройство для перебора, CPU или GPU;
  • --pw-min - минимальная длина варианта, символов;
  • --pw-max - максимальная длина варианта, символов;
  • --table-min - длина пароля для табличной атаки;
  • --table-max - максимальная длина пароля для табличной атаки;
  • --table-file - файл таблицы, для атаки по таблице.

Мы рассмотрели все основные опции, которые сегодня будем использовать. Многие из параметров, например, тип хэша и атаки, задаются в виде цифр. Я не буду рассматривать цифровые коды для типа хэша подробно. Вы можете найти эту информацию, выполнив man hashcat. Рассмотрим типы атак:

  • Straight - обычная атака, берет слова из словаря и проверяет их;
  • Combination - комбинирует слова из словаря в разные комбинации;
  • Toggle-Case - по очереди пробует разный регистр букв для каждого символа слова;
  • Brute-force - атака простым перебором на основе маски или символов;
  • Permutation - при этом типе атаки программа берет слова из словаря и меняет в них буквы местами для получения разных комбинаций;
  • Table-Lookup - Табличная атака, берется одно слово и словаря, а затем на его основе создаются варианты из таблицы. Каждый символ из таблицы будет заменен на набор прописанных вариантов;
  • Prince - новый вид атаки перебора, которая работает быстрее, обычной.

Кроме того, при переборе на основе брутфорса нам понадобится выбрать набор символов, которые будет использовать программа для генерации возможных вариантов. Вот возможные значения:

Теперь мы разобрали все необходимое и можно переходить к практике.

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

Как я уже сказал, утилита позволяет расшифровывать хэши, созданные с помощью различных алгоритмов с помощью перебора. Мы будем перебирать хэш md5 и рассмотрим два типа атаки - на основе словаря и полным перебором.

1. Перебор по словарю в Hashcat

Расшифровка md5 проще всего выполняется по словарю. Поскольку полный перебор занимает очень много времени, то перебрать наиболее часто употребляемые варианты может быть намного быстрее. Для перебора нам понадобится словарь, обычно используется rockyou. Словарь можно скачать командой:

Теперь нам еще осталось подготовить хэши, которые будем перебирать. Проще всего это сделать с помощью команды Linux md5sum:

echo -n "password" | md5sum

Например, создадим три хэша. Затем сложим их в файл

2ac9cb7dc02b3c0083eb70898e549b63
5f4dcc3b5aa765d61d8327deb882cf99
b59c67bf196a4758191e42f76670ceba

Теперь, когда все собрано, мы готовы к перебору. Команда перебора по словарю будет выглядеть вот так:

hashcat -m 0 -D 1 -a 0 -t 20

/rockyou.txt -o data.txt


Здесь -m 0 указывает на то, что нужно перебирать хэш md5, а -a 0 указывает на использование обычной атаки по словарю. С помощью опции -n мы задаем количество потоков. Опция -D 1 говорит программе, что нужно использовать процессор. Если вам нужна видеокарта hashcat, используйте -D 0.

Затем, мы указываем файл с хэшами, которые будем перебирать - hashes и словарь. Перебор может занять долгое время, но когда комбинация будет найдена, программа запишет ее в файл data.txt.

Что касается других алгоритмов, то для них нужно будет указать только другой номер типа хєша. Например, для SHA это будет 100. Чтобы узнать нужный номер вы можете использовать такую команду:

hashcat --help | grep SHA1


2. Расшифровка md5 полным перебором

Анализ по словарю выполняется достаточно быстро. На моем железе, такой небольшой словарь анализировался меньше минуты. Программа выдала скорость около 1300 kHash в секунду, а это очень много. Но в словаре есть далеко не все комбинации. Поэтому вы можете попытаться выполнить полный перебор нужной последовательности символов. Например:

hashcat -m 300 -a 3 -n 32 --custom-charset=?l?d

Здесь мы просто указали набор символов, буквы в нижнем регистре и цифры, а затем запустили перебор. Также можно указать ограничения на минимальное и максимальное количество символов:

hashcat -m 0 -a 3 --force -D 1 --potfile-disable --increment-min 5 --increment --increment-max 6 --custom-charset1=?l?d


Здесь мы говорим программе, что нужно начинать с размера слова 5 символов и завершить размером 6. Также можно использовать маски. Маска позволяет точно указать какой набор символов использовать, в какой последовательности и сколько. Указывать маску нужно на месте словаря. Например, маска слова из четырех цифр будет ?d?d?d?d, а маска из четырех любых цифр, букв разного регистра и специальных символов будет выглядеть ?a?a?a?a. Также можно комбинировать маску с известной частью: abc?a?a. Рассмотрим пример команды:

hashcat -m 0 -a 3 --force -D 1 --potfile-disable


Маска уменьшает в разы количество вариантов, тем самым увеличивая скорость. Таким образом, расшифровка хеша md5 длиной 4 символа была выполнена меньше чем за секунду. С помощью следующей команды вы можете проверить не перебирали ли вы раньше эти хэши:

hashcat -m 0 --show

Выводы

В этой статье мы рассмотрели как пользоваться Hashcat, с помощью которой может быть выполнена расшифровка md5 и других хэш-функций. Как видите, расшифровать хэш, можно достаточно быстро, зная параметры исходного пароля, поэтому не используйте простые пароли в своих системах и вообще не используйте md5 если вы разработчик. Надеюсь, эта инструкция hashcat была полезной для вас.

что такое hashcat

Hashcat доступен для Windows, Linux и OSX.

В этом руководстве мы будем использовать процессор Ryzen5 для взлома наших паролей.

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


Чтобы посмотреть доступные опции, введите следующую команду.


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

MD5-хэши

Password123 = 482c811da5d5b4bc6d497ffa98491e38
HELLO = eb61eead90e3b899c6bcbe27ac581660
SECRETPASSWORD = b6d5b7586fba0fd61304658d4ca5877c
Test12345 = 662af1cd1976f09a9f8cecc868ccc0a2
P455w0rd = 75b71aa6842e450f12aca00fdf54c51d
GuessMe = 031cbcccd3ba6bd4d1556330995b8d08
S3CuReP455Word = b5af0b804ff7238bce48adef1e0c213f

Намоню, что база паролей или wordlist хранится в Кали Линуксе здесь /usr/share/wordlists

Давайте взглянем на некоторые списки слов, которые включены в Kali Linux.

Откройте терминал и введите команду ниже.


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

Создайте новый каталог, в котором вы будете хранить ваш файл hashes.txt. Я создам новый каталог с именем Hashcat.

Теперь перейдите в только что созданный каталог hashcat.

Создайте файл hashes.txt с использвованием редактора nano

Скопируйте эти хеши в nano, ваш файл должен выглядеть как на скриншоте ниже.


Теперь, когда у нас есть список сохраненных хешированных паролей, мы можем использовать Hashcat для де-хеширования наших хешированных паролей в hashes.txt.

Как только Hashcat выполнит свою работу, мы увидим, что он смог восстановить 1/7 наших хэшей паролей, и посмотрим, какие хэши нашел Hashcat. Давайте воспользуемся командой cat, чтобы вывести список содержимого нашего файла взломанных паролей.

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 и взламывать пароли.

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

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