Last Updated :
25 Jan, 2021
Hashcat is famous as the fastest password cracker and password recovery utility. Hashcat is designed to break or crack even the most complex passwords in a very less amount of time.
Features of hashcat:
- The 90+ Algorithm can be implemented with performance and optimization in mind.
- The number of threads can be configured.
- Hashcat is a multi-algorithm based ( MD5, MD4, MySQL, SHA1, NTLM, DCC, etc.).
- All attacks can be extended by specialized rules.
- It is multi-hash and multi-OS based (Windows and Linux).
- It supports both hex-charset and hex-salt files.
Installation: Usually Hashcat tool comes pre-installed with Kali Linux but if we need to install it write down the given command in the terminal.
sudo apt-get install hashcat
Now, you can find the hashcat Tool in Password Cracking Tools :
We are going to perform Dictionary Attack to crack Password in this article.
1. Creating Hash Entries
These entries will then be outputted to a file called “Dictionary_hashes”.
- -n: This option removes the new line added to the end of entries as we don’t want the newline characters to be hashed with our entries.
- tr -d: This option removes any characters that are a space or hyphen from the output.
2. Checking the stored Hashes
We can check the stored hashes with the help of the below command :
cat Dictionary_hashes.txt
Some password hashes that can be cracked with hashcat can be seen below :
3. Choose the wordlists
We are going to use the “rockyou” wordlist.
4. Cracking the Hashes
Now we can crack the hashes that we stored in Dictionary_hashes.txt and we will store the result in the Done.txt file.
5. Results
Now we can see the results stored in the Done.txt file by the below command:
cat Done.txt
Hashcat is an important tool to have in your toolbelt (at least on your computer ^^). I’ve already written several tutorials on how to use Hashcat, but today we’ll focus on the installation and first steps, especially on Kali Linux, which is often used for it.
On Kali Linux, Hashcat comes pre-installed with most versions, so you can use it right out of the box. If it’s not available on your system, it’s in the standard repository and can be installed using APT (the package manager).
If you are used to Linux, you know that it’s rarely that simple, so let’s take a look at each step to install hashcat on your computer.
Master Linux Commands
Your essential Linux handbook
Want to level up your Linux skills? Here is the perfect solution to become efficient on Linux. 20% off today!
Download now
How to install Hashcat on Kali Linux (main repository)
Here are a few prerequisites and checks you can do to see if Hashcat is installed, and install it if needed:
- Keep your system up-to-date before anything else.
- List the installed packages and look for hashcat.
- Run a benchmark to make sure it’s working.
Let’s do this in this order.
Update your system
New updates are released on a daily basis. To avoid conflicts and make sure you’re installing the latest versions, it’s always a good idea to update your system first.
The easiest way to do this is simply to open a terminal and type the following commands:sudo apt update
sudo apt upgrade
Press “Y” to confirm the upgrade of all the listed packages, and wait a few minutes to get them downloaded and installed on your computer.
If, like in my screenshot, you have a lot of new packages to upgrade, it’s probably a good idea to reboot your system before proceeding.sudo reboot
Install Hashcat package
As mentioned earlier, in most cases, Hashcat is already installed on Kali Linux if you use a recent version with all the default applications.
Once your system up-to-date, you can use APT to do a search, and see if it’s installed:apt search hashcat
In my case, the version available in the repository is the same as on the website directly. So, there is no need to install it manually at this point. At least, you should give it a try, and switch to the manual procedure I give later if you experience any issue doing this.
Anyway, if you don’t have the mention “installed” near the package name in the previous command, you can install the main package with:sudo apt install hashcat
This should install all the dependencies (something like 60 other packages on a fresh Linux system).
Type your user password and press “Y” to confirm the installation.
Note: If you have an NVIDIA GPU on your computer, you should also install the corresponding package for better performances:sudo apt install hashcat-nvidia
Use Hashcat on Kali Linux
Whether you installed it or it was already there, Hashcat is now available on your system.
You can use the command directly in a terminal:hashcat
You can, for example, run a benchmark to make sure everything is working properly:hashcat -b
I’m testing this on a virtual machine for you, which is not optimized at all, but you get the idea.
If you get an error during this test, you probably need to install additional drivers for your GPU, or just use the CPU, which should work natively (but is generally slower).
As stated on the hashcat website, each GPU requires different prerequisites:
- AMD GPUs on Linux require “AMDGPU” (21.50 or later) and “ROCm” (5.0 or later)
- AMD GPUs on Windows require “AMD Adrenalin Edition” (Adrenalin 22.5.1 exactly)
- Intel CPUs require “OpenCL Runtime for Intel Core and Intel Xeon Processors” (16.1.1 or later)
- NVIDIA GPUs require “NVIDIA Driver” (440.64 or later) and “CUDA Toolkit” (9.0 or later)
Source: Hashcat
On Linux, it can be difficult to get them, as the vendors often do not support all Linux distributions. But you don’t necessarily need the latest version, so try to get them if possible.
Hide your IP address and location with a free VPN:
Try it for free now, with advanced security features.
2900+ servers in 65 countries. It’s free. Forever.
From there, I recommend reading this article to learn how to use hashcat. I explain the different attack modes, and take an example with some MD5 hashes. But the idea is the same with any algorithm once you understand the basics.
Install Hashcat on Kali Linux (with the binaries files)
If for any reason you prefer to install Hashcat manually on Kali Linux, here is the procedure you can follow instead of using APT:
At this point, you’ll likely get an error, as some CPU or GPU runtime will be missing:
The previous installation method with APT will do this for you, but in this case you have to install the missing requirements manually.
In my example, the easiest way to fix this was to use apt to install these two missing packages:sudo apt install ocl-icd-libopencl1 pocl-opencl-icd
But the solution will be different if you have an NVIDIA or AMD GPU.
Check this page for more details for each scenario.
Anyway, I hope this tutorial was useful, and helped you to get started with Hashcat on Kali Linux.
You should now be ready to do cool things with this tool, check out my other tutorials for more details:
- Is MD5 Easy to Crack? (and how long does it really takes)
- How to Brute Force a Password? (MD5 Hash)
- How to Install and Use Hashcat to Decrypt MD5? (Tutorial)
Hi, my name is Patrick, I’m a web developer and network administrator. I have always been interested in security, and I created this website to share my findings with you.
- Author
- Recent Posts
I started writing code around 20 years ago, and throughout the years, I have gained a lot of expertise from hands-on experience as well as learning from others. This website has also grown with me and is now something that I am proud of.
Navigating the cybersecurity world requires a robust toolkit, and Hashcat in Kali Linux is like having a Swiss Army knife for password cracking. As penetration testers and ethical hackers, we need to adapt quickly and efficiently to ever-evolving security challenges. Hashcat offers a powerful solution by supporting multiple attack modes and a wide range of hash algorithms, making it indispensable to anyone serious about exploring the nuances of cybersecurity.
Our journey with Hashcat starts with understanding its versatility. It effortlessly operates across different platforms like Linux and Windows, serving both beginners and experts. For those diving into ethical hacking or enhancing their security research skills, the Hashcat website is a treasure trove of resources. Installing Hashcat in Kali Linux is a breeze; it often comes pre-installed, or can easily be added with a simple terminal command. This ease of access is vital for professionals who need to act fast and focus on the task at hand—ensuring strong passwords and protecting systems from potential attackers.
Beyond just cracking passwords, Hashcat stands out for its ability to integrate seamlessly into various cybersecurity workflows. Whether it’s for a penetration tester conducting audits or an ethical hacker working with a team, the real magic lies in Hashcat’s adaptability. It’s not just a tool; it’s an essential companion for anyone who takes the craft of cybersecurity seriously. So, let’s gear up, dive in, and explore how Hashcat can elevate our security practices.
JUMP TO TOPIC
- Understanding Hashcat
- Installing Hashcat On Kali Linux
- Basic Commands
- Starting Hashcat
- Hash Modes
- Advanced Usage
- Using Rules
- Mask Attacks
- Optimizing Performance
- Common Issues And Solutions
Understanding Hashcat
Hashcat is like the Swiss army knife of password cracking. It’s an efficient password cracking tool renowned for its speed and versatility in handling different hashing algorithms.
Start with this idea: a hash function takes a plaintext password and transforms it into a fixed-size string of characters, which is known as a hash. Encryption is not the goal here—it’s about securing passwords. The hash is a one-way street; once converted, it shouldn’t be reversed easily.
Think of hashcat as our digital detective. It uses mathematical functions to uncover what we couldn’t see before. With the right input, like the infamous RockYou list, hashcat maps our input to the hidden world of hashed passwords. These aren’t just random guesses; they follow logical pathways.
There are multiple algorithms hashcat can crack: MD5, NTLM, and SHA1 to name a few. Each comes with its own quirks, and hashcat loves them all.
When cracking passwords, imagine hashcat building a gigantic crossword puzzle. Each letter represents a potential character in the plaintext password.
We could use rainbow tables to speed up the search. These precomputed tables of hash values save us hours, like knowing all the answers before the crossword even begins.
The best part? Hashcat automates this magic, so we don’t need to. Fancy rules, hex-charset, and hex-salt files are its tools, bringing us closer to that eureka moment.
By leveraging our understanding of algorithms and hash behavior, we take a step closer to crypto-analysis mastery. Hashcat gives us the power to see behind the curtain, revealing the true potential of what hashing can achieve.
Installing Hashcat On Kali Linux
Setting up Hashcat on Kali Linux is like a walk in the park, thanks to its usual pre-installation. But first, let’s ensure everything’s up to date, just like refreshing your morning coffee supply. Simply fire up the terminal and sashay your fingers over the keyboard to update the system with:
sudo apt update && sudo apt full-upgrade -y
Sometimes, Hashcat can feel like an elusive mystery when not pre-installed. In this case, no need to panic, just follow these steps. Using apt
, we can straightaway install Hashcat by typing:
sudo apt install hashcat
After executing, keep an eagle eye on the screen, making sure to approve any prompts by typing “Y”‽ It’s as easy as adding sugar to tea.
Now, imagine if our machine was suggesting a bit of a makeover with multiple package installations—could be around 60! But hey, don’t let it bug you—those are just dependencies ensuring Hashcat runs like a well-oiled machine.
Note: Want more oomph in performance? Consider installing packages specific to NVIDIA GPUs, if you’re rolling with one!
We’re almost at the finish line here. With everything set, Hashcat is ready to crack passwords like a pro. Give yourself a pat on the back, and know we’re equipped to tackle whatever comes next!
Basic Commands
Hashcat is a powerful tool for password recovery, allowing us to attempt cracking hashes using various modes. In this section, we’ll cover the essentials for getting started with Hashcat and understanding different hash modes.
Starting Hashcat
To kick things off with Hashcat, we first need to open our terminal in Kali Linux. Entering the command hashcat
will display a list of available options and parameters. It’s like walking into a toolbox full of gadgets, each with a specific purpose.
Let’s say we want to crack an MD5 hashed password. We would use a command like this: hashcat -m 0 -a 0 hash.txt wordlist.txt
. Here, -m 0
specifies the hash type as MD5, and -a 0
defines the attack mode as a dictionary attack.
This is a sample bold text.
For a bit of fun, try running hashcat --help
to explore all the mysteries it holds. Remember, we need to have the correct permissions, so running as a superuser might be necessary.
Hash Modes
Hashcat supports a plethora of hashing algorithms. Each one needs to be specified by its hash mode code. Imagine a library where every book is a different kind of hash—MD5, SHA1, NTLM, and more. For instance, -m 100
targets SHA1, while -m 1000
goes for NTLM.
Here’s a little table to keep track of:
Hash Type | Mode | Description |
MD5 | 0 | Standard MD5 hashes |
SHA1 | 100 | Common SHA1 hashes |
NTLM | 1000 | Windows NT LAN Manager |
Choosing the right hash mode is crucial; otherwise, it’s like trying to fit a round peg in a square hole. It’s essential to verify the hash type and apply the right mode to succeed in cracking those encrypted treasures.
Advanced Usage
In the realm of advanced Hashcat techniques, the use of rules and the implementation of mask attacks stand out. Both allow for greater finesse and efficiency when cracking password hashes, offering tailored approaches to tackle varied complexities in password security.
Using Rules
Rules are akin to magic spells in password cracking. They allow us to craft attacks that are both flexible and potent. In Hashcat, rules modify how wordlists, like rockyou.txt
, are applied by creating permutations of entries on-the-fly. These rules can transform password1
into Password1
, PASSWORD1
, etc., through a mechanism called rule-based attack.
We often deploy rules stored in /usr/share/hashcat/rules
to manipulate wordlists during a dictionary attack. They are highly customizable, with rules crafted to handle everything from simple capitalization tweaks to complex permutation attacks. When applied correctly, these rules drastically speed up the brute-force process by eliminating unnecessary trials. Adopting rule-based attacks means we can outsmart simple protections found in many security systems, ensuring we find those elusive password hashes.
Mask Attacks
Imagine mask attacks as a detective’s blueprint, pinpointing probable password patterns. When passwords follow a specific format, using a mask provides the advantage. It’s like a brute-force attack, but smarter. We don’t guess haphazardly; we specify a structure such as four numbers, followed by four letters. This reduces the search space significantly, boosting efficiency.
Hashcat allows us to set masks that define character types and positions, such as ?d?d?d?d?l?l?l?l
for four digits followed by four letters. Masks can target hex-charset or hex-salt formats, accommodating a wide range of scenarios. By using tailored masks, we narrow our focus and crack only the relevant password segment, turning the password hunt into a quick rescue mission.
Optimizing Performance
When it comes to using Hashcat in Kali Linux, performance is the name of the game. The faster we can crack passwords, the better. Let’s focus on a few tricks to boost that cracking speed.
First, GPU acceleration is your best friend. Using a powerful NVIDIA GPU can dramatically increase the number of password hashes you can process per second. Make sure the latest CUDA or OpenCL drivers are installed to fully leverage this power.
We can also adjust the number of threads used by our CPUs. Typically, more threads equal faster processing, but it’s crucial to balance this with our GPU’s workload. Running a benchmark test helps find the sweet spot.
Driver | Utility | Purpose |
OpenCL | POCL-OpenCL-ICD | Enables GPU acceleration |
CUDA | NVIDIA | Optimizes GPU usage |
Using shorter password length options might improve speed, as fewer combinations need to be tested. However, this requires a trade-off with security.
Always ensure Hashcat is up-to-date. New releases often come with performance enhancements that could squeeze a bit more speed from your setup.
Common Issues And Solutions
Ah, the thrill of cracking passwords with Hashcat on Kali Linux. It’s like unwrapping a mystery, one hash at a time. Yet, sometimes the road to decryption isn’t as smooth as we’d like. Let’s tackle some of those bumps together.
1. Updating and Upgrading Hashcat
A common issue we face is software version mismatch. Ensure Hashcat is up-to-date with sudo apt update && sudo apt full-upgrade -y
. It’s like giving your tools a tune-up before a big race! 🛠️
2. Error: CLI Usage
When command-line arguments trip us up, it’s usually a syntax issue. Double-check the hash mode and file paths. Don’t worry, it happens to the best of us!
3. Failed to Extract Hashes
Ever try to extract hashes and find nothing? Confirm the file format is correct. If needed, try alternative extraction tools to see if the hashes are playing hide and seek.
4. Speed Test Concerns
Sometimes our password tests are slow as molasses. Running a benchmark (hashcat -b
) checks which hashcat mode works best for our hardware. It’s like test-driving a car before buying. 🚗
5. Multi-Factor Authentication Challenges
Hashcat won’t bypass MFA (and that’s a good thing). We recommend focusing on strengthening password policies instead. It’s like locking the vault door and keeping the key out of easy reach.
6. Adhering to Password Policies
Remember, practice ethical hacking. Respect password policies, and ensure permissions are in place. It’s the golden rule for us tech detectives! 💡
Introduction:
In the realm of cybersecurity, password cracking plays a crucial role in penetration testing and security audits. One of the most powerful tools for this purpose is Hashcat. Known for its speed and versatility, Hashcat is a favorite among ethical hackers and security professionals. This blog delves into the intricacies of Hashcat, including its installation, key commands, real-world applications, and essential cyber cautions.
What is Hashcat?
Hashcat is a highly efficient password recovery tool that supports a wide range of hashing algorithms. Its ability to utilize the power of modern GPUs makes it exceptionally fast. Hashcat is designed to crack hashed passwords using a variety of attack methods, such as brute-force, dictionary, hybrid, and rule-based attacks. Its versatility and speed make it a critical tool in a security professional’s toolkit.
Installation
Installing Hashcat on Kali Linux
Kali Linux, a go-to operating system for penetration testers, comes pre-installed with Hashcat. However, ensuring you have the latest version is crucial for optimal performance and access to new features. Here’s how you can install or update Hashcat on Kali Linux:
- Update Package List:
- Install Hashcat:
- Verify Installation:
This command will display the version of Hashcat installed on your system, confirming a successful installation.
Key Commands and Usage
Understanding the basic and advanced commands in Hashcat is essential for effective password cracking. Below are some important commands and options:
Basic Commands
- Listing Supported Hashes:
This command lists all supported hash types. Each hash type is associated with a specific number, which is used in cracking commands.
- Basic Dictionary Attack:
hashcat -a 0 -m 0 hash.txt wordlist.txt
- -a 0: Specifies the attack mode (0 for dictionary attack).
- -m 0: Specifies the hash type (0 for MD5 in this case).
- hash.txt: File containing the hashed passwords.
- wordlist.txt: File containing potential passwords.
- Brute-force Attack:
hashcat -a 3 -m 0 hash.txt ?a?a?a?a
- -a 3: Specifies the attack mode (3 for brute-force).
- ?a?a?a?a: Represents the character set and length (four characters in this case).
Advanced Commands
- Using Rules:
hashcat -a 0 -m 0 hash.txt wordlist.txt -r rules/best64.rule
Rules allow you to modify words in your dictionary, increasing the chances of cracking the hash.
- Hybrid Attack:
hashcat -a 6 -m 0 hash.txt wordlist.txt ?d?d
- -a 6: Specifies a hybrid attack (dictionary + mask).
- ?d?d: Appends two digits to each word in the dictionary.
- Using GPU:
This command forces Hashcat to use the GPU for password cracking, significantly speeding up the process.
Example Scenario
Consider a scenario where you have obtained a list of hashed passwords and you want to crack them using a dictionary attack with additional rules to modify the dictionary words.
-
Prepare your hash file (hash.txt) and dictionary file (wordlist.txt).
-
Run the following command:
hashcat -a 0 -m 0 hash.txt wordlist.txt -r rules/best64.rule
In this example, Hashcat will use the best64.rule file to apply transformations to the words in the dictionary, enhancing the chances of finding the correct password.
Real-World Examples
- Penetration Testing
During penetration testing, security professionals use Hashcat to evaluate the strength of password policies by attempting to crack hashed passwords extracted from various systems. This process helps in identifying weak passwords and providing recommendations for stronger password policies.
- Digital Forensics
In digital forensics, investigators often encounter hashed passwords that need to be cracked to access encrypted data. Hashcat’s efficiency makes it an invaluable tool for quickly gaining access to crucial information during investigations.
- Network Security Audits
Security audits involve assessing the security posture of an organization’s network. Hashcat helps auditors test the resilience of password protection mechanisms, ensuring that proper hashing algorithms and strong passwords are in place.
Cyber Cautions
While Hashcat is a powerful tool, it must be used responsibly and ethically. Here are some critical cautions to consider:
- Legal Implications
Unauthorized access to systems and cracking passwords without permission is illegal and unethical. Always ensure you have explicit permission before using Hashcat for penetration testing or security audits.
- Responsible Disclosure
If you discover weak passwords or vulnerabilities, follow responsible disclosure practices. Inform the affected parties and provide recommendations for improvement.
- Security of Cracked Data
Treat any cracked passwords or sensitive data with utmost confidentiality. Securely store and handle this information to prevent unauthorized access.
- Resource Usage
Hashcat can be resource-intensive, especially when using GPU acceleration. Monitor your system’s performance and avoid overloading it, which could lead to hardware damage or system instability.
Recent and Major Attacks on Hashes
In the ever-evolving landscape of cybersecurity, hashing algorithms play a pivotal role in securing data by converting it into fixed-length strings of characters, which are typically irreversible. However, recent years have seen several significant attacks on these hashing algorithms, highlighting vulnerabilities and prompting advancements in cryptographic methods. This blog post delves into some of the major attacks on hashing, shedding light on their methodologies, impacts, and the ongoing efforts to mitigate these threats.
- Collision Attacks on MD5 and SHA-1
- MD5 Collision Attacks
MD5, once widely used for ensuring data integrity, has long been known to be vulnerable to collision attacks. In 2004, researchers demonstrated that MD5 collisions could be generated in under a minute. This attack undermined the integrity of digital signatures and certificates, leading to the depreciation of MD5 in security protocols.
- Recent SHA-1 Collision Attack: SHAttered
In 2017, Google and CWI Amsterdam announced the SHAttered attack, a practical collision attack against SHA-1. This attack proved that two different PDF files could produce the same SHA-1 hash, compromising the integrity of systems relying on this algorithm. The SHAttered attack highlighted the urgent need to migrate to more secure hashing algorithms like SHA-256.
- Birthday Attacks
The birthday attack leverages the birthday paradox to find collisions in hash functions more efficiently than brute force. This method has been used effectively against weaker hash functions, further emphasizing the need for stronger, collision-resistant algorithms.
- Length Extension Attacks
Length extension attacks exploit the structure of certain hash functions, particularly those based on the Merkle-Damgård construction like MD5 and SHA-1. Attackers can use the hash of an original message to compute the hash of a longer message that includes the original. This vulnerability has been mitigated in newer hashing algorithms like SHA-3, which do not use the Merkle-Damgård construction.
- Cryptanalytic Advances
- Advances in Cryptanalysis of SHA-256
Despite SHA-256 being considered secure, recent cryptanalytic advances have shown theoretical weaknesses. In 2020, researchers found new techniques that reduce the complexity of finding collisions in SHA-256. While these methods are still far from practical attacks, they indicate potential vulnerabilities that could be exploited in the future.
- Attacks on SHA-3
SHA-3, designed as a successor to SHA-2, is based on the Keccak algorithm. Although SHA-3 is currently considered secure, continuous cryptanalysis efforts aim to identify any potential weaknesses. Researchers are focusing on side-channel attacks and fault attacks to explore vulnerabilities in SHA-3 implementations.
- Real-World Incidents
- LinkedIn Data Breach (2012)
In 2012, LinkedIn suffered a major data breach where 6.5 million hashed passwords (using unsalted SHA-1) were leaked. Attackers easily cracked many of these hashes using brute force and rainbow table attacks, highlighting the inadequacy of unsalted hashes for password storage.
-Equifax Data Breach (2017)
The Equifax breach exposed personal information of 147 million people. Although the exact methods used to breach the data are unclear, it underscored the importance of using strong hashing algorithms and proper cryptographic practices to protect sensitive information.
- Mitigation and Future Directions
- Transition to Stronger Hash Functions
Organizations are urged to migrate from outdated hashing algorithms like MD5 and SHA-1 to stronger ones like SHA-256 and SHA-3. Implementing hashing algorithms that resist known attack vectors is crucial for maintaining data integrity.
- Salting and Peppering
Adding salt (random data) to passwords before hashing them significantly increases security by ensuring that identical passwords result in different hashes. Peppering involves adding a secret value to the hash function, further complicating potential attacks.
- Post-Quantum Cryptography
With the advent of quantum computing, traditional cryptographic algorithms could become vulnerable. Research is underway to develop quantum-resistant hashing algorithms to secure data in a post-quantum world.
Conclusion
Hashcat is an indispensable tool for cybersecurity professionals, offering unparalleled speed and versatility in password cracking. From installation to advanced usage, this guide provides a comprehensive overview of Hashcat in Kali Linux. Remember, with great power comes great responsibility. Use Hashcat ethically, legally, and responsibly to enhance security and protect sensitive information.
Harness the power of Hashcat, but always prioritize ethical considerations and responsible usage. Happy cracking!
Disclaimer:
This blog post is intended for educational purposes only. The author and publisher do not endorse or condone any unauthorized or illegal activities conducted using Hashcat or any other hacking tools. Always ensure that you have proper authorization before conducting security assessments or penetration tests.
В последнее время стали задавать довольно много вопросов по использованию Hashcat. Многие из этих вопросов являются элементарными и даже уже рассмотрены в русскоязычной документации. Тем не менее, из-за большого объёма документации новичкам не всегда просто в ней сориентироваться и найти ответ на свой вопрос.
В данной инструкции я выделил самые базовые шаги по использованию Hashcat и детально расписал основные режимы работы программы. Эта инструкция рассчитана на абсолютных новичков. Надеюсь, она уменьшит количество «детских» вопросов.
Как запустить и использовать hashcat (инструкция для взлома паролей)
Hashcat – это программа для взлома паролей, это мощный комбайн с большим количеством возможностей.
Тем не менее, это не самая простая в использовании программа – необходимо потратить время на её изучение. В данной инструкции раскрыты самые типичные ситуации работы с hashcat.
Будут рассмотрены как совсем «детские» вопросы, вроде того, «как запустить hashcat», так и довольно сложные, вроде правильного составления масок, пользовательских наборов символов, опции программы, решение проблем и прочее.
Особенностью hashcat является очень высокая скорость перебора паролей, которая достигается благодаря одновременному использованию всех видео карт, а также процессоров в системе. Возможна работа если установлено несколько видеокарт или карты разных производителей (например, AMD и NVIDIA).
Когда я кликаю на hashcat64.exe мелькает чёрное окно, а затем исчезает
Hashcat – это утилита командной строки. Т.е. у неё нет графического интерфейса в виде привычного окна. Поэтому пользователям Windows может показаться, что программа запускается необычным образом.
Для запуска программы необходимо открыть окно командной строки (либо PowerShell). Чтобы это сделать нажмите сочетание клавиш Win+x, и выберите Windows PowerShell:
Далее можно действовать двумя способами.
Первый вариант: можно просто перетащить исполнимый файл в окно командной строки. Исполнимым файлом является hashcat64.exe или hashcat32.exe в зависимости от вашей системы.
Второй вариант: в командной строке можно сменить текущую рабочую директорию на ту, где размещены исполнимые файлы hashcat. К примеру, у меня программа расположена в папке C:\Users\Alex\Downloads\hashcat-4.1.0\, чтобы сменить текущую рабочую папку используется команда cd, после которой указывается папка, в которую требуется перейти, в моём случае команда выглядет так:
cd C:\Users\Alex\Downloads\hashcat-4.1.0\
Как можно увидеть из скриншота, папка C:\WINDOWS\system32 изменена на C:\Users\Alex\Downloads\hashcat-4.1.0.
Теперь для запуска программы достаточно набрать имя исполнимого файла с указанием на текущую папку. Текущая папка обозначается точкой (.), затем необходимо поставить обратный слеш, получается так:
.\hashcat64.exe
Поскольку мы не ввели никаких опций, то ничего не происходит, только выводится краткая подсказка.
На протяжении всей инструкции мы будем запускать исполнимый файл hashcat с опциями. Простейшей опцией является -h, если написать её, то будет выведена справка по использованию программы:
.\hashcat64.exe -h
Скачать hashcat
Скачайте hashcat с официального сайта по ссылке: https://hashcat.net/hashcat/
Вы увидите:
На сайте присутствует hashcat binaries и hashcat sources. Первое – это бинарные (исполнимые) файлы, второе – это исходный код. Нам нужны бинарники, т.е. hashcat binaries.
Как установить hashcat
Как таковая установка hashcat не требуется, поскольку это портативная программа. Достаточно распаковать скаченный архив. Если у вас проблемы с распаковкой формата .7z, то используйте программу 7-Zip (архиватор с высокой степенью сжатия).
Для работы hashcat необходимо, чтобы были установлены свежие версии драйверов видеокарт.
Драйверы для hashcat
Примечание: Если у вас Linux, то инструкцию по установке OpenCL смотрите в статье «Как в Linux взламывать пароли видеокартой и центральным процессором».
Необходимы следующие драйвера для видеокарт:
- Видеокарты AMD на Windows требуют «AMD Radeon Adrenalin 2020 Edition» (20.2.2 или более поздняя версия)
- Intel CPUs требует «OpenCL Runtime for Intel Core and Intel Xeon Processors» (16.1.1 или более поздняя версия)
- Видеокарты NVIDIA требуют «NVIDIA Driver» (440.64 или более поздняя) и «CUDA Toolkit» (9.0 или более поздняя)
Скорее всего, драйверы для видеокарт AMD и NVIDIA в Windows у вас уже установлены, либо вы знаете как это сделать.
Поэтому я расскажу только об установке OpenCL Runtime и драйвера OpenCL.
OpenCL Runtime поставляется вместе с драйвером Windows, поэтому вам нужно скачать только один файл OpenCL Runtime for Intel Coreand Intel Xeon Processors for Windows, например, сейчас последней версией является: «OpenCL™ Runtime 16.1.2 for Intel® Core™ and Intel® Xeon® Processors for Windows* (64-bit & 32-bit)». Ранее они распологались на странице загрузки https://software.intel.com/en-us/articles/opencl-drivers#graph-win
Ранее Intel CPU Runtime for OpenCLApplications for Windows OS скачивался в одном файле вместе с графическим драйвером центрального процессора. Сейчас ситуация поменялась: графический драйвер процессора и CPU Runtime for OpenCLApplications разделены на два файла. Причём драйвер можно просто скачать с сайта, а для скачивания среды выполнения нужно регистрироваться на сайте Intel.
Чтобы скачать последнюю версию драйвера для CPU Intel перейдите на страницу драйверов и ПО, а затем выберите там Drivers. Например, если у вас версия Windows 10 и центральный процессор 6го, 7го, 8го, 9го поколений, Apollo Lake, Gemini Lake, Amber Lake или Whiskey Lake, тогда выберите опцию «Intel® Graphics — Windows® 10 DCH Drivers» (самая верхняя строка). Это самая последняя версия на момент написания 27.20.100.8190 Если у вас другая версия Windows или более старый процессор, то выберите соответствующий вариант загрузки. Скорее всего, придётся установить какую-то из версий 15.**
Чтобы скачать Intel® CPU Runtime for OpenCL™ Applications for Windows* OS, перейдите на эту страницу: https://registrationcenter.intel.com/en/products/download/3600/ (для доступа к файлу требуется регистрация).
Если ссылки станут неактуальными, то перейдите на эту страницу и попробуйте найти ссылки самостоятельно: https://software.intel.com/en-us/articles/opencl-drivers
Опции hashcat
Работа с программами в интерфейсе командной строки сильно отличается от работы в графическом пользовательском интерфейсе. В графическом интерфейсе мы нажимаем разные кнопки, передвигаем переключатели, ставим галочки и т.д. Ничего этого у программ с интерфейсом командной строки нет. Но при этом утилита командной строки может обладать даже большими возможностями, чем аналогичная программа с оконным интерфейсом. Чтобы можно было управлять функционалом консольных утилит, используются опции.
В выведенной справке вы наверняка заметили большое количество информации. Эта информация в большей части посвящена именно опциям.
Опции указываются после запускаемого файла через пробел. Некоторые опции требуют указания определённого значения. Некоторые используются без значений (такие опции ещё называют «флагами»).
Опции могут применяться по одной или сразу по несколько. С помощью опций можно очень точно настроить программу, использовать её на максимальных возможностях.
С одной опцией мы уже познакомились – это -h, которая выводит справку по программе, далее мы познакомимся с ещё большим количеством опций и их возможными значениями.
Следующей на очереди является опция -b.
Запуск бенчмарка hashcat
Опцией -b запускается бенчмарк hashcat. Этот бенчмарк меряет, с какой скоростью перебираются пароли.
Запуск бенчмарка пройдёт успешно только если драйвера установлены правильно и всё в порядке. Т.е. бенчмарк это ещё и способ сделать проверку системы и hashcat.
Чтобы запустить проверку скорости перебора по самым популярным алгоритмам в командной строке выполните:
.\hashcat64.exe -b
Для досрочной остановки нажмите CTRL+c. Этим сочетанием клавиш досрочно останавливаются все утилиты командной строки. Запомните эту комбинацию!
Скорость выводится для каждого устройства в отдельности, а также для всех устройств вместе взятых (запись Speed.Dev.#*).
Пример:
Hashmode: 2500 - WPA/WPA2 (Iterations: 4096) Speed.Dev.#1.....: 5591 H/s (46.19ms) @ Accel:512 Loops:256 Thr:1 Vec:4 Speed.Dev.#2.....: 22374 H/s (69.23ms) @ Accel:128 Loops:32 Thr:256 Vec:1 Speed.Dev.#3.....: 171 H/s (1205.03ms) @ Accel:1024 Loops:128 Thr:1 Vec:4 Speed.Dev.#*.....: 28136 H/s
Какое именно устройство какой имеет номер написано в самом начале при запуске программы, например:
OpenCL Platform #1: Intel(R) Corporation ======================================== * Device #1: Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz, 4085/16342 MB allocatable, 8MCU OpenCL Platform #2: Advanced Micro Devices, Inc. ================================================ * Device #2: Capeverde, 1523/2048 MB allocatable, 10MCU * Device #3: Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz, 4085/16342 MB allocatable, 8MCU
Предупреждения и ошибки при запуске hashcat
Сразу при запуске бенчмарка могут начаться выводиться ошибки. К примеру:
* Device #3: Not a native Intel OpenCL runtime. Expect massive speed loss. You can use --force to override, but do not report related errors.
В ошибке сказано, что используется не родная среда выполнения OpenCL и ожидается значительное падение скорости. По этой причине устройства OpenCL будут пропущены (на скриншоте ниже это видно по слову skipped, т.е. пропущено). Если мы всё равно хотим их использовать, то нужно добавить опцию —force.
Запуск бенчмарка с двумя опциями:
.\hashcat64.exe -b --force
Если у вас всё равно пропущены некоторые устройства, то вы можете добавить ещё одну опцию -D. После этой опции нужно добавить цифру или цифры, обозначающие тип устройства:
# | Типы устройств ===+============= 1 | CPU 2 | GPU 3 | FPGA, DSP, Co-Processor
Обратите внимание на очень важную вещь – для опции используется заглавная буква. Регистр букв влияет на значение опции! Т.е. опция с буквой в другом регистре (большая вместо маленькой или маленькая вместо большой) может иметь совершенно другое значение, вплоть до противоположного.
Т.е. 1 – это центральные процессор, а 2 – это графический процессор, тогда полная команда вместе с выбором всех доступных у меня устройств будет выглядеть :
.\hashcat64.exe -b --force -D 1,2
clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR
Ошибка
clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR
возникает в том случае, если не найдено устройств, на которых может работать Hashcat. Если подходящие устройства имеются, значит всё дело в неправильных драйверах или в отсутствии драйверов.
Графический интерфейс hashcat
Для hashcat отсутствуют официальные графические интерфейсы. Тем не менее имеется несколько интерфейсов, которые были созданы энтузиастами. Самым актуальным является этот: https://hashkiller.io/downloads/
Для установки графического интерфейса hashcat скачайте архив со страницы, на которую выше дана ссылка.
Распакуйте скаченный архив, в него уже включены:
- hashcat-utils-1.0
- cap2hccap
Требования для работы графического интерфейса hashcat:
- только операционная система Windows
- dotNET Framework: v4
- hashcat версии 3.00 или более поздний
Hashcat вам нужно скачать отдельно, как это показано выше. Также у вас должны быть установлены необходимые драйверы.
После того, как вы распаковали Hashcat GUI и саму Hashcat, вам нужно папку с Hashcat переместить в папку с Hashcat GUI. Должна получиться примерно следующая структура папок:
Подсвечена папка с Hashcat – hashcat-4.1.0. Обратите внимание, что переименовывать каталог с хешкэт не нужно.
Для запуска программы дважды кликните файл HashcatGUI.exe. Посмотрите на графический интерфейс Hashcat:
На мой взгляд, он сложный. По моему субъективному ощущению, проще разобраться с опциями командной строки, чем с графическим интерфейсом в котором, между прочим, всё равно присутствуют не все функции.
Более того, без понимания концепций работы Hashcat, вряд ли вы что-то сможете сделать даже в графическом интерфейсе. Поэтому продолжайте чтение данной статьи, а к графическому интерфейсу мы вернёмся позже на страницах сайта HackWare.ru.
Как использовать hashcat
Запуск программы выполняется следующим образом:
hashcat [опции]... хеш|файл_хеша|файл_hccapx [словарь|маска|директория]...
Здесь под hashcat подразумевается имя исполнимого файла, в моих примерах это .\hashcat64.exe.
После имени исполнимого файла через пробел следуют опции, с которыми мы уже начали знакомство.
Символ | (труба) в данном случае означает логическое «ИЛИ». Т.е. после опций следует ИЛИ файл, ИЛИ файл с хешем, ИЛИ файл hccapx. А затем через пробел указывается ИЛИ словарь, ИЛИ маска, ИЛИ директория – в зависимости от выбранной атаки.
Рассмотрим использование программы на конкретных примерах. Допустим нам дан хеш 53ab0dff8ecc7d5a18b4416d00568f02, который нужно взломать. Об этом хеше известно, что он получен с помощью алгоритма хеширования MD5 (т.е. это MD5 хеш). Также известно, что зашифрованная строка состоит только из маленьких букв английского алфавита и имеет длину от шести до десяти символов.
Далее будет показано, как запускать атаку, используя разнообразные приёмы перебора паролей.
Указание типа хеша
Разные хеши вычисляются по различным алгоритмам. Аналогично и их взлом происходит по различным алгоритмам. Для того, чтобы правильно запустить атаку в Hashcat, необходимо указать тип атакуемого хеша. Для этого используется опция -m, после которой необходимо указать число, соответствующее выбранному типу хеша.
В исходных условиях нам дано, что предоставленный хеш является MD5. Значит на странице https://kali.tools/?p=3825 мы ищем «MD5»:
Напротив найденного хеша, смотрим столбец «#», т.е. номер. В нашем случае этот номер равен «0».
Значит, к команде запуска Hashcat необходимо добавить -m 0 — опция и её значение.
Если бы нам был дан хеш SHA1, то его номер бы был 100 и к команде запуска Hashcat мы бы добавили -m 100 и аналогично для любого другого алгоритма.
Обычно тип хеша известен исходя из источника, где этот хеш был получен. В случае, если достоверно неизвестен тип атакуемого хеша, его можно попытаться угадать с помощью специализированных инструментов, как это сделать описано в статье «Хеши: определение типа, подсчёт контрольных сумм, нестандартные и итерированные хеши».
Режимы атаки Hashcat
Hashcat поддерживает различные режимы атак, самыми распространёнными являются:
- атака по словарю, когда в качестве кандидатов в пароли используется список слов
- атака по маске (брут-форс, полный перебор), когда кандидаты в пароли генерируются исходя из описанных критериев.
Для указания режима атаки используется опция -a. С помощью неё можно указывать любой тип атаки, поддерживаемый в Hashcat, самыми популярными является атака по словарю – значение 0 – и атака по маске (брут-форс, полный перебор) – значение 3.
Т.е. если мы запускаем атаку по словарю, значит мы указываем -a 0, а если атаку по маске, то -a 3.
Атака по словарю в Hashcat
Запуск атаки по словарю происходит следующим образом:
hashcat [опции]... хеш|файл_хеша|файл_hccapx [путь_до_словаря]...
Чтобы взломать наш хеш, создайте небольшой словарик – обычный текстовый файл с именем dictionary.txt и скопируйте в него:
Примечание: кстати, с Hashcat поставляется пример словаря, он называется example.dict.
Итак, на данном этапе у нас имеется всё необходимое для запуска атаки по словарю. Собираем всё воедино:
.\hashcat64.exe -m 0 -a 0 53ab0dff8ecc7d5a18b4416d00568f02 dictionary.txt
Здесь:
- .\hashcat64.exe – исполнимый файл
- -m 0 – опция, устанавливающая тип хеша MD5
- -a 0 – опция, значение который запускает атаку по словарю
- 53ab0dff8ecc7d5a18b4416d00568f02 – хеш, который необходимо взломать
- dictionary.txt – путь до файла словаря.
Поскольку словарь очень маленький, то программа завершит свою работу очень быстро:
Результат работы программы:
53ab0dff8ecc7d5a18b4416d00568f02:hackware Session..........: hashcat Status...........: Cracked Hash.Type........: MD5 Hash.Target......: 53ab0dff8ecc7d5a18b4416d00568f02 Time.Started.....: Mon Mar 05 07:23:25 2018 (0 secs) Time.Estimated...: Mon Mar 05 07:23:25 2018 (0 secs) Guess.Base.......: File (dictionary.txt) Guess.Queue......: 1/1 (100.00%) Speed.Dev.#1.....: 17783 H/s (0.04ms) @ Accel:1024 Loops:1 Thr:1 Vec:4 Speed.Dev.#2.....: 0 H/s (0.00ms) @ Accel:256 Loops:1 Thr:256 Vec:1 Speed.Dev.#3.....: 12530 H/s (0.03ms) @ Accel:1024 Loops:1 Thr:1 Vec:4 Speed.Dev.#*.....: 30313 H/s Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts Progress.........: 24/48 (50.00%) Rejected.........: 0/24 (0.00%) Restore.Point....: 0/48 (0.00%) Candidates.#1....: aaaaaaaaaa -> dancing2009 Candidates.#2....: [Copying] Candidates.#3....: danciotu -> hackware HWMon.Dev.#1.....: N/A HWMon.Dev.#2.....: Util: 37% Core: 800MHz Mem:1000MHz Bus:16 HWMon.Dev.#3.....: N/A
Первая строка 53ab0dff8ecc7d5a18b4416d00568f02:hackware содержит атакуемый хеш и после двоеточия взломанный пароль – в данном случае это hackware.
Об успешном взлома говорит строка Status………..: Cracked
Хеш необязательно указывать в строке команды – он может быть записан в файл, тогда при запуске взлома указывается путь до файла, содержащего хеш. Например, создадим файл hashmd5.txt и скопируем в него 53ab0dff8ecc7d5a18b4416d00568f02.
Тогда запускаемая команда будет такой:
.\hashcat64.exe -m 0 -a 0 hashmd5.txt dictionary.txt
Команда содержит те же опции, что и предыдущая, только вместо непосредственно хеша, мы указали путь до файла, содержащего взламываемый хеш.
Примечание: поскольку в учебных целях мы взламываем один и тот же хеш разными способами, то в случае если вы повторяете примеры, вы увидите сообщение:
INFO: All hashes found in potfile! Use --show to display them.
Оно означает, что хеш, который вы пытаетесь взломать, уже был взломан ранее. Все взломанные хеши храняться в файле hashcat.potfile в той же директории, что и Hashcat. Это обычный текстовый файл, его можно открыть и посмотреть содержимое, в моём случае это:
53ab0dff8ecc7d5a18b4416d00568f02:hackware
Этот файл можно удалить, чтобы запускать заново атаку на один и тот же хеш различными способами.
Также имеется опция —show, после которой нужно указать интересующий хеш:
.\hashcat64.exe --show 53ab0dff8ecc7d5a18b4416d00568f02
и если он найден в файле hashcat.potfile, то будет выведена информация о взломанном пароле.
Атака по маске в Hashcat (полный перебор, брут-форс)
В Hashcat нет такого режима как брут-форс – полного перебора паролей. Его поглатил режим «атака по маске». Это более гибкий тип атаки, который позволяет как реализовать полный перебор, так и перебор по тонко настроенным критериям.
В общем виде атака по маске имеет следующий вид:
hashcat [опции]... хеш|файл_хеша|файл_hccapx [маска]...
Т.е. она аналогична предыдущей, но вместо словаря указывается маска.
Как составлять маски в Hashcat
Для составления масок используются наборы символов. Наборы символов в Hashcat бывают двух видов:
- встроенные наборы символов
- пользовательские наборы символов
Начнём с разбора встроенных наборов символов, т.к. для многих ситуаций их бывает достаточно.
В Hashcat встроенными наборами символов являются:
? | Набор символов ===+========= l | abcdefghijklmnopqrstuvwxyz u | ABCDEFGHIJKLMNOPQRSTUVWXYZ d | 0123456789 h | 0123456789abcdef H | 0123456789ABCDEF s | !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ a | ?l?u?d?s b | 0x00 - 0xff
Первая колонка означает условное обозначение набора символов. Для использования в масках, перед данным обозначением необходимо поставить знак вопроса. Например, ?u означает все заглавные буквы, ?d – все цифры.
Допустим, нам известно, что пароль состоит из четырёх символов, первыми двумя символами являются прописные буквы, а третьим и четвёртым символами являются цифры, тогда маска будет следующая:
?l?l?h?h
Чтобы взломать пароль из нашего хеша, данного в качестве примера, необходимо составить маску, состоящую из восьми символов, каждый из которых является маленькой буквой. Это маска: ?l?l?l?l?l?l?l?l
.\hashcat64.exe -m 0 -a 3 53ab0dff8ecc7d5a18b4416d00568f02 ?l?l?l?l?l?l?l?l
Здесь:
- .\hashcat64.exe – исполнимый файл
- -m 0 – опция, устанавливающая тип хеша MD5
- -a 3 – опция, значение который запускает атаку по маске
- 53ab0dff8ecc7d5a18b4416d00568f02 – хеш, который необходимо взломать
- ?l?l?l?l?l?l?l?l – маска, которая задаёт генерацию паролей длиной в восемь символов, состоящих из маленьких букв.
Менее чем через минуту пароль успешно взломан:
Обратите внимание на строку:
Progress.........: 15724838912/208827064576 (7.53%)
Т.е. было перебрано 15724838912 вариантов паролей из 208827064576 общего количества вариантов.
Маска при неизвестной длине пароля
Не всегда точно известна длина пароля. Даже по условию нашей задачи пароль имеет длину от шести до десяти символов.
Для того, чтобы генерировались пароли различной длины, имеются следующие опции:
- -i — Включить режим приращения маски
- —increment-min | Числ | Начать прирост маски на X, пример использования: —increment-min=4
- —increment-max | Числ | Остановить прирост маски на X, пример использования: —increment-max=8
Опция -i является необязательной. Если она используется, то это означает, что длина кандидатов в пароли не должна быть фиксированной, она должна увеличиваться по количеству символов.
Опция —increment-min также является необязательной. Она определяет минимальную длину кандидатов в пароли. Если используется опция -i, то значением —increment-min по умолчанию является 1.
И опция —increment-max является необязательной. Она определяет максимальную длину кандидатов в пароли. Если указана опция -i, но пропущена опция —increment-max, то её значением по умолчанию является длина маски.
Правила использования опций приращения маски:
- перед использованием —increment-min и —increment-max необходимо указать опцию -i
- значение опции —increment-min может быть меньшим или равным значению опции —increment-max, но не может превышать его
- длина маски может быть большей по числу символов или равной числу символов, установленной опцией —increment-max, НО длина маски не может быть меньше длины символов, установленной —increment-max.
Итак, скорректируем команду запуска для нашей задачи (пароль имеет длину от шести до десяти символов):
.\hashcat64.exe -m 0 -a 3 -i --increment-min=6 --increment-max=10 53ab0dff8ecc7d5a18b4416d00568f02 ?l?l?l?l?l?l?l?l?l?l
Эта команда аналогична предыдущей, но здесь добавлены три новые опции (которые объяснены чуть выше):
- -i
- —increment-min=6
- —increment-max=10
А также увеличена длина маски до 10 символов: ?l?l?l?l?l?l?l?l?l?l (как это требуют правила использования опций приращения).
На перебор понадобилось чуть больше времени, поскольку дополнительно были опробованы кандидаты в пароли длиной 6 (+1 секунда на моём железе) и 7 символов (+22 секунды):
Обратите внимание на новое значение строки Status:
Status...........: Exhausted
Оно означает, что перебраны все кандидаты в пароли, но ни один из них не подошёл.
Взлом пароля, когда известны некоторые символы
Бывают ситуации, когда известны некоторые из символов пароля. Например, нам дан тот же самый хеш 53ab0dff8ecc7d5a18b4416d00568f02 и каким-то образом нам стало известно, что первыми тремя символами в пароле являются «hac». Тогда эти символы можно указать прямо в маске:
hac?l?l?l?l?l?l?l
Получается команда:
.\hashcat64.exe -m 0 -a 3 -i --increment-min=6 --increment-max=10 53ab0dff8ecc7d5a18b4416d00568f02 hac?l?l?l?l?l?l?l
Известные символы могут находится в любом месте маски – в начале, середине, конце; это могут быть одиночные символы или группы символов.
Пользовательские наборы символов Hashcat
Выше уже перечислены встроенные наборы символов, которых обычно бывает достаточно. Тем не менее, вы можете задать до четырёх своих собственных, пользовательских наборов.
Предположим, нам известно, что первыми тремя символами в пароле являются цифры, причём не все, а только цифры от 0 до 4, четвёртым символом являются только большие буквы, а пятым и шестым символом являются буквы от a до h, а также цифры от 5 до 9.
Если в маске для первых трёх символов мы укажем просто цифры, то будут перебраны также заведомо не подходящие кандидаты в пароли – содержащие в первых трёх позициях цифры, не входящие в диапазон от 0 до 4. Нужно стараться всячески исключить заведомо неподходящие пароли. Это можно сделать с помощью пользовательских наборов символов.
Всего доступно четыре пользовательских набора символов. Они задаются в опциях и обозначаются цифрами. Но в опциях перед цифрой ставится дефис (например, первый пользовательский набор -1), а в маске перед цифрой ставится знак вопроса (например, использование символов из первого пользовательского набора ?1).
Итак, для решения поставленной задачи начинаем с того, что в опциях задаём необходимое количество пользовательских набора. Эти наборы могут состоять из непосредственно перечисленных символов, также можно использовать встроенные наборы символов, например ?l или ?d или ?u (в любых комбинациях).
Первый пользовательский набор символов для нашей задачи (только цифры от 0 до 4):
-1 01234
Второй пользовательский набор символов (буквы от a до h, а также цифры от 5 до 9)
-2 abcdefgh56789
Напомню – пользовательские наборы символов пишутся среди опций (т.е. до маски и до хеша).
Теперь создаём маску (первыми тремя символами в пароле являются цифры, причём не все, а только цифры от 0 до 4, четвёртым символом являются только большие буквы, а пятым и шестым символом являются буквы от a до h, а также цифры от 5 до 9):
?1?1?1?u?2?2
Разберём маску – первые три символа обозначены как ?1?1?1 (это единички, а не маленькая буква эль) – это символы из первого пользовательского набора. Далее идёт ?u – это встроенные набор символов, обозначающий только заглавные буквы. Последующие два символа обозначены как ?2?2 – это символы из второго пользовательского набора.
При указании пользовательских наборов можно использовать обозначения встроенных наборов символов, например:
-1 ?l?u
обозначает первый пользовательский набор, состоящий только из больших и маленьких латинских букв.
А
-1 ?l?u?d
означает первый пользовательский набор, состоящий только из больших и маленьких латинских букв, а также цифр.
Как уже было показано выше, в маске можно использовать пользовательские и встроенные наборы символов в любых комбинациях.
Как показать пароли (создать словарь) в Hashcat без запуска взлома
После создания сложных масок, особенно с использованием пользовательских наборов символов, хочется проверить, всё ли правильно мы сделали. Также, благодаря гибкости синтаксиса Hashcat её удобно использовать для генерации словарей по любым критериям.
Для того, чтобы только показать пароли без запуска взлома, используется опция —stdout. Эта опция требует -a 3 (режим атаки по маске). Поскольку взлом в этом случае не запускается, то не нужно указывать какие-либо хеши.
Пример генерации паролей для рассмотренной чуть выше задачи (известно, что первыми тремя символами в пароле являются цифры, причём не все, а только цифры от 0 до 4, четвёртым символом являются только большие буквы, а пятым и шестым символом являются буквы от a до h, а также цифры от 5 до 9):
.\hashcat64.exe --stdout -a 3 -1 01234 -2 abcdefgh56789 ?1?1?1?u?2?2
Поскольку паролей будет создано много (более полумиллиона), то вместо отображения на экране, их можно сохранить в файл. Для этого после основной команды нужно поставить символ > (означает перенаправление вывода в файл) и написать имя файла. Например, для сохранения всех паролей в файл lab1.dic, который будет создан в той же папке, где размещён исполнимый файл hashcat64.exe:
.\hashcat64.exe --stdout -a 3 -1 01234 -2 abcdefgh56789 ?1?1?1?u?2?2 > lab1.dic
Как составить маску, если о пароле ничего не известно
Если неизвестно, какие символы присутствуют в пароле, а также какая его длина, приходится перебирать все возможные варианты.
Условно можно выделить три допущения:
- В пароле могут быть любые цифры, а также большие и маленькие буквы.
- В пароле могут быть любые цифры, большие и маленькие буквы, а также другие символы (точки, тире, запятые, кавычки, пробелы, знаки процента, решётки и т.д.)
- В пароле могут быть любые цифры, большие и маленькие буквы, другие символы (точки, тире, запятые, кавычки, пробелы, знаки процента, решётки и т. д.), а также буквы национальных алфавитов (кириллица, иероглифы и т.д.)
В чём проблема задать искать пароль сразу по всем символам? Обратимся к формуле количества возможных комбинаций:
количество символов(длина пароля)
То есть количество возможных символов в пароле в степени числа, которое является длиной пароля. Причём если мы не знаем длину, то необходимо перебрать:
количество символов1 + количество символов2 + количество символов3 + количество символов4 + количество символов5 + …
То есть нужно перебрать все пароли длиной в один символ, затем все пароли длиной в два символа и так далее.
На практике для многих алгоритмов взлома это означает невозможность подобрать пароль за разумный срок.
Поэтому если нет никаких представлений о пароле, то, пожалуй, можно начать с атаки по словарю. Она может оказаться эффективнее, чем ожидание в миллиарды лет полного перебора паролей.
Тем не менее, если нужно запустить полный перебор, когда в пароле могут быть большие и маленькие латинские буквы, а также цифры и длина пароля от 1 до 12, то нужно использовать следующие опции и маску:
-i --increment-min=1 --increment-max=12 -1 ?l?u?d ?1?1?1?1?1?1?1?1?1?1?1?1
Чтобы вывести все кандидаты в пароли или сохранить их в словарь:
hashcat --stdout -a 3 -i --increment-min=1 --increment-max=12 -1 ?l?u?d ?1?1?1?1?1?1?1?1?1?1?1?1
Если нужно запустить полный перебор, когда в пароле могут быть большие и маленькие латинские буквы, цифры, а также символы !»#$%&'()*+,-./:;<=>?@[\]^_`{|}~ и длина пароля от 1 до 12, то нужно использовать следующие опции и маску:
-i --increment-min=1 --increment-max=12 ?a?a?a?a?a?a?a?a?a?a?a?a
Чтобы вывести все кандидаты в пароли или сохранить их в словарь:
hashcat --stdout -a 3 -i --increment-min=1 --increment-max=12 ?a?a?a?a?a?a?a?a?a?a?a?a
Образцы хешей
В программу Hashcat встроена не только справка, но и примеры хешей. Они могут быть полезными, если у вас трудности с правильным написанием формата хешей.
Чтобы вывести сразу все примеры хешей, запустите программу с опцией —example-hashes:
.\hashcat64.exe --example-hashes
Можно посмотреть образец одного определённого хеша. К примеру, мне нужно узнать, как выглядит хеш для взлома пароля архива RAR5; тогда я перехожу на страницу справки программы https://kali.tools/?p=578 и ищу RAR5 (используйте CTRL+f). Нахожу, что номер данного хеша 13000; далее я запускаю программу с опцией —example-hashes и уже известной нам опцией -m (после которой указывается номер режима хеша)
.\hashcat64.exe --example-hashes -m 13000
Итак, для взлома паролей от архивов RAR5 хеш должен иметь вид:
$rar5$16$38466361001011015181344360681307$15$00000000000000000000000000000000$8$cc7a30583e62676a
Дополнительный материал для изучения Hashcat
В данной статье рассмотрены самые базовые концепции по работе с Hashcat, без понимания которых вряд ли получится запустить взлом пароля.
Для продолжения знакомства с программой рекомендуется к прочтению:
- Опции Hashcat на русском языке
- Статья «Взлом рукопожатий (handshake) с использованием графического процессора в Windows»
- Инструкция «Взлом паролей MS Office, PDF, 7-Zip, RAR, TrueCrypt, Bitcoin/Litecoin wallet.dat, htpasswd в Hashcat»
- Книга «Продвинутый взлом паролей с Hashcat» на русском языке»
- Инструкция «Как в hashcat продолжить перебор с места остановки (сессии hashcat)»
- Как конвертировать рукопожатие (хендшейк) в новый формат Hashcat. Решение проблемы «Old hccap file format detected! You need to update»
Связанные статьи:
- Взлом сетевой аутентификации Windows (92.5%)
- Взлом рукопожатий (handshake) с использованием графического процессора в Windows (91.1%)
- Как взломать пароль Windows (89.4%)
- Взлом паролей MS Office, PDF, 7-Zip, RAR, TrueCrypt, Bitcoin/Litecoin wallet.dat, htpasswd в oclHashcat (86.4%)
- Базовое и продвинутое использование oclHashcat (Hashcat) для взлома WPA/WPA2 паролей из хендшейков (86.4%)
- Аудит безопасности SMB и Samba (RANDOM — 15.2%)