Técnicas simples
Introduccion
Los métodos de fuerza bruta se caracterizan por realizar pruebas sucesivas enumerando todos los posibles candidatos para una solucion, verificando cual o cuales combinaciones satisfacen el requerimiento. Su eficiencia es reducida y esta fuertemente ligada al dominio sobre el que se va a trabajar y la capacidad de procesamiento de la máquina que se utilice para ejecutar el ataque.
Tipos de ataque
- Basado en diccionario:
En los ataques de fuerza bruta basados en diccionario, se utiliza un conjunto pre generado de datos, que pueden ser contraseñas, pares usuario/contraseña, rutas de acceso, etc, para maximizar la eficiencia en cuestion de tiempo restringiendo el conjunto de posibles soluciones sobre el que se va a trabajar. Puede ser usado para realizar un sondeo preliminar, pero su aprovechamiento tambien dependera del conocimiento que se tenga sobre el objetivo.
Un ejemplo de esto podría ser utilizar un diccionario de rutas y nombres de carpetas comunes para realizar una búsqueda de archivos en un sitio web. Si bien es posible crear una herramienta propia, a medida de las necesidades, existen diversas herramientas ya programadas, como por ejemplo Knock. [1]
- Tradicionales
En los ataques de fuerza bruta tradicionales, se generan las combinaciones a probar mediante un programa o script que lo haga automáticamente. Aunque utilizar un programa para generar estas combinaciones puede parecer sencillo, enumerar todas las posibles combinaciones a veces resulta imposible, por una cuestión de tiempo, dependiendo el objetivo buscado.
En este caso, conocer las restricciones posibles que existan sobre los datos que queremos averiguar nos permitira maximizar la eficiencia en cuestion de tiempo. Por ejemplo, si se quisiese averiguar una contraseña mediante este metodo y se supiese de antemano que solo puede estar compuesta por caracteres numericos, de longitud entre 6 y 8 caracteres, estamos restringiendo efectivamente el dominio sobre el que tenemos que explorar. Para visualizar mejor esta situacion, teniendo contraseñas solo numericas, de ocho caracteres de longitud, existiran 100.000.000 combinaciones posibles de contraseñas, mientras que si la longitud es de cuatro caracteres, las combinaciones posibles se reducen a 10.000.
Herramientas
La unica mencionada aqui es
- [1] KnockPy: Herramienta creada en python diseñada para enumerar subdominios en un host objetivo determinado a partir de un diccionario. Permite usar tanto el diccionario incluido por defecto, como diccionarios creados por el usuario.
Se encuentra disponible https://github.com/guelfoweb/knock