При етичното хакване и тестовете за проникване кракването на пароли е от решаващо значение за получаване на достъп до система или сървър.
В системите и базите данни паролите рядко се записват в обикновен текстов вид.
Паролите винаги се хешират, преди да бъдат съхранени в базата данни, и хешът се сравнява по време на процеса на проверка.
В зависимост от използваното криптиране различните системи съхраняват хешовете на паролите по различни начини. И ако имате хешове, можете лесно да разбиете всяка парола.
И в тази статия ще проучим как да разбием хешове на пароли с помощта на удобен и отличен инструмент за команден ред Hashcat.
Така че да започваме.
Но преди това…
Съдържание
Какво е хеш функция?
Хеширането е процесът на преобразуване на нормален въведен текст в низ от текст с фиксиран размер с помощта на някаква математическа функция, която е известна като Хеш функция. Всеки текст, независимо от дължината му, може да бъде превърнат в произволна комбинация от цели числа и букви с помощта на алгоритъм.
- Въведеното се отнася за съобщението, което ще бъде хеширано.
- Хеш функцията е алгоритъм за криптиране като MD5 и SHA-256, който преобразува низ в хеш стойност.
- И накрая, хеш стойността е резултатът.
Какво е Hashcat?
Hashcat е най-бързият инструмент за възстановяване на парола. Той е проектиран да разбива много сложни пароли за кратко време. И този инструмент е способен както на атаки със списък на думи, така и на груба сила.
Hashcat има два варианта. Базиран на CPU и GPU (графичен процесор). Инструментът, базиран на GPU, може да разбие хешовете за по-малко време от CPU. Можете да проверите изискванията на GPU драйвера на официалния им уебсайт.
Характеристика
- Безплатен и с отворен код
- Могат да бъдат реализирани повече от 200 варианта на хеш тип.
- Поддържа мулти-операционни системи като Linux, Windows и macOS.
- Налични са мултиплатформи като поддръжка на CPU и GPU.
- Множество хешове могат да бъдат кракнати едновременно.
- Поддържат се файлове с шестнадесетичен сол и шестнадесетичен код, заедно с автоматична настройка на производителността.
- Налична е вградена система за сравнителен анализ.
- Разпределените мрежи за кракване могат да се поддържат чрез наслагвания.
И можете да видите други функции също от техния уебсайт.
Инсталиране на Hashcat
Първо се уверете, че вашата Linux система е актуална с най-новите програми и инструменти.
За целта отворете терминал и въведете:
$ sudo apt update && sudo apt upgrade
Hashcat обикновено е предварително инсталиран в Kali Linux. Можете да намерите инструмента в секцията за разбиване на пароли. Но ако трябва да го инсталирате ръчно във всяка Linux дистрибуция, въведете следната команда в терминала.
$ sudo apt-get install hashcat
Използване на инструмента
За да започнем с Hashcat, ще ни трябват някои хешове на пароли. Ако нямате хеш за кракване, първо ще създадем няколко хеша.
За да създадете хешове с помощта на командния ред, просто следвайте формата по-долу.
echo -n "input" | algorithm | tr -d "-">>outputfiename
Например, можете да видите, че превърнах някои думи в хешове, използвайки алгоритъма md5 по-долу.
┌──(root💀kali)-[/home/writer/Desktop] └─# echo -n "pctechbg.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 wordlist. Можете лесно да намерите този списък с думи в пътя /usr/share/wordlists.
Можете дори да използвате командата locate, за да намерите този път към списъка с думи.
┌──(root💀kali)-[/home/writer] └─# locate rockyou.txt
И накрая, за да разбиете хешовете с помощта на файла със списък с думи, използвайте следната команда.
$ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt
След като изпълните тази команда, може да получите грешка по време на изпълнение (Грешка при изключение на дължината на токена), която може да бъде разрешена лесно.
За да разрешите това, запишете всеки хеш отделно в различен файл. Тази грешка възниква, ако имате ниска скорост на CPU или GPU. Ако вашият компютър има високоскоростен процесор, можете лесно да разбиете всички хешове едновременно като един файл.
Така че след отстраняване на грешката и всичко останало, резултатът ще бъде такъв.
┌──(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 за разбиване на пароли.
Може също да ви е интересно да научите за различните груби инструменти за тестване за проникване и някои от най-добрите инструменти за пентест.