Shard una herramienta para comprobar si se utiliza la misma contraseña en varios sitios

Precisamente hoy vemos Shard, una herramienta para que los atacantes podamos detectar contraseñas compartidas desde la línea de comandos.

Si hay algo imperativo en la sociedad digital actual es NO REUTILIZAR la misma contraseña para distintos servicios. La razón es simple: si uno de ellos es comprometido por ende cualquiera podrá obtener acceso al resto. No obstante, ya sea por la dificultad de recordar tantas contraseñas o por desconocimiento pura vagancia, son muchos los usuarios que todavía ponen la misma contraseña en varios de sus perfiles en redes sociales como Facebook, Twitter, LinkedIn, etc.

Se trata de un fat jar (contiene todas las clases necesarias para hacerlo lo más portable posible) que si quieren pueden compilar ustedes mismos con sbt assembly, y también tiene una segunda implementación en python.

Uso

Sólo tenemos que indicar las credenciales a comprobar y la herramienta automatizará el proceso:

$ java -jar shard-1.2.jar -u username-here -p password-here
21:16:25.950 [+] Running in single credential mode
21:16:30.302 [+] username-here:password-here - Reddit, Instagram

También es posible probar múltiples credenciales (ummm leaks…) indicando un fichero de texto que contenga cada línea con el formato “username”:”password”. Incluso se puede personalizar el formato con la opción –format.

$ java -jar shard-1.2.jar -f /tmp/creds.txt
21:16:39.501 [+] Running in multi-credential mode
21:16:39.516 [+] Parsed 2 credentials
21:16:42.794 [+] username1:password1 - Reddit, Instagram
21:16:45.189 [+] username2:password2 - Facebook, LinkedIn, Twitter

Módulos

Actualmente Shard soporta los siguientes módulos:

$ java -jar shard-1.2.jar -l
Available modules:
        Facebook
        LinkedIn
        Reddit
        Twitter
        Instagram

Aunque si quieren pueden  añadir sus propios módulos fácilmente creando una nueva clase heredada de AbstractModule y añadiendo el módulo a ModuleFactory.
El AbstractModule tiene un método abstracto:

def tryLogin(creds: Credentials): Boolean

Este método toma un objeto de credenciales y devuelve un valor booleano que indica un inicio de sesión correcto. Se recomienda el uso de la TwitterModule como plantilla.

Dependencias

JSoup se utiliza para la comunicación HTTP y análisis de HTML
spray-json se utiliza para el manejo de JSON

Github: https://github.com/philwantsfish/shard

Shadow77
#HackNic

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *