Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: Benjamin Clay en 20 Agosto 2017, 01:02 am



Título: Que lenguaje de programación es bueno para fuerza bruta
Publicado por: Benjamin Clay en 20 Agosto 2017, 01:02 am
Necesito saber que lenguaje es bueno para realizar ataques de fuerza bruta


Título: Re: Que lenguaje de programación es bueno para fuerza bruta
Publicado por: engel lex en 20 Agosto 2017, 01:58 am
ninguno... la fuerza bruta nunca es un metodo util, sin importar si la eficiencia es 100 veces más alta aún la escala es ridiculamente dificil...

igual respoendiendo la pregunta, C (no C++) C con manejo de memoria a más bajo nivel posible y asegurando las operaciones  mas atómicas por ciclo


Título: Re: Que lenguaje de programación es bueno para fuerza bruta
Publicado por: Serapis en 20 Agosto 2017, 11:13 am
Ni siquiera ensamblador.

La fuerza bruta está ahí, solo para entender, para aprender las cosas, no para ser aplicada como recurso. La excepción es cuando se sabe a fé cierta que un sistema tiene una baja tasa combinatoria (como los 4 dígitos de las tarjetas de crédito) y el sistema no tiene alertas de intrusión.


Título: Re: Que lenguaje de programación es bueno para fuerza bruta
Publicado por: De{M}iuM en 28 Agosto 2017, 20:09 pm
Depende de qué tipo de fuerza bruta quieras aplicar. Yo apostaría por emplear un lenguaje de muy bajo nivel, si no dominas ensamblador al menos C o C++ si prefieres trabajar con objetos. La clave es aprovechar el repertorio SIMD para ejecutar una misma instrucción sobre un conjunto de datos (arquitecturas vectoriales) y si encima eres capaz de apoyarte sobre CUDA y otras tecnologías para hacer uso de tu GPU pues pata negra, de hecho es lo que se utiliza casi siempre para reventar cifrado por fuerza bruta. Eso o montarte un cluster de máquinas programando con OpenMPI y C++, Fortran... a gusto del consumidor.

s2.


Título: Re: Que lenguaje de programación es bueno para fuerza bruta
Publicado por: Skali en 12 Septiembre 2017, 01:23 am
Depende que quieras crackear, de todas formas ya existen herramientas para realizar la labor de cracking. Por ejemplo si dispones del hash a crackear (hash de un wifi WPA obtenido del handshake, hashes de usuarios de linux conseguidos en /etc/shadow, hashes obtenidos de BD hackeadas via SQL injection, etc) podrías utilizar la herramienta john (la más clásica), sino tenes hashcat que es mas moderna y podes emplear la GPU para crackear más rápido... Como verás no se trata de elegir un lenguaje de programación, sino de elegir un diccionario apropiado para la víctima, ya que probar todas las combinaciones posibles (fuerza bruta pura) es algo que puede llevar muchos años, y a su vez contar con buen hardware. Por ejemplo, si tenes mucho dinero podrías construir algo como ésto:

(https://static1.squarespace.com/static/555e03d8e4b0d64b51005ec7/589e3e2b5016e1c35a19f17a/58a1ed50b8a79bca0105a4d4/1487007081464/KrakenBuild-23.jpg?format=1000w)

Referencia:
https://www.shellntel.com/blog/2017/2/8/how-to-build-a-8-gpu-password-cracker (https://www.shellntel.com/blog/2017/2/8/how-to-build-a-8-gpu-password-cracker)


Si quieres hacer un script propio para crackear determinado hash sin utilizar john/hashcat, podrías implementarlo en casi cualquier lenguaje supongo... Aca te dejo un ejemplo de un script para crackear un password de joomla escrito en python:

Código
  1. #!/usr/bin/python2  
  2.  
  3. from hashlib import md5  
  4. import sys  
  5. import string  
  6.  
  7. original = sys.argv[1].split(':')  
  8. _md5 = original[0]  
  9. _salt = original[1]  
  10. print 'Trying to crack ' + _md5 + ' SALTED with ' + _salt + '... '  
  11. for line in sys.stdin:  
  12.    line = line.strip()  
  13.    attempt = md5(line + _salt).hexdigest()  
  14.    if(attempt == _md5):  
  15.        print _md5 + ':' + _salt + ' --- Password Found: ' + line  
  16.        print 'Hapy hacking!'  
  17.        sys.exit(0)  
  18. print 'Password not found : - ('  
  19. sys.exit(1)

Referencia:
https://blog.zerial.org/seguridad/joomla-password-cracker/ (https://blog.zerial.org/seguridad/joomla-password-cracker/)

Sino, en caso de que quieras crackear una contraseña cuyo hash no dispongas, por ejemplo la clave de un usuario SSH, o FTP, podrías hacer un cracking a través de la red con las herramientas hydra, ncrack o medusa, en éstos casos, el hash de cada contraseña de tu wordlist es computado en el servidor remoto y no en tu PC/cluster, por lo tanto éste tipo de ataque puede resultar muuuy lento ya que la velocidad depende de la red + la CPU del servidor que ataquemos. Podes aumentar un poco la velocidad utilizando varios threads, pero de todas formas ésta técnica pocas veces resulta exitosa... Necesitarías conocer bien a la víctima y armar un diccionario especialmente preparado para intentar crackearlo, y aun asi lo más probable (por mucho) es que la contraseña no esté en tu wordlist...

Espero haber ayudado. Saludos!