Розшифровка хешів паролів за допомогою Hashcat: Повний посібник
В етичному хакінгу та тестах на проникнення, розшифровка паролів є критично важливою для отримання доступу до систем і серверів.
У більшості випадків, паролі не зберігаються у базах даних у вигляді відкритого тексту.
Зазвичай, перед збереженням у базі даних, паролі проходять процес хешування. Під час перевірки автентичності, відбувається порівняння хешів.
Різні системи можуть використовувати різні методи шифрування, що впливає на спосіб зберігання хешів. Маючи доступ до хешів, теоретично можливо розшифрувати будь-який пароль.
У цій статті ми дослідимо процес злому хешів паролів, використовуючи потужний інструмент командного рядка – Hashcat.
Отже, почнемо.
Але спершу…
Що таке хеш-функція?
Хешування – це процес перетворення вхідних даних (наприклад, тексту) у рядок фіксованого розміру за допомогою математичної функції, яка називається хеш-функцією. Алгоритм хешування здатний перетворити будь-який текст, незалежно від його довжини, у випадкову комбінацію чисел і літер.
- Вхідні дані – це початковий текст, який підлягає хешуванню.
- Хеш-функція – це алгоритм шифрування, наприклад MD5 або SHA-256, який перетворює вхідні дані на хеш-значення.
- Результатом є хеш-значення.
Що таке Hashcat?
Hashcat – це один з найшвидших інструментів для відновлення паролів. Його головною метою є злом складних паролів за мінімальний час. Він також підтримує атаки за словником та brute-force атаки.
Hashcat має дві версії: на базі процесора (CPU) та на базі графічного процесора (GPU). Версія, що використовує GPU, здатна розшифрувати хеші значно швидше, ніж версія з CPU. Інформацію про вимоги до драйверів GPU можна знайти на офіційному вебсайті інструменту.
Особливості
- Безкоштовний та з відкритим кодом.
- Підтримує понад 200 типів алгоритмів хешування.
- Працює на різних операційних системах, включаючи Linux, Windows та macOS.
- Підтримує як CPU, так і GPU для обробки.
- Дозволяє одночасний злом декількох хешів.
- Підтримує hex-salt та hex-charset файли, а також автоматичне налаштування продуктивності.
- Має вбудовану систему бенчмаркінгу.
- Може використовувати розподілені обчислення через накладення мережі.
Додаткову інформацію про можливості інструмента можна знайти на його офіційному сайті.
Встановлення Hashcat
Перш за все, переконайтеся, що ваша система Linux має останні оновлення програм і інструментів.
Для цього відкрийте термінал та виконайте:
sudo apt update && sudo apt upgrade
Hashcat зазвичай вже встановлений в Kali Linux. Його можна знайти у розділі інструментів для злому паролів. Однак, якщо ви бажаєте встановити його вручну в іншому дистрибутиві Linux, скористайтеся наступною командою:
sudo apt-get install hashcat
Використання інструменту
Для початку роботи з Hashcat потрібні хеші паролів. Якщо ви не маєте готових хешів, ми спочатку створимо їх.
Для створення хешів через командний рядок, скористайтеся наступним форматом:
echo -n "вхідний_текст" | алгоритм_хешування | tr -d "-">>ім'я_файлу_виводу
Нижче наведено приклад створення хешів з використанням алгоритму md5:
┌──(root💀kali)-[/home/writer/Desktop] └─# echo -n "techukraine.net" | md5sum | tr -d "-">>crackhash.txt echo -n "password123" | md5sum | tr -d "-">>crackhash.txt echo -n "Webtechnology" | md5sum | tr -d "-">>crackhash.txt echo -n "microsoftteams" | md5sum | tr -d "-">>crackhash.txt echo -n "recyclebin" | md5sum | tr -d "-">>crackhash.txt
Результат буде збережено у файлі “crackhash.txt”.
Перевіримо збережені хеші у файлі:
┌──(root💀kali)-[/home/writer/Desktop] └─# cat crackhash.txt 066d45208667198296e0688629e28b14 482c811da5d5b4bcd497ffeaa98491e3 72a2bc267579aae943326d17e14a8048 2192d208d304b75bcd00b29bc8de5024 caae8dd682acb088ed63e2d492fe1e13
Тепер ми маємо набір хешів для розшифровки. Це загальний спосіб створення хешів з використанням бажаного алгоритму.
Наступний крок – запуск Hashcat на вашій Linux машині. Скористайтеся командою нижче, щоб переглянути основні параметри Hashcat:
hashcat --help
У терміналі з’явиться повний список параметрів, необхідних для роботи з інструментом, включаючи режими атаки та типи хешування.
Загальний формат команди виглядає так:
hashcat -a num -m num hashfile wordlistfile
Тут “num” вказує на конкретний режим атаки та алгоритм хешування. У терміналі можна знайти відповідні числові значення для кожного режиму та алгоритму, наприклад, md4 має номер 0, а sha256 – 1740.
Для злому хешів за словником будемо використовувати файл “rockyou.txt”, який зазвичай знаходиться у директорії “/usr/share/wordlists”.
Ви також можете скористатися командою “locate”, щоб знайти шлях до цього файлу:
┌──(root💀kali)-[/home/writer] └─# locate rockyou.txt
Для запуску процесу розшифровки хешів скористайтеся командою:
hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt
Виконання цієї команди може призвести до помилки виконання (помилка винятку довжини маркера). Для її вирішення потрібно зберігати кожен хеш в окремому файлі. Ця помилка зазвичай виникає через низьку швидкість процесора або графічного процесора. На комп’ютерах з потужними процесорами, можна розшифровувати всі хеші з одного файлу одночасно.
Отже, після виправлення цієї помилки, результат матиме такий вигляд:
┌──(root💀kali)-[/home/writer/Desktop] └─# hashcat -a 0 -m 0 hashcrack.txt rockyou.txt hashcat (v6.1.1) starting... OpenCL API (OpenCL 1.2 pocl 1.6, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project] ============================================================================================================================= * Device #1: pthread-Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz, 2403/2467 MB (1024 MB allocatable), 4MCU Minimum password length supported by kernel: 0 Maximum password length supported by kernel: 256 Hashes: 1 digests; 1 unique digests, 1 unique salts Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates Rules: 1 Dictionary cache built: * Filename..: rockyou.txt * Passwords.: 14344405 * Bytes.....: 139921671 * Keyspace..: 14344398 * Runtime...: 1 sec 8276b0e763d7c9044d255e025fe0c212: [email protected] Session..........: hashcat Status...........: Cracked Hash.Name........: MD5 Hash.Target......: 8276b0e763d7c9044d255e025fe0c212 Time.Started.....: Sun Dec 12 08:06:15 2021 (0 secs) Time.Estimated...: Sun Dec 12 08:06:15 2021 (0 secs) Guess.Base.......: File (rockyou.txt) Guess.Queue......: 1/1 (100.00%) Speed.#1.........: 1059.6 kH/s (0.52ms) @ Accel:1024 Loops:1 Thr:1 Vec:8 Recovered........: 1/1 (100.00%) Digests Progress.........: 4096/14344398 (0.03%) Rejected.........: 0/4096 (0.00%) Restore.Point....: 0/14344398 (0.00%) Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1 Candidates.#1....: 123456 -> pampam Started: Sun Dec 12 08:06:13 2021 Stopped: Sun Dec 12 08:06:16 2021
З цього результату видно, що після обробки словника хеш було успішно розшифровано, і пароль знайдено.
Висновок
Сподіваємось, що ця стаття допомогла вам краще зрозуміти, як використовувати Hashcat для розшифровки паролів.
Ви також можете зацікавитися інформацією про різні інструменти brute-force для тестів на проникнення та інші корисні інструменти пентестування.