Que lenguaje de programación es bueno para fuerza bruta

Iniciado por Benjamin Clay, 20 Agosto 2017, 01:02 AM

0 Miembros y 1 Visitante están viendo este tema.

Benjamin Clay

Necesito saber que lenguaje es bueno para realizar ataques de fuerza bruta

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Serapis

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.

De{M}iuM

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.

Skali

#4
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:



Referencia:
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 (python) [Seleccionar]
#!/usr/bin/python2  
 
from hashlib import md5  
import sys  
import string  
 
original = sys.argv[1].split(':')  
_md5 = original[0]  
_salt = original[1]  
print 'Trying to crack ' + _md5 + ' SALTED with ' + _salt + '... '  
for line in sys.stdin:  
   line = line.strip()  
   attempt = md5(line + _salt).hexdigest()  
   if(attempt == _md5):  
       print _md5 + ':' + _salt + ' --- Password Found: ' + line  
       print 'Hapy hacking!'  
       sys.exit(0)  
print 'Password not found : - ('  
sys.exit(1)


Referencia:
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!