Thursday, July 21, 2011

RSMangler personalizado para generar mas palabras h4x0r

El otro dia uno de los colegas en Open-Sec me hablaba sobre su fascinacion con CUPP (http://www.remote-exploit.org/?p=546) y como hacia algo que RSMangler no hace por default : generar palabras en h4x0r y someterlas a las mismas combinaciones que hace con las palabras normales.

Cuando uno pasa palabras de entrada a RSMangler y le pide generar palabras h4x0r a partir de las originales (opcion leet que esta activa por default), solamente genera una palabra h4x0r por cada palabra original y no la combina con otros valores como hace con las palabras originales y normales (numeros, letras, años, caracteres especiales). CUPP si lo hace.

Entonces, aparecio el reto y, en realidad, solo posteo esto para que se aprecie el valor del software abierto que permite que uno siga usando su aplicacion favorita solamente haciendo pequeños cambios al codigo fuente (en este caso es mas patente aun porque RSMangler es un script en Ruby).

La seccion de programa que hay que adicionar antes del loop de generacion es :

file_words.each { |y|
wordlist << y.gsub(/e/, "3").gsub(/a/, "4").gsub(/o/, "0").gsub(/i/, "1").gsub(/l/, "1")
}

wordlist.each { |x|
results << x

results << x+x if double
results << x.reverse if reverse
results << x.capitalize if capital
results << x.downcase if lower
results << x.upcase if upper
results << x.swapcase if swap
results << x + "ed" if ed
results << x + "ing" if ing

if common
(Continua el loop de generacion).

Como se ve, genera las palabras h4x0r adicionandolas a la lista original de forma que cuando entra al loop de permutaciones y generacion de palabras, tambien son afectadas, es decir, combinadas con los otros valores. De esta forma, esta funcionalidad hace lo mismo que CUPP.

Tambien es importante resaltar, por si no se aprecio, que la porcion de codigo necesaria ya se encuentra en el programa y solamente se aplica antes del loop de generacion.

No comments: