DEFCON 17. Hackear 400,000 contraseñas, o cómo explicarle a un compañero de cuarto por qué la factura de electricidad ha aumentado. Parte 1

Saludo a todos y gracias por hacer mi presentación concluyendo la conferencia DEFCON de este año. Realmente aprecio esto y trato de no decepcionarte. Mi nombre es Matt Weir, soy un estudiante graduado en la Florida State University. Antes de comenzar a hablar directamente sobre descifrar contraseñas, quiero decir que trabajo con un equipo muy bueno y nombro a sus miembros en este momento. Este es mi líder, profesor, el Dr. Sidir Eggrvol, quien participó en mi presentación y el Profesor Breno de Medeiros. También me gustaría agradecer al National Institute of Justice y al White Collar National Criminal Research Center por financiar mi investigación.



Realmente aprecio esto porque esta ayuda le ha dado a mi investigación un poco de legitimidad. Porque cuando fui al consejo científico para aprobar el tema de mi investigación, comencé la conversación con el hecho de que está dedicado a hackear contraseñas. Estas palabras provocaron una reacción de indignación, así que tuve que explicar lo que era necesario para, por ejemplo, atrapar y enjuiciar a los abusadores de menores y otros delincuentes de este tipo.

Por lo tanto, el objetivo principal de mi investigación es ayudar a la jurisprudencia.

Las agencias de aplicación de la ley son lo suficientemente fuertes en el cifrado, por lo que no iba a ayudarles con esto, simplemente no tendría suficientes cerebros para esto. Decidí investigar los problemas asociados con los ataques a los usuarios, porque es mucho más fácil que descifrar cifrados complejos. Quería desarrollar un mejor modelo de cómo las personas crean sus contraseñas en la vida real, y luego usarlo en una estrategia para crear contraseñas resistentes a los ataques.

Lo primero que necesitamos es tener una idea de cómo las personas crean sus contraseñas. Pasamos un poco de tiempo navegando por Internet y buscando listas de contraseñas abiertas. Aparecen allí por varias razones, por ejemplo, algunos piratas informáticos piratean el sitio y diseñan una lista de contraseñas de usuario para decirles a todos: "¡Mira lo genial que soy!" Recolectamos estas contraseñas y las analizamos.

Hay muchos foros de crackers, tableros de anuncios y similares en Internet, donde también recopilamos una "captura" de contraseñas. Ahora rara vez ve contraseñas de texto simples, pero esto es una gran cosa, porque todo lo que tenemos que hacer es encontrarlas y leerlas. Sin embargo, la mayoría de las contraseñas tienen hash, por lo que para comprender cómo las crean las personas, primero tenemos que descifrarlas.

Esto es realmente bueno para nosotros, ya que nos hace centrarnos en objetivos prácticos. Quiero decir, simplemente no podemos sentarnos y escribir trabajos de investigación mientras bebemos vino. Realmente deberíamos seguir adelante e intentar aplicar lo que obtuvimos en nuestras listas de contraseñas y verificar cómo funciona. Estaba realmente interesado en cómo crear una protección efectiva contra el pirateo y mejorar las contraseñas, utilizando estrategias más efectivas para crear contraseñas basadas en el conocimiento adquirido al romperlas.

Creo que es mucho más fácil hackear algo en lugar de arreglarlo. En esta presentación, trataré de evitar una descripción detallada de las herramientas y las bagatelas que utilicé. No voy a pasar los próximos 50 minutos analizando cada línea de comando del programa John the Ripper , que sirve para recuperar contraseñas de sus hashes, o analizar página por página, con qué frecuencia las personas usan los nombres de los equipos deportivos como contraseñas. No quiero malgastar tu tiempo.

Si está interesado en los detalles, puede visitar mi blog para descifrar contraseñas, www.reusablesec.blogspot.com, o el sitio con mis herramientas y documentación, que están disponibles gratuitamente en Internet en www.reusablesec.sites.google.com . Por favor, deje sus comentarios y no dude en decir si le parece que estamos haciendo algunas cosas estúpidas. Realmente aprecio tales comentarios, porque esta es la mejor manera de evaluar la efectividad de nuestro trabajo.

Tampoco necesita escribir nada febrilmente o tener miedo de perderse una de las diapositivas que parpadean en la pantalla, ya que esta presentación está disponible en el CD de la conferencia, además, puede descargar estas diapositivas de Internet. También grabé varios instrumentos adicionales en el disco. Hablaré brevemente sobre las herramientas utilizadas: este es nuestro diccionario, creado sobre la base de la versión en línea de RainbowCrack Tables , varios scripts para descifrar contraseñas, analizar scripts que utilizamos para analizar listas de contraseñas y varias listas de contraseñas de usuario que nosotros mismos compilamos.

Es de destacar que probablemente tenemos la mayor colección de codificaciones ASCII de una sola línea de muestras de contraseña en Internet. Entonces puedes decir que mis padres pueden estar orgullosos de mí. Noto que las personas crean contraseñas incluso de esta manera, por lo que puede aprovechar esto y descifrarlas.



Puedes decir: “¡Dios mío, las contraseñas son una mierda! ¡Los usuarios son idiotas porque crean contraseñas estúpidas y, en general, todos estamos condenados! Sí, podría pasar tiempo burlándome de los usuarios porque es divertido, pero completamente improductivo. Quiero decir, sabemos por muchos años que el fuego está caliente, el agua está húmeda, que el usuario simplemente seleccionará una contraseña 1-2-3. Esto no es nuevo Pero nosotros, como comunidad de seguridad, debemos decidir qué hacer al respecto.

No diré que soy optimista, pero no soy demasiado pesimista sobre el futuro de las contraseñas. Quiero decir, estamos "atrapados" en estas pequeñas estrellas que deben llenarse, y siempre las usaremos porque son realmente buenas.

Hay muchos factores diferentes que le permiten deshacerse de cualquier "agua", dejando solo la seguridad. Hackear contraseñas se vuelve difícil porque las personas están comenzando a usar un cifrado fuerte, hashes de contraseña más fuertes y es más responsable de las contraseñas. Creo que es por eso que hay tanto interés en descifrar contraseñas. Espero que Windows 7 finalmente se quede con un álamo temblón en el corazón de XP , y estamos comenzando a ver cada vez menos casos de uso del algoritmo de seguridad WEP para redes Wi-Fi, a pesar de que todavía está bastante extendido. Quiero decir, deberíamos trabajar en el problema de proteger las contraseñas del pirateo en lugar de destruir el sistema existente.

Este enfoque realmente mejorará la situación, por lo que quiero centrarme en qué es una sesión de descifrado de contraseñas, qué técnicas se utilizan y qué pasos debe seguir para descifrar las listas de contraseñas.

Quiero centrarme en dos casos de estudio diferentes. En primer lugar, creamos una base de datos de contraseñas para hackear utilizando datos de CISSP , una certificación independiente sobre seguridad de la información. Recolectamos muchas contraseñas en todas partes, pero estas dos fuentes, phpbb.com y webhostingtalk.com , fueron las mejores porque había listas muy grandes de contraseñas en el dominio público.

Por lo tanto, primero hablaremos sobre la piratería de contraseñas de la lista phpbb.com , y luego sobre los resultados de la piratería de webhostingtalk.com . No daré un curso introductorio en CISSP porque conoces el idioma y la terminología. Después de eso, tomaré un breve descanso y puede hacer preguntas relacionadas con la investigación utilizando el programa TrueCrypt , así como hablar sobre algunas frases de contraseña y contraseñas no estándar. Entonces, hablemos sobre los conceptos básicos del descifrado de contraseñas.



Hay dos tipos diferentes de contraseñas y, en consecuencia, dos formas de descifrarlas, y son muy diferentes entre sí. El primero son las contraseñas en línea. Por películas, sabes que es posible que no tengas acceso al sitio si no conoces la contraseña. Por lo tanto, está tratando de llegar allí, seleccionando diferentes nombres de usuario y contraseñas. Lo principal es que los creadores de sitios intentan protegerse de los piratas informáticos con la ayuda de funciones adicionales, por ejemplo, limitando el número de intentos de ingresar datos de autorización.

La segunda forma es descifrar las contraseñas sin conexión cuando descarga un hash de contraseña y descifrarlo en su computadora. Estos son grandes problemas en informática forense, por lo que debe intentar descifrar las contraseñas antes de que los policías irrumpieron en su puerta con una orden de arresto, derribando la puerta. Al mismo tiempo, eliminarán el disco duro en el que se instalará el programa de descifrado TrueCrypt junto con las contraseñas descifradas. Además, piratear contraseñas sin conexión requiere una computadora muy poderosa y mucho tiempo.

De hecho, después de que un atacante hackeó un sitio y descargó todas las contraseñas y nombres de usuario, está limitado solo por el tiempo después del cual puede ser capturado.

La pregunta es por qué un hacker debería descifrar las contraseñas si simplemente puede obtener acceso completo al sitio a través de un enrutador. La respuesta es que las personas en todas partes usan la misma contraseña, por lo que es más fácil acceder a su correo electrónico, cuenta bancaria y cuenta de PayPal .

No hicimos eso. Habiendo descifrado las contraseñas, nunca las usamos para verificación, para acceder a ningún sitio web o a la cuenta de alguien. Digo esto no porque piense que hay muchos agentes federales en la audiencia, sino porque es realmente malo.

Entonces, hay tres pasos diferentes tomados cuando se rompe una contraseña. Quiero diferenciarlos, porque me referiré a ellos más adelante. Tuve problemas en cada una de estas tres etapas.

El primer paso es sobre el descifrado de contraseñas sin conexión. La informática forense supone que ya tiene un hash de contraseña, en nuestro caso, el disco duro completo de la computadora se llenó con estos datos. Entonces, el primer paso que debe tomar es tratar de adivinar qué tipo de contraseña se le ocurrió al usuario. Para hacer esto, use el primer intento, suponga contraseña123 . Luego lo hash y obtienes un conjunto de letras y números 52F8A73082B1290 . En la mayoría de los casos, se utiliza un algoritmo hash MD5 simple y rápido. Después de eso, compara este conjunto con el hash de la contraseña real del usuario que tiene, por ejemplo, 82503CA693453D1 . Si coincide, descifra la contraseña. Pero desde 52F8A73082B1290 ≠ 82503CA693453D1 , intente nuevamente y use la corazonada monkey123 . Repites esto una y otra vez hasta que te aburras y abandones.



Izquierda: cómo lo imaginan los expertos en cifrado.

“Su computadora portátil está encriptada. ¡Creemos un decodificador de un millón de dólares y hackéelo!
"¡No funcionará, es un cifrado de 4096 bits!"
- "¡Maldición! ¡Nuestro plan criminal ha fallado!

Correcto: como suele suceder.

“Su computadora portátil está encriptada. ¡Vamos a darle un trago y vencerlo con esta llave de cinco dólares hasta que nos diga la contraseña! "
"Estoy de acuerdo!"

Hablemos del "entusiasmo" en las contraseñas. Esta información se agrega a la contraseña para complicar su desciframiento. Sucede que dos personas diferentes deciden usar la misma contraseña. En este caso, por ejemplo, puede agregar diferentes nombres de usuario a la contraseña "defcon" , en cuyo caso los hash serán muy diferentes entre sí.



Esto es especialmente importante para las contraseñas que se almacenan en la red. A menudo, las personas agregan su propio nombre de usuario a la contraseña de microsoft como punto destacado, pero en realidad es una mala idea. Porque el "entusiasmo" también protege contra los ataques de búsqueda hash. Por lo general, un pirata informático simplemente copia todos los valores hash de contraseña a la vez, y si necesita descifrar una contraseña, simplemente revisa el hash robado, y esto sucede muy rápidamente. Pero si usa "zest", el pirata informático no podrá hacerlo hasta que compruebe el hash de cada usuario específico en busca de la presencia de "zest" allí.

Suponga que las personas tienen un "giro" para cada contraseña de "microsoft" , entonces el hacker puede no querer crear una tabla completa con nombres de usuario. Sin embargo, él sabe que entre ellos puede haber un nombre muy popular "administrador" , la gente está acostumbrada a confiar en él, por lo tanto, en este caso, un hacker puede lograr el éxito.

Por lo tanto, al crear "aspectos destacados" debe tener en cuenta estas cosas importantes:

  • Esto no es un secreto. Es bueno si mantiene en secreto el principio de crear "entusiasmo" para las contraseñas, pero antes que nada debe garantizar la seguridad de la contraseña;
  • los usuarios no necesitan saber esto. No quiero decir que el usuario no debe saber que las contraseñas están almacenadas en el servidor, quiero decir que el "resaltado" debe ser exclusivo de cada usuario;
  • "Highlight" protegerá si el atacante está dirigido a un solo usuario y no a un montón de contraseñas. En este caso, evita los ataques de búsqueda hash.

Sin embargo, este método no protege al usuario de ataques de otro tipo, y aún debe pensar en cómo descifrar un hash de contraseña relativamente "costoso" para un criminal.

Y ahora vayamos directamente a los problemas de descifrado de contraseñas.



Por lo general, me preguntan qué equipo uso cuando rompo las contraseñas. Tengo una computadora de escritorio con un procesador de doble núcleo a 2,4 GHz, 3 GB de RAM y una tarjeta gráfica NVidia GeForce 8800GTS , que ya tiene 2 años. Este no es un tipo de máquina especial para descifrar contraseñas. También uso este MacBook un poco. Entonces tengo 2 computadoras en total.

Desafortunadamente, después de un par de semanas de investigación, la factura de electricidad aumentó en un 75%.

Es difícil hablar con su compañero de cuarto cuando los enfriadores de su computadora literalmente rugen sin parar durante las últimas 2 semanas. Sin embargo, después de terminar el trabajo, el consumo de energía volvió a la normalidad.

Ahora llevo a cabo casi todas las operaciones de descifrado de contraseñas en una computadora en un laboratorio universitario. Solía ​​usar la generación de diccionarios RainbowCrack Table . Cuando escuche lo que la gente dice sobre usted, que tiene bastidores enteros de algo como Play Station 3 y toda una botnet para descifrar contraseñas, quiere responder: "ya sabes, hombre, solo tengo un laboratorio de Dell". Por lo tanto, cuando considere el modelado de amenazas, debe tenerse en cuenta que un atacante definitivamente puede aportar muchos más recursos. Por ejemplo, piratear un sitio como phpbb.com . Este es un sitio de desarrollo de software phpbb . Fue pirateado el 14 de enero de 2009, y esta lista se publicó en Internet a principios de febrero. El atacante publicó mucha información sobre hashes de contraseñas, nombres de usuario del sitio, cuentas de correo electrónico, así como una descripción muy detallada del ataque en sí.



Fue bastante buena "lectura", y la lista en sí contenía aproximadamente 259 mil hash de contraseñas MD5 sin "zest" y 83 mil contraseñas hash con "zest", que se crearon utilizando el algoritmo de hash phpbb3 . Sin embargo, este es un algoritmo nuevo y bastante raro, por lo que en nuestros estudios solo desciframos las contraseñas con hash MD5 tradicionales. Excluimos las contraseñas con "entusiasmo", porque piratearlas es una tarea que consume demasiado tiempo, y realmente no lo descubrimos. Por lo tanto, nos centramos en la lista de contraseñas MD5 . Entonces, las contraseñas con "zest" están mucho mejor protegidas, y cualquier hacker preferiría lidiar con algo más fácil.

Pero quiero enfatizar una vez más que si eres atacado y se revela tu lista de contraseñas, todavía tienes que "curarla" y percibir el ataque como un evento serio, porque más tarde el atacante puede aprovechar el resultado de su robo.

A continuación, miramos la lista de contraseñas para el sitio webhostingtalk hackeado. Durante una o dos semanas, el hacker usó el descifrado de contraseñas en línea, tratando de descifrar alrededor de 117 mil cuentas. Como resultado, logró obtener 28,635 contraseñas, que representaron el 24% del total. Entonces, después de analizar el resultado, podemos decir que incluso como resultado de un poderoso ataque en línea, un hacker logra descifrar no más de una cuarta parte de todas las contraseñas disponibles.

A continuación, compararé la efectividad del descifrado de contraseñas en línea. Los resultados se toman de http://www.hashkiller.com/ , la mayoría de ellos se aplican a Alemania. Pero Babel Fish lo hace mucho mejor: no solo tienen sus propios foros en línea para descifrar contraseñas, sino que también hacen un seguimiento de la efectividad de la mayoría de las otras comunidades de descifradores. Según las estadísticas, el éxito del pirateo en línea es del 20 al 40% de todas las contraseñas disponibles para los piratas informáticos. Existen herramientas de pirateo MD5 que recopilan hashes de contraseñas en línea de múltiples sitios. Se pueden descargar en este enlace: http://sourceforge.net/projects/md5-utils/ . Actualmente hay 33 sitios donde se pueden utilizar estas utilidades.

Quiero advertirle que existen serios problemas de privacidad, porque si cree que aquellos a quienes envía hashes de contraseñas solo los guardarán para su colección, entonces usted es una persona muy confiable.

Hoy existen varias herramientas populares para descifrar contraseñas.



El más popular es John the Ripper (John the Ripper), es software libre, y lo recomiendo en primer lugar. Pero la razón principal de su popularidad, por la cual está incluso por delante de los programas pagos, es la disponibilidad de código fuente abierto. Si quieres descifrar contraseñas, este programa hará frente a todo lo que quieras. Mi opción favorita en JtR es STDIN . Si recuerda las diapositivas de apertura, en este caso no necesito realizar las etapas 1 y 2, puedo escribir mi propio programa de "adivinanzas" y luego transferir los resultados a JtR . Y descifrará los hash e intentará descifrar contraseñas. «», , , .

, . , , , , . , .

JtR Cain & Able ( ), . JtR , , , .

, JtR :

  • 4 – 38% ;
  • 1 – 62% ;
  • 1 1 – 89%;
  • 98% , 95% MD5 .

, . . , . DefCon , . , 95% MD5 , 2525 , , 2677 , . , .

, , 97%, . , , , . , .

«» , , , , 7,2 . 6% 1 % — , 51% . 5% , .

, . brute-force , . , . , , . , .

, , . , , . , – , brute-force . , «» . .

, Dictionary Attack , . « », , , , , 2 .

, Dictionary Attack . – «», , . , zibra123 , , zibra , . – , 123. , , .

, , , , .



, input-. , brute-force. Yo llamo a este síndrome Síndrome de la mujer loca, que tiene de 50 a 60 gatos en la casa, y lo estropean todo. Por lo tanto, al usar los diccionarios de entrada al crear contraseñas, piense en lo voluminosos que deberían ser y no "infle" excesivamente el vocabulario. Piense en lo que se usa mejor para la seguridad: 1 diccionario o 40.

25:15 min.

Continuación:

Conferencia DEFCON 17. Hackear 400,000 contraseñas, o cómo explicarle a un compañero de cuarto por qué la factura de electricidad ha aumentado. Parte 2


Gracias por quedarte con nosotros. ¿Te gustan nuestros artículos? ¿Quieres ver más materiales interesantes? Apóyenos haciendo un pedido o recomendándolo a sus amigos, un descuento del 30% para los usuarios de Habr en un análogo único de servidores de nivel de entrada que inventamos para usted: toda la verdad sobre VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps de $ 20 o cómo dividir el servidor? (las opciones están disponibles con RAID1 y RAID10, hasta 24 núcleos y hasta 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps hasta diciembre de forma gratuita al pagar por un período de seis meses, puede ordenar aquí .

Dell R730xd 2 veces más barato? ¡Solo tenemos 2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV desde $ 249 en los Países Bajos y los Estados Unidos! Lea sobre Cómo construir un edificio de infraestructura. clase utilizando servidores Dell R730xd E5-2650 v4 que cuestan 9,000 euros por un centavo?

Source: https://habr.com/ru/post/es422731/


All Articles