ahora las paginas que no logren desencryptar una pass saldra el nombre de la pagina con => como que no se pudo (A si queda mejor xD), en la anterior esto no era posible por que no use else en las expresiones regulares, a si que aqui va esta belleza de code
Código: Seleccionar todo
#encoding: utf-8
=begin
.- Reventer MD5 2.0
.-Autor: strup
.-Lenguaje: Ruby
.-Proposito: Crackear contraseñas Encriptadas en MD5
.-14:41 20/01/2013
=end
require 'mechanize'
class Reventer_MD5
def reventar()
for i in(0..16)
form=@indi[0][i].forms.first
form.field_with(:name => @indi[1][i]).value = @has
var=form.click_button.body
if var =~ @indi[2][i]
puts @indi[3][i]+$1.gsub(/Entry not found.|Sorry,|Sorry, we don't have that hash in our database.|we don't have that hash in our database./){$1}
else
puts @indi[3][i]
end
end
rescue Mechanize::ResponseCodeError
puts "Error o mantenimiento en uno de los servidores"
end
end
class Crack_MD5 < Reventer_MD5
def initialize()
puts ">>>Reventer MD5 2.0 by strup<<<".center(80," ")
@mec = Mechanize.new
puts "\aIntroduce EL Hash MD5 a Crackear\n\n"
@has = gets.chomp
@indi=[
[@mec.get('http://md5decryption.com/'),@mec.get('http://md5.thekaine.de/'),@mec.get('http://underc0de.net/md5cracker/'),@mec.get('http://www.md5.net/cracker.php/'),@mec.get('http://md5.noisette.ch/'),@mec.get('http://www.md5online.org/'),@mec.get('http://md5.my-addr.com/md5_decrypt-md5_cracker_online/md5_decoder_tool.php'),@mec.get('http://md5hood.com/'),@mec.get('http://isc.sans.edu/tools/reversehash.html'),@mec.get('http://www.onlinehashcrack.com/'),@mec.get('http://www.stringfunction.com/md5-decrypter.html'),@mec.get('http://md5online.net/'),@mec.get('http://md5.myinfosec.net/'),@mec.get('http://netmd5crack.com/cracker/'),@mec.get('http://md5.rednoize.com/'),@mec.get('http://www.md5-lookup.com/'),@mec.get('http://askcheck.com/')],
[/hash/,/hash/,/hash/,/hash/,/hash/,/md5/,/md5/,/md5/,/text/,/hashToSearch/,/string/,/pass/,/md5hash/,/InputHash/,/q/,/q/,/reverse/],
[/Text: <\/b>(.*?)<\/font>/m,/<h2><b>Found it:<\/b> "(.*?)"<\/h2>/m,/www.bigtrapeze.com: <b>(.*?)<\/b>/m,/32" value="(.*?)"\/>/m,/"text" value="(.*?)"\/>/m,/Found : <b>(.*?)<\/b>/m,/Hashed string<\/span>: (.*?)<\/div>/m,/"result_true">(.*?)<\/div>/m,/ = (.*?) /m,/Plain text : <b style="letter-spacing:1.2px">(.*?)<\/b>/m,/textarea_md5_decrypter">(.*?)<\/textarea>/m,/pass : <b>(.*?)<\/b>/m,/color=green>(.*?)<\/font>/m,/[a-f0-9]<\/td><td class="border">(.*?)<\/td><\/tr><\/table>/m,/<div id="result" >(.*?)<\/div>/m,/<td width="250">(.*?)<\/td>/m,/<a href="\/hash\/(.*?)" title=/m],
["\n\amd5decryption.com => ","\amd5.thekaine.de => ","\awww.bigtrapeze.com => ","\awww.md5.net => ","\amd5.noisette.ch => ","\awww.md5online.org => ","\amd5.my-addr.com => ","\amd5hood.com => ","\aisc.sans.edu => ","\awww.onlinehashcrack.com => ","\awww.stringfunction.com => ","\amd5online.net => ","\amd5.myinfosec.net => ","\anetmd5crack.com => ","\amd5.rednoize.com => ","\awww.md5-lookup.com => ","\aaskcheck.com => "],
[@mec.get('http://c0llision.net/webcrack'),@mec.get('http://md5pass.info/')]
]
end
def crackear()
form=@indi[4][0].forms.first
form.field_with(:id => /hash__input_/).value = @has
var=form.click_button.body
if var =~ /<td class="plaintext">(.*?)<\/td>/m
puts "\ac0llision.net => "+$1
else
puts "\ac0llision.net => "
end
def romper()
@indi[4][1].form_with(:action => '') do |form|
form.field_with(:name => /hash/).value = @has
var=form.click_button.body
if var =~ /Password - <b>(.*?)<\/b>/m
puts "\amd5pass.info => "+$1
else
puts "\amd5pass.info => "
end
end
def crunch()
[email protected]("http://md5.hashcracking.com/search.php?md5=#{@has}").body.inspect
if var =~ /[a-f0-9] is (.*?)"/
puts "\amd5.hashcracking.com => "+$1
else
puts "\amd5.hashcracking.com => "
end
end
end
end
def crack()
puts "\amd5.gromweb.com => "[email protected]("http://md5.gromweb.com/query/#{@has}").body
rescue
puts "\amd5.gromweb.com => "
end
def zash()
if @mec.get("http://md5-db.de/#{@has}.html").body =~ /<\/strong><ul><li>(.*?)<\/li>/m
puts "\amd5-db.de => "+$1
end
rescue
puts "\amd5-db.de => "
end
end
clase=Crack_MD5.new
clase.reventar
clase.crackear
clase.romper
clase.crunch
clase.crack
clase.zash
puts "\nProceso Terminado\n\nPulsa Enter para salir"
gets
Code en pastebin
[Enlace externo eliminado para invitados]
[Enlace externo eliminado para invitados]
una muestra del resultado final
[spoiler]
[/spoiler]

espero os guste, un saludo