RSMangler

Os voy a hablar de rsmangler. Es un pequeño script de ruby (acabo de mirar, gedit dice 226 líneas) creado por Robin Wood (robin.wood@randomstorm.com), que coge una lista de palabras y las mezcla, las pone en minúsculas, en mayúsculas, sólo la primera letra en mayúsculas, les añade fechas, números, caracteres especiales, los pone en l33t.

Vamos, les hace todo tipo de birguerías. Así de una lista de 5 palabras, puedes conseguir una de 100.000 😀 .

Aquí los links al programa:
http://www.digininja.org/projects/rsmangler.php
http://www.randomstorm.com/rsmangler-security-tool.php

Si queremos utilizar todas las opciones, que por defecto aparecen activadas. Es un poco extraño, al revés que en la mayoría de las aplicaciones, tienes que poner los comandos para desactivarlos. Pero claro, si la mayoría de las veces los vas a tenerlos activados y vas a hacer un programa, ¿no parece mejor hacer que estén activados por defecto? A mí, desde luego que sí, y a Robin parece que también.

Como decía, si queremos tener todas las opciones activadas, hay un límite a la cantidad de palabras que le podemos pasar. Por defecto viene como 5. Esto tiene su razón. Le escribí varios correos a Robin (es buena gente, se ve interesado a ayudar) y me explicó el por qué. Para empezar, el programa va guardando todo en memoria y sólo al final lo pasa a salida (ya sea pantalla, algo poco productivo, o un archivo). Luego hay una parte del código (la que hace permutaciones) que es la que más memoria chupa:

wordlist = []

if perms
    for i in (1..file_words.length)
        file_words.permutation(i) { |c| wordlist << c.to_s}
    end
else
	wordlist = file_words
end

Vale, antes había publicado una lista de cantidad de palabras y ram que consumirían. Pero me había equivocado, pues como me ha dicho Robin 2 o 3 veces, el crecimiento es exponencial. La cosa es que mis 3GB de ram no han podido con una lista inicial de 6 palabras y todas las opciones activas, pero sí con 5. Más que predecir es probar, pues cualquiér predicción sólo es eso hasta que lo pruebas.

Para poder utilizar más de 5 palabras podemos utilizar la opción “–force”, quedando el comando así:

cat lista_de_palabras_inicial.lst | ./rsmangler.rb -- --force > nueva_lista_de_palabras.lst

El formato *.lst es un archivo de texto plano, lo prefiero frente a *.txt porque indica lo que contiene. “–” indica que no hay archivo de entrada, porque se utiliza un “pipe” (no se como es eso en español).

Aunque el creador del rsmangler no lo indica directamente (si se deja inferir viendo las diferentes opciones), hay otra forma de ejcutar el script. Fue la primera que utilicé, pues me parece más intuitiva. El ejemplo anterior quedaría:

./rsmangler.rb --file lista_de_palabras_inicial.lst --force > nueva_lista_de_palabras.lst

O utilizando los parámetros cortos:

./rsmangler.rb -f lista_de_palabras_inicial.lst --force > nueva_lista_de_palabras.lst

E incluso podéis añadir un parámetro corto para “–force”, porque por defecto no tiene ninguno. Hay que editar la línea 42. La línea es así:

[ '--force', GetoptLong::NO_ARGUMENT ],

Hay que dejarla así:

[ '--force', '-F', GetoptLong::NO_ARGUMENT ],

Y el la ejecución nos quedaría:

./rsmangler.rb -f lista_de_palabras_inicial.lst -F > nueva_lista_de_palabras.lst

Otra forma de poder utilizar más de 5 palabras – mi ram, por ejemplo, me permite utilizar listas iniciales de 6 palabras – es editar la línea 194, donde se encuentra el if que hace la comprobación. Es tan fácil como cambiar el 5 por el numerito que queramos. Ojo, si tras ejecutar el programa obtienes una lista vacía y un cierre del programa con un mensaje del tipo “killed (número)”, no es que no funcione, es que no tienes ram suficiente para esa cantidad de palabras.

Si desactivamos el parámetro de las permutaciones, podemos pasar la cantidad de palabras que queramos. Yo pasé 205, Robin hizo el calculo de cuántas palabras saldrían con permutaciones activadas. Piensa en un número grande, ¿ya? Pues más grande que eso.

Tengo más cosas que contar sobre este programa, pero como el post me está quedando más largo de lo esperado, seguiré en otro.

Anuncios

2 pensamientos en “RSMangler

  1. hola …

    tengo un problema, ya cuando se crea el archivo nueva_lista_de_palabras.lst me visualiza en este archivo las opciones del rsmangler, con el mensaje inicial

    Input file specified

    pero le doy la ruta correcta

    rsmangler.rb --file wordlist.txt --force > nueva_lista_de_palabras.txt

    Por favor ayuda— trabajo bajo windows7 … Entiendo que talvez estoy especificando mal la ruta del archivo wordlist.txt

    • Hola Emilio. Ahora que lo pienso, ¿qué shell utilizas en windows? Y más importante todavía, ¿actúa > de la misma manera en esa shell de windows que en bash?

      Si utilizas CMD, prueba instalándote powershell, si no me equivoco está disponible en el DVD de instalación.

      Si ya utilizas powershell, prueba sustituyendo > por >>.

      Comentame el resultado y te seguiré intentando ayudar.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s