12 noviembre 2010

Entrevista a d3ad0ne, al servicio del hashcracking


Leyendo sobre password cracking he aprendido bastantes cosas y conocido gente muy interesante. 

Una de esas personas es d3ad0ne, miembro activo de www.hashkiller.com con auténtica pasión por optimizar el hardware de su equipo para mejorar el rendimiento a la hora de hacer ataques contra contraseñas.

Después de leer sobre él en PaulDotCom y encontrármelo por IRC, decidí hacerle una entrevista para el blog y preguntarle algunas las dudas que tenía.

¿Quién es d3ad0ne? ¿Qué estudias o a que te dedicas?

Diría que soy un entusiasta de la tecnología; me encanta cualquier cosa que este a la última. Trabajo como analista en la seguridad informática durante el día.

¿Cuál es tu papel en hashcat/oclhastcat? ¿Sabes cuáles serán sus próximas características?

Conozco a Atom desde antes que liberase hashcat. Nosotros usábamos la herramienta de forma privada unos meses antes de que se decidiera hacer pública. Fue un gran éxito ya que fue el primer cracker de hashes con diccionarios que soportaba de forma nativa multicore. Yo sugerí trabajar en una aplicación basada en GPU y en poco tiempo Atom había desarrollado una combinación de cuda, la primera herramienta que soportaba diccionarios y fuerza bruta para GPU, que más tarde sería oclHashcat.

Siempre estamos tratando nuevas ideas y probando cosas nuevas, como el nuevo ataque mediante fingerprint. Actualmente Atom está trabajando en una nueva aplicación basada en GPU. Esta funciona con algoritmos de alta iteración como md5crypt y phpass y es muy rápida. Además esta nueva herramienta implementa algo que me gusta mucho. No puedo decir que es, pero tengo la sensación que cambiará la cara del password cracking.

Mi rol es ser el administrador de la web y responder preguntas técnicas del foro sobre el uso de la herramienta.

¿Participaste en el concurso "Crack me, if you can" de la Defcon? ¿En qué consistía? ¿Cómo quedasteis?

Si, desafortunadamente no he podido ir a la Defcon este año, un grupo de nosotros sabia del concurso de Korelogics pero ninguno íbamos a ir. Luego supimos que pure_hate asistiría, le preguntamos si quería ser parte del equipo y todo callo desde ese momento. Nuestro equipo estaba compuesto por miembros de todo el mundo que disfrutan con el hash cracking por diversión. Muchos de nosotros somos los que mayores puntuaciones tienen en la web hashkiller.com, así que sabíamos que contábamos con miembros muy experimentados. Estábamos bastante seguros de que ganaríamos, aunque el equipo de Insidepro nos lo puso difícil llegando al final.

¿Qué equipo utilizas para romper hashes? ¿Lo tienes solo por hobby? ¿Qué aplicaciones?

Mi equipo de cracking actual lleva en construcción mucho tiempo; hace poco he llegado a un punto en el que parar momentáneamente. Mi configuración actual consiste en 8 GTX 480's, 6 de ellos con refrigeración líquida y los otros dos con refrigeración normal. Todos los núcleos 3840 GPU están ejecutándose a un mínimo de 1500Mhz. A esto le acompañan dos Xeon 5650 overclockeados y ambos corriendo a 3Ghz. En cuanto a la memoria, consiste en 12 GB marca Corsair Dominator, algunos discos SSD, y mucho más almacenamiento en una placa EVGA Classified SR-2, el sistema completo está alimentado por dos fuentes de 1200w y una unidad de 800w para la extension PCIE. Para crackear contraseñas diría que la mayoría del tiempo utilizo hashcat o oclhashcat por su versatilidad. Mientras el hash utilice un algoritmo que esté soportado. Yo denomino hashcat/oclhashcat como la navaja suiza de la auditoría de contraseñas. Cuando me encuentro en la situación de crackear una única contraseña utilizo ighashgpu después pasarla por unas tablas rainbow. Por otro lado utilizo EGB si necesito soporte para DES o LM, y pyrit para WPA.

Comencé a trabajar en este proyecto tras la idea de tener un servicio de crackeo y auditoría de hashes. Aunque de vez en cuando tenga clientes, la mayoría del tiempo disfruto de esto como un hobby. También construyo este tipo de sistemas como un servicio. Muchos auditores de seguridad de compañías incluso se benefician de utilizar versiones reducidas de este tipo de sistemas.

¿Cuánto tiempo puede llevarte romper CUALQUIER hash en MD5, ,SHA1 y NTLM, por fuerza bruta?

Como referencia depende del número de hashes, al igual que del algoritmo. Para un único hash MD5 utilizando ighashgpu puede alcanzar velocidades de 17 billones de intentos de contraseña por segundo. Sin embargo se reduce a 10.5 billones por segundo si atacan 6500 hashes. Por otra parte, si ataco 6500 hashes NTLM alcanzo los 14 billones por segundo. Esto lleva a ser capaz de crackear cualquier contraseña NTLM de 6 caracteres en mayúsculas, minúsculas, con caracteres especiales y dígitos en 50 segundos, 7 caracteres en 1 hora y 23 minutos y 5 días 13 horas para 8 caracteres. Hay un pequeño punto en hacer fuerza bruta estrictamente a más de 8 caracteres a no ser que sea una variación con un conjunto menor de tipos de caracteres. Existen algunas técnicas como las de hacer mayúscula la primera letra y que el último carácter sea un dígito y así reducir el tiempo para un ataque típico de fuerza bruta. Y para SHA1 es la mitad de velocidad que para MD5. Los ataques de fuerza bruta son perfectos para contraseñas de menos de 8 caracteres. Pero lo genial es ser capaz de utilizar variaciones de ataques de diccionario, híbridos y de fuerza bruta todos a la vez en la GPU.

Para un laboratorio de penetration testing ¿ATI o NVIDIA?

Me han preguntado muchas veces que por qué no utilizo tarjetas ATI siendo su velocidad mucho mejor que las de NVIDIA. Estoy de acuerdo, que comparando una tarjeta con otra ATI es mucho más rápida y económica tanto por el precio como por energía. Sin embargo ahí es dónde acaba el listado de ventajas de ATI. El driver de ATI sólo soporta 4 tarjetas, y probando 4 tarjetas mostraba que el rendimiento escalaba de manera muy pobre. Compara eso con utilizar 8 tarjetas NVIDIA al 100%. Mirando la parte software la mayoría de las herramientas se desarrollan utilizando el lenguaje de programación CUDA, de NVIDIA. Herramientas como Cryptohaze, EGB, EDPRS de Elcomsoft, todas utilizan CUDA exclusivamente.

Si tuvieras que utilizar hashes para almacenar contraseñas en una base de datos que puede ser vulnerada, ¿qué algoritmo utilizarías?

Si tuviera opción de elegir el algoritmo, elegiría SHA1(Unix), el que comienza con $6$. Mantiene los mismos problemas que cualquier hash, en el sentido que es vulnerable a ataques por diccionario y fuerza bruta. Sin embargo, el hecho de que SHA1 es altamente iterado hace muy dificil su ataque. Por el momento no hay aplicaciones por ahí que lo ataquen de forma efectiva.

¿Que blogs internacionales lees?

Siempre trato de mantenerme actualizado en la comunidad seguridad. Algunas de las páginas que frecuento son:


¿Puedes adjuntar alguna foto de tu equipo? ¿Qué precio aproximado tiene todo el hardware?

Fotos adjuntas. He ido comprando varias partes en épocas distintas y nunca he llevado una cuenta del coste. El precio estimado estaría sobre los 13.000€ por el momento. He oído muchas críticas de gente sobre por qué gastar tanto en algo como esto. La única respuesta que puedo dar es que si se pueden permitir el lujo de hacer las cosas que les gustan, deberían de hacerlas.






-------------------------------------------------------------------------------------------------------------
-- Entrevista original en inglés --

*    Tell us a little more about d3ad0ne, interests, if you are a student,
work....

I would say I'm a technology enthusiast; I love anything that is on the
leading edge of technology. I work as an information security analysis by
day.

*    What is your role with hashcat/oclhashcat? Do you know what features
are coming next?

I've known Atom since before he released hashcat. We used the tool privately
for a couple months until he decided to make it public. It was a big hit, as
it was the first native multicore dictionary hash cracker. I had suggested
work on a GPU based tool, and within a short time Atom had develop
combination-cuda, the first GPU based dictionary/bruteforce tool, which
later evolved into oclHashcat.  We are always bouncing ideas around and
trying to come up with something new, like recently the fingerprint attack.
Currently Atom is working on a new GPU based tool. It works with high
iteration algorithms such as md5crypt and phpass and it is very fast. This
new tool will also implement something I'm very excited about. I won't say
what it is, but I have a feeling it may change the face of password
cracking. As far as my role, I mainly just administer the website and try to
answer any technical questions regarding usage.

*    Did you participate in the "Crack me, if you can" Defcon challenge?
Tell us more about it, position you achieved, ...

Yes, unfortunately I wasn't able to personally attend Defcon this year. A
group of us knew about Korelogics contest but none of us were going. I later
found out that pure_hate was going to be attending; I asked him if he would
like to have us as part of the team, and it all fell into place from there.
Our team was comprised of members from all around the world that enjoy hash
cracking for fun. Many of us hold high rankings on the hashkiller.com web
site so we knew we had experienced members. We were pretty confident that we
would win, though the Insidepro team certainly was a challenge near the end.

*    What kind of computer do you have to crack hashes, and what
applications? Is it only a hobby?

My current hash cracking rig has been a work in progress for a while; I have
only recently reached a stopping point.  My current setup consists of 8 GTX
480's 6 water cooled, 2 aftermarket coolers. All 3840 GPU cores are running
at a minimum 1500Mhz shader speed. This is followed up by two overclocked
Xeon 5650s both running over 3Ghz. Memory consist of 12GB of Corsair
Dominator, some SSD drives, and plenty of storage all on an EVGA SR-2
Classified motherboard, the entire system is powered by two 1200w power
supplies and one 800w unit for the PCIE extension. When cracking passwords I
would say that most of the time I use hashcat or oclhashcat because of their
versatility. As long as the hash uses an algorithm that is supported. I
would call hashcat/oclhashcat the Swiss army knife of password auditing. In
the event that I'm cracking only a single password I may use ighashgpu after
running it through rainbow tables. Otherwise I use EGB if I need DES or LM
support, and pyrit if it's WPA.

 I originally started work on this project as an idea for having a hash
cracking and auditing service. While I do take clients from time to time,
for the most part I enjoy it as a hobby. I also build these types of systems
as a service. Many corporate security auditors benefit from using even
smaller versions of this type of system.

*    How long can it take to break ANY hash MD5, SHA1, and NTLM with
bruteforce attacks?

From a bench mark stand point this can depend on how many hashes, as well as
the algorithm.  A single MD5 hash using ighashgpu can reach speeds of
17Billion password attempts a second.  However it drops down to only
10.5Billion/sec if attacking 6500 hashes.  Likewise if I'm attacking 6500
NTLM hashes I will get about 14B/sec. This equates to being able to crack
every upper, lower, special, digit NTLM 6 character password in 50 seconds,
1 hour 23 mins for a 7 character password, and 5 days 13 hours for 8
characters. There is very little point in strictly bruteforcing more than 8
character passwords unless it is a variation of a lesser characters set.
There are some techniques such as making the first letter capital, and last
character a digit that can reduce the time on a standard bruteforce attack.
As for SHA1 it is a little less than half the speed of MD5. Bruteforce
attacks are great for sub 8 character passwords. But the real bread and
butter is being able to use variations of dictionary, hybrid, and bruteforce
attacks all at the same time on the GPU.

*    What do you prefer for a pentest lab, ATI or NVIDIA?

I've been asked many times about why I don't use ATI cards when their speeds
is so much better than NVIDIA.  I agree, single card vs single card ATI is
hands down faster and more economic both from a price and power standpoint.
However that's were ATI's advantage ends. ATI's drivers only support a
maximum of 4 cards, and testing with 4 cards has shown that performance
scales very poorly. Compare that with being able to run 8 NVIDIA cards at
100%. On the software side most of the tools developed utilize NVIDIA's CUDA
programming language. Tools such as Cryptohaze, EGB, Elcomsoft's EDPRS all
utilize CUDA exclusively.

*    Which algorithm would you use to store passwords in a database which
could be vulnerable?

If I had a choice of what algorithm I would choose sha1(unix), the ones that
start with $6$. It still suffers from the same problems of any one way hash
in that it is vulnerable to dictionary and bruteforce style attacks. However
the fact that it's SHA1, and that it is heavily iterated makes it very hard
to attack.  Also at the moment there are virtually no tools out there that
can attack it in an effective way.

*    Do you read any international blogs?

I try and keep up to date with the security community.  Some of the sites I
frequent are:

http://isc.sans.edu/index.html

http://www.question-defense.com

http://hashcrack.blogspot.com

*    Can you attach us any photo's of your systems? What about the
approximate cost?

(Pictures attached) I purchased various parts at different times, and never
kept track of the overall cost. I would estimate in the range of about 13K
at the moment. I've heard criticism from people about why I would speed so
much on something such as this.  The only answer I can give is that if you
can afford to do the things you like to do than you should.

6 comments :

coridora dijo...

Nunca se sabe con quien te vas a encontrar!!
Muy buena la entrevista :)

Jakapaka dijo...

Muy interesante la entrevista. Una cosa, ¿es posible que las unidades sean de billones americanos, es decir, miles de millones?

Es por no ponerme a hacer las cuentas, y que un orden de 10 billones por segundo estamos hablando de terahercios...

des dijo...

La entrevista es buenísima :), y el tema me parece muy interesante. Hace poco publicabais un post sobre qué GPU usar, y otro sobre servicios online de cracking de hashes.

Sobre estos últimos, ¿dan servicios profesionales? (es decir, pagando). Y sobre los primeros, ¿cuánto cuesta un servidor razonable (en coste) para hacer este tipo de cracking?. Slds!

Alejandro Ramos dijo...

@des si, hay servicios de pago, en la lista de servicios se apuntaban algunos de ellos. Imagino que no hay servidores con las mejores características para cracking, como por ejemplo el de esta entrevista.

Un saludo

Alejandro Ramos dijo...

@des si, hay servicios de pago, en la lista de servicios se apuntaban algunos de ellos. Imagino que no hay servidores con las mejores características para cracking, como por ejemplo el de esta entrevista.

Un saludo

Jakapaka dijo...

Muy interesante la entrevista. Una cosa, ¿es posible que las unidades sean de billones americanos, es decir, miles de millones?

Es por no ponerme a hacer las cuentas, y que un orden de 10 billones por segundo estamos hablando de terahercios...