Introdução
Neste laboratório, você explorará como otimizar o desempenho do hashcat, uma poderosa ferramenta de recuperação de senhas, utilizando seus perfis de carga de trabalho (workload profiles). A configuração de perfil de carga de trabalho permite ajustar o consumo de recursos do hashcat, buscando um equilíbrio entre a velocidade bruta de cracking e a responsividade geral do sistema. Isso é crucial quando você precisa realizar uma tarefa de cracking de longa duração em uma máquina que também é utilizada para outras atividades.
Você aprenderá a:
- Compreender os diferentes perfis de carga de trabalho disponíveis no
hashcat. - Estabelecer um benchmark de desempenho base.
- Testar e comparar os perfis "Low Power" (Baixa Potência) e "High Performance" (Alto Desempenho).
- Aplicar este conhecimento a um cenário prático de cracking.
Compreender o Propósito dos Perfis de Carga de Trabalho com -w
Nesta etapa, você aprenderá sobre a opção -w (ou --workload-profile) no hashcat. Esta opção controla o gerenciamento interno da carga de trabalho do hashcat, afetando o estresse que ele impõe à sua CPU e GPU.
Existem quatro perfis principais:
-w 1(Baixa Potência - Low Power): Minimiza o uso de recursos. O sistema permanece muito responsivo, mas a velocidade de cracking é significativamente reduzida. Ideal para execução em segundo plano em uma estação de trabalho.-w 2(Padrão - Default): Um perfil equilibrado que oferece bom desempenho, mantendo o sistema razoavelmente utilizável.-w 3(Alto Desempenho - High Performance): Maximiza a velocidade de cracking utilizando mais recursos do sistema. O sistema pode ficar lento.-w 4(Pesadelo - Nightmare): Para rigs de cracking dedicados e altamente otimizados. Ele leva o hardware aos seus limites absolutos e pode causar instabilidade ou travamentos do sistema em máquinas comuns.
Vamos começar visualizando as informações de ajuda para esta opção específica. Esta é uma boa prática para entender os recursos de qualquer ferramenta de linha de comando.
Execute o seguinte comando no seu terminal para encontrar a descrição da opção de perfil de carga de trabalho no menu de ajuda do hashcat:
hashcat --help | grep "workload-profile"
Você deverá ver uma saída que descreve a opção -w e seus níveis disponíveis.
-w, --workload-profile | ## | Habilita um perfil de carga de trabalho específico. Veja abaixo. | -w 3
Perfis de Carga de Trabalho:
==================
## | Perfil | Desempenho | Memória | Não Supervisionado | Ajuste Base
-+-----------+-------------+--------+------------+-------------
1 | Low-Power | 10 % | 1/4 | Não | -n 1 -u 1024
2 | Default | 90 % | 1/2 | Não | -n 8 -u 256
3 | High-Perf | 100 % | Completa | Não | -n 64 -u 64
4 | Nightmare | 100 % | Completa | Sim | -n 512 -u 32
Isso confirma os diferentes perfis e dá uma pista sobre o impacto deles no desempenho e no ajuste do sistema.
Executar um Benchmark para Estabelecer uma Linha de Base
Nesta etapa, você estabelecerá uma linha de base de desempenho. Uma linha de base é uma medição padrão que você pode usar como ponto de referência para comparação. Executaremos o modo de benchmark integrado do hashcat com suas configurações padrão (equivalente a -w 2).
O modo de benchmark (-b) permite que o hashcat meça seu desempenho em vários algoritmos de hashing sem a necessidade de arquivos de hash de entrada. Testaremos especificamente o algoritmo MD5, que é designado pelo número de modo 0 (-m 0).
Execute o seguinte comando para iniciar o benchmark para MD5:
hashcat -b -m 0
O hashcat iniciará e testará o desempenho do seu sistema para o tipo de hash MD5. Preste muita atenção à saída. Após alguns momentos, ele exibirá uma tabela de resultados. Você está interessado na coluna Speed (Velocidade).
hashcat (v6.2.6) starting in benchmark mode
...
Hashtype: 0 - MD5
Speed.#1.........: 299.4 MH/s (46.38ms) @ Accel:128 Loops:256 Thr:64 Vec:1
...
Nota: A velocidade que você verá (por exemplo, 299.4 MH/s) variará dependendo dos recursos da máquina virtual. O importante é anotar mentalmente este número. Esta é a sua linha de base de desempenho com o perfil de carga de trabalho padrão.
Testar o Perfil de Baixa Potência com -w 1
Nesta etapa, você testará o perfil de carga de trabalho "Baixa Potência" (Low Power). Como o nome sugere, este perfil é projetado para ser gentil com os recursos do seu sistema. É a escolha ideal quando você precisa executar o hashcat por um período prolongado sem impactar sua capacidade de usar o computador para outras tarefas.
Executaremos o mesmo benchmark da etapa anterior, mas desta vez adicionaremos o flag -w 1 para selecionar explicitamente o perfil de baixa potência.
Execute o seguinte comando:
hashcat -b -m 0 -w 1
Mais uma vez, o hashcat executará seu benchmark para o algoritmo MD5. Observe a saída e encontre o valor de Speed (Velocidade).
hashcat (v6.2.6) starting in benchmark mode
...
Hashtype: 0 - MD5
Speed.#1.........: 37.8 MH/s (48.13ms) @ Accel:1 Loops:1024 Thr:1 Vec:1
...
Compare esta nova velocidade com a linha de base que você registrou na Etapa 2. Você deverá notar que a velocidade é significativamente menor. Isso demonstra a troca: você sacrifica o desempenho bruto por uma melhor responsividade do sistema.
Testar o Perfil de Alto Desempenho com -w 3
Nesta etapa, você testará o perfil de carga de trabalho "Alto Desempenho" (High Performance). Este perfil faz o oposto do de baixa potência: ele instrui o hashcat a usar o máximo de recursos do sistema possível para atingir a velocidade máxima de cracking. Este é o perfil que você usaria em uma máquina dedicada onde o desempenho é a única prioridade.
Vamos executar o benchmark novamente, desta vez usando o flag -w 3.
Execute o comando abaixo:
hashcat -b -m 0 -w 3
O hashcat realizará o benchmark MD5 usando as configurações de alto desempenho. Verifique o valor de Speed (Velocidade) na saída.
hashcat (v6.2.6) starting in benchmark mode
...
Hashtype: 0 - MD5
Speed.#1.........: 315.1 MH/s (43.80ms) @ Accel:64 Loops:64 Thr:64 Vec:1
...
Compare esta velocidade com a linha de base (Etapa 2) e o resultado de baixa potência (Etapa 3). Você deverá ver que esta é a velocidade mais rápida até agora, provavelmente até mais rápida que o perfil padrão. Isso confirma que -w 3 prioriza com sucesso a velocidade em detrimento da responsividade do sistema.
Comparar Desempenho e Responsividade do Sistema
Nesta etapa final, você consolidará suas descobertas e as aplicará a uma tarefa de cracking prática (embora simples).
Até agora, você observou a seguinte relação:
- Velocidade (
-w 1) < Velocidade (Padrão) < Velocidade (-w 3)
Isso ilustra claramente a troca gerenciada pelos perfis de carga de trabalho. Agora, usaremos o perfil de alto desempenho para quebrar o hash de amostra que foi preparado para você no início do laboratório. O diretório ~/project contém um arquivo de hash sample.hash e um arquivo de dicionário wordlist.txt.
Usaremos o seguinte comando:
-m 0: Especifica o tipo de hash MD5.-a 0: Seleciona um ataque de dicionário direto (straight dictionary attack).sample.hash: O arquivo contendo o hash a ser quebrado.wordlist.txt: O arquivo contendo senhas potenciais.-w 3: O perfil de alto desempenho para obter o resultado o mais rápido possível.
Execute o comando para iniciar o processo de cracking:
hashcat -m 0 -a 0 sample.hash wordlist.txt -w 3
Como a senha está em nossa pequena lista de palavras, o hashcat a encontrará quase instantaneamente. A saída mostrará o hash quebrado e a senha correspondente.
...
Dictionary cache built:
* Filename..: wordlist.txt
* Passwords.: 4
* Bytes.....: 29
* Keyspace..: 4
81d38d4b393528b4c444097c69141559:labex
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 81d38d4b393528b4c444097c69141559
Time.Started.....: ...
Time.Estimated...: 0 secs
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 268.2 MH/s (0.01ms) @ Accel:64 Loops:64 Thr:64 Vec:1
Recovered........: 1/1 (100.00%) Digests
Progress.........: 4/4 (100.00%)
Rejected.........: 0/4 (0.00%)
Restore.Point....: 3/4 (75.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: 123456 -> labex
Hardware.Mon.#1..: Temp: 48c Util: 98% Core:1800MHz Mem:3500MHz Bus:16
Started: ...
Stopped: ...
A linha chave é 81d38d4b393528b4c444097c69141559:labex, que mostra o hash original seguido pela senha recuperada, labex. Você usou com sucesso um perfil de carga de trabalho para otimizar uma tarefa de cracking.
Resumo
Parabéns por completar este laboratório! Você aprendeu com sucesso como usar os perfis de carga de trabalho do hashcat para gerenciar o desempenho e os recursos do sistema.
Neste laboratório, você:
- Aprendeu o propósito da opção
-we seus diferentes perfis (-w 1,-w 2,-w 3). - Usou o modo de benchmark (
-b) para estabelecer uma linha de base e medir o desempenho sob diferentes perfis. - Observou a troca direta entre a velocidade de cracking e a responsividade do sistema.
- Aplicou o perfil de alto desempenho a uma tarefa prática de quebra de senhas.
Entender como ajustar suas ferramentas é uma habilidade fundamental para qualquer profissional técnico. Agora você pode aplicar esse conhecimento para escolher as configurações apropriadas do hashcat para qualquer situação, seja você precisando de velocidade máxima em uma máquina dedicada ou de uma tarefa silenciosa em segundo plano em sua estação de trabalho pessoal.


