2012/06/09

more linkedin

He utilizado un diccionario de 53 millones y no he hallado ni una clave nueva, así que el diccionario del atacante original es más grande que el mio (probablemente) o me estoy equivocando en el proceso (probablemente)

Para ejecutar todo esto es conveniente cerrar xwindows y abrir tres terminales. Para alivio sicológico se puede tener un top y un watch ls -l

El problema de usar estos scripts sencillos y batching es que no se pueden aprovechar los multicores. Para la generación de los hashes, que es lo que hace hashes_and_pairs.rb tengo por ahi una solución con un cierto costo de setup, que no justifica ante los cinco minutos de unicore.


Comencemos:  a partir de un diccionario, genera dos archivos, uno con cada hash y otro con el password y el hash
As I've used a 53 millon entries dictionary with no results, it seems that the original attacker has a bigger one (probably) or I am making a mistake (probably too)

As this process is memory hungry, it's wise to close xwindows and work with three naked terminal. You can use top and watch ls -l to monitor the process

These simple scripts do not make use of multicore capabilities. For the hash generation there is a setup that can help.

First step: generate two files, one with hashes from our dictionary and the other with the hash and the password
ruby hashes_and_pairs.rb #(5 min)

#!/usr/bin/ruby
require "digest/sha1"

dict="full_list_uniq.txt"

input = File.new(dict, "r")
hashes = File.new("dict_hashes.txt", "w")
pairs = File.new("dict_pairs.txt","w")
while (pass = input.gets)
    pass = pass.chomp
    hash = Digest::SHA1.hexdigest(pass || "")
    hashes.puts "#{hash}"
    pairs.puts "#{hash} #{pass}"
end
hashes.close
pairs.close


Tomamos la lista de hashes de linkedin junto a la lista de hashes del diccionario y obtenemos los duplicados. Es vital que el diccionario original no tenga duplicados.Find duplicates between the linkedin hashes and our hashes. It's very important that there are no duplicates in our hashes
cat remaining.txt dict_hashes.txt | sort | uniq -d > found_hashes.txt #(6 min)
Luego buscamos los hashes encontrados en found.txt dentro de dict_pairs.txt...Search found hashes in our hash/password list
grep dict_pairs.txt -F -f found_hashes.txt > found_pairs.txt
No olvidar el -F, hace mucha diferencia

Si found_hashes.txt fuera muy largo, se podria hacer
Don't forget the -F, it makes a big difference

If the found list is too big, you can split it
split -l 10000 found_hashes.txt chunk_


for patterns in chunk_*; do 
   grep dict_pairs.txt -F -f $patterns >> found_pairs.txt
done
Como ya habia mencionado, no he conseguido ningún resultado nuevo.  As I've said before, there were no results

No hay comentarios:

Publicar un comentario