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


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.

Y precisamente hoy vemos Shard, una herramienta para que los atacantes podamos detectar contraseñas compartidas desde la línea de comandos. Se trata de un fat jar (contiene todas las clases necesarias para hacerlo lo más portable posible) que si queréis podéis compilar vosotros 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 soporta los siguientes módulos:
$ java -jar shard-1.2.jar -l
Available modules:
        Facebook
        LinkedIn
        Reddit
        Twitter
        Instagram
Aunque si queréis podéis añadir vuestros 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: [Enlace externo eliminado para invitados]

Fuente: [Enlace externo eliminado para invitados]
¿Cómo se sabe nada acerca de Java prefiero esperar a que los comentarios de los que entienden, sin embargo, gracias a esta colaboración a través del foro.
"Concentrarse en las fortalezas, reconocer las debilidades, las oportunidades y tomar la guardia contra las amenazas."

―Sun Tzu
Parece increible que este tema tenga tan poco movimiento, gracias por compartir esta herramienta tan útil que al menos yo la desconocia.
Habla conmigo en ICQ; 702402114
Responder

Volver a “Troyanos y Herramientas”