Israel Helton Wernik

I'm a Cyber Researcher and Python Programmer.

Usando GPU para Brute-Force com HashCat

11 Feb 2018 »

Há uma diferença entre CPU e GPU, e o primeiro passo é explicá-los de formas separadas. Sem mais delongas, vamos lá!
CPU (unidade central de processamento) é o processador do computador. Você o encontra dentro do gabinete ou do seu smartphone. Suas funções são de modo mais geral, influenciam em basicamente todos os recursos do computador ou smartphone, desde o processamento de dados, a memória (cachê) e os cálculos dos seus eletrônicos. Em uma explicação mais simples e rápida, a CPU é o cérebro do seu computador.
GPU (unidade de processamento gráfico) também conhecido como VPU (unidade de processamento visual) é o processador da sua placa de vídeo. Apesar das novas tecnologias permitirem que as GPUs façam mais do que processar somente a placa de vídeo, sua principal função ainda continua sendo esta. São responsáveis pelos gráficos dos seus aparelhos eletrônicos.



A GPU é utilizada para cuidar de tarefas repetitivas de forma rápida. Pois renderizar pixels na tela é uma atividade repetitiva, e um ataque de força bruta é muito similar a renderização de pixels.

Para isso é necessário ter uma boa GPU e utilizaremos Hashcat para o processo pois o aircrack-ng não permite utilização do GPU para  o mesmo.

Iremos fazer pelo windows pois a maioria dos GPUs tem drivers para windows e para linux é bem complicado instalar o driver.

Instalação


Vamos ao site do HashCat
https://hashcat.net/hashcat/

Há uma lista de drivers no site

GPU Driver requirements:

  • AMD GPUs on Linux require "RadeonOpenCompute (ROCm)" Software Platform (1.6.180 or later)
  • AMD GPUs on Windows require "AMD Radeon Software Crimson Edition" (15.12 or later)
  • Intel CPUs require "OpenCL Runtime for Intel Core and Intel Xeon Processors" (16.1.1 or later)
  • Intel GPUs on Linux require "OpenCL 2.0 GPU Driver Package for Linux" (2.0 or later)
  • Intel GPUs on Windows require "OpenCL Driver for Intel Iris and Intel HD Graphics"
  • NVIDIA GPUs require "NVIDIA Driver" (367.x or later)

Primeiramente é necessário baixar o respectivo driver.

Depois fazer download do hashcat binaries

Agora devemos converter o handshake em um arquivo compatível com o HashCat. O Handshake que aprendemos a capturar no linux costuma vir como arquivo .cap devemos converter ele muito facilmente com uma ferramenta online criado pelo hashchat
No site: https://hashcat.net/cap2hccapx/
No campo ESSID deve colocar o nome da rede wifi que quer crackear

Ele irá modificar o arquivo para .hccapx

Deve-se pegar o novo handshake e um password-list e colocar no mesmo diretório que o hashcat


Agora entramos no Prompt de comando do windows e vamos em:

cd /
dir
cd hashcat-3.6.0


dir


Podemos ver que temos o hashcat de 32 e 64 bit e devemos usar o compatível com nosso sistema

hashcat64.exe --help


Vemos o comando para utilização do hashcat

O primeiro comando que faremos é -I para ver os dispositivos deste computador que podem ser utilizado para crackear.



hashcat64.exe -I


Vemos que temos dois dispositivos, o #1 que é o GPU e o #2 que é o CPU

A outra opção que veremos é o -m


O tipo de hash que queremos utilizar, descendo na tela do help vemos os modos de hash de só precisamos apontar qual é o que desejamos crackear.


em nosso caso WPA2 que corresponde ao número 2500



Para dizer ao hashcat que queremos crackear WPA/WPA2 fazemos o comando -m 2500 e para dizer que queremos utilizar o GPU fazemos o comando -d 1

Ainda falta o resto

acrescentamos handshake.hccapx e o passwordlist que é rockyou.txt

hashcat64.exe -m 2500 -d 1 handshake.hccpax rockyou.txt



Podemos ver que há a opção de pausar e continuar depois


E em 1min e 7 segundos ele passou por 4 milhões de password pois a correta foi para a última da lista. Esse tempo está ótimo

Agora podemos utilizar essa técnica com o output do crunch como vimos no post
https://cibersegurancawernik.blogspot.co.il/2018/01/capturando-pacotes-wifi-aircrack-e.html

Para isso seria necessário rodar o hashcat no linux e ter o linux como máquina principal utilizando o GPU

O hashcat suporta até 16 GPUs, veja um vídeo da velocidade dele com dois GPUs
https://www.youtube.com/watch?v=phsk10Xyy4M