Cracking de claves WiFi con Pyrit en Amazon ec2

//Cracking de claves WiFi con Pyrit en Amazon ec2

Buscar por:

Fecha

Categoría

Etiqueta

Cracking de claves WiFi con Pyrit en Amazon ec2

Amazon AWS dispone entre su catálogo de Elastic Compute Cloud (EC2) de dos instancias optimizadas para el uso de computación paralela basada en GPU.

La instancia cg1.4xlarge perteneciente a la generación anterior de instancias dispone de 22 GiB de RAM, 33,5 unidades EC2, 2 GPU NVIDIA Tesla “Fermi” M2050, 690 GB de almacenamiento local y una conexión Ethernet de 10 gigabits. Con la nueva generación, Amazon ha introducido la instancia g2.2xlarge que proporciona 15 GiB de RAM, 26 unidades EC2, 1 GPU NVIDIA GRID (Kepler GK104), 60 GB de almacenamiento local y una conexión Ethernet de 10 gigabits.

Este tipo de instancias son adecuadas para realizar tareas de cracking puntuales, ya que Amazon cobra por horas de uso de las instancias. Por ello, en caso de no poder adquirir hardware específico para esta tarea, utilizar la infraestructura de Amazon EC2 puede ser una buena idea para crackear claves WiFi.

En el presente artículo se explicará como preparar una instancia cg1.4xlarge o g2.2xlarge para utilizar herramientas de cracking que hagan uso de computación basada en GPU, como puede ser Pyrit.

El primer paso será será iniciar la instancia con la AMI (Amazon Machine Image) Amazon Linux AMI (HVM), que actualmente posee el identificador ami-7c56b80b. Esta AMI ha sido creada por Amazon para el uso de este tipo de instancias, que requieren interactuar con el hardware de los servidores.

Cuando la instancia haya finalizado la fase de inicialización se podrá establecer una conexión SSH, con el usuario ec2-user, para poder llevar a cabo la instalación de las utilidades necesarias. Para ello se deben seguir los siguientes pasos.

  • Instalación de las dependencias de CUDA, Pyrit y Scapy

# yum -y install subversion python-devel openssl-devel zlib-devel libpcap-devel glibc-devel gcc kernel-devel gcc-c++

  • Descarga e instalación de CUDA

# wget https://developer.download.nvidia.com/compute/cuda/5_5/rel/installers/cuda_5.5.22_linux_64.run
# chmod +x cuda_5.5.22_linux_64.run
# ./cuda_5.5.22_linux_64.run

  • Actualización de las variables de entorno PATH y LD_LIBRARY_PATH, tal y como muestra el instalador de CUDA

# export PATH=/usr/local/cuda-5.5/bin:$PATH
# export LD_LIBRARY_PATH=/usr/local/cuda-5.5/lib:/usr/local/cuda-5.5/lib64:$LD_LIBRARY_PATH

  • Descarga e instalación de Scapy, utilizado por Pyrit para el manejo de paquetes

# wget https://www.secdev.org/projects/scapy/files/scapy-latest.zip
# unzip scapy-latest.zip -d scapy
# cd scapy/*/
# python setup.py install

  • Descarga e instalación de Pyrit

# svn checkout https://pyrit.googlecode.com/svn/trunk/ pyrit
# cd pyrit/pyrit
# python setup.py install
# cd ../cpyrit_cuda
# sed -i -e "s/NVIDIA_INC_DIRS = \[\]/NVIDIA_INC_DIRS = \[\'\/opt\/nvidia\/cuda\/include\'\]/" setup.py
# python setup.py install

Una vez finalizada la instalación de Pyrit será posible visualizar los procesadores con los que puede interactuar. Para ello se debe ejecutar el siguiente comando:

# pyrit list_cores

cores_cg1

Imagen 1: Cores de una instancia cg1.4xlarge

cores_g2

Imagen 2: Cores de una instancia g2.2xlarge

Para comprobar el rendimiento que puede obtener Pyrit en cada tipo de instancia, se puede utilizar el siguiente comando:

# pyrit benchmark

benchmark_cg1 pyrit ec2

Imagen 3: Benchmark de una instancia cg1.4xlarge

benchmark_g2 pyritc ec2 cracking

Imagen 4: Benchmark de una instancia g2.2xlarge

Como se puede apreciar el número de PMK por segundo que es capaz de procesar Pyrit en una instancia de la generación anterior es más del doble que en la de la generación actual. Aunque el rendimiento es menor, en términos de rendimiento económico es más rentable la instancia de nueva generación (g2.2xlarge), ya que el coste por hora de una esta es $0.702 frente a $2.36 de una instancia de la anterior generación.

En el siguiente artículo se explicará como crear una granja de instancias con Pyrit que permitan aumentar el rendimiento sin elevar drásticamente el coste económico.

By | 2016-12-11T17:37:37+00:00 16 Feb. 2015|2 Comments

2 Comments

  1. Administrador 1 marzo, 2015 at 6:24 pm - Reply

    En breve redactaremos el siguiente artículo explicando detalladamente como se utilizaría la infraestructura de Amazon EC2 para tener múltiples nodos GPU utilizando la misma base de datos, pero los pasos serían los siguientes:

    1- En el caso de que los clientes no estén en una red de confianza iniciar el un relay XML-RPC en el servidor central (el que almacena la base de datos). Cabe destacar que cuando se utiliza este método debe estar disponible remotamente el puerto TCP 17934.
    pyrit -u driver://username:[email protected]:port/database relay

    2 – Indicar en los clientes (nodos GPU) la URL remota de la base de datos:
    a) En caso de utilizar XML-RCP:
    pyrit -u http://ip-servidor:17934 batch
    b) En caso estar en una red de confianza, conectarse a la base de datos remotamente
    pyrit -u driver://username:[email protected]:port/database batch

  2. Dani 13 junio, 2015 at 6:35 pm - Reply

    Muy bueno, la verdad es que probé pyrit en cluster y parece bastante potente pero claro, con varios servidores de este tipo las posibilidades aumentan enormemente.

    Saludos
    Dani

Deja un comentario