Página 1 de 1

[Ruby] Reventer MD5 by strup

Publicado: 05 Ene 2013, 03:04
por strup
Saludos, aqui os traigo esta obra de arte que hice con la gema mechanize, lo que hace es interactuar con los formularios web para crackear contraseñas encryptadas en md5, muy util para contraseñas encryptadas que usan para los rars, y para los que se dedican a las auditorias web, que este año me metere ya de lleno en la auditoria web, recuerden que para usarlo solo tienen que bajar la gema mechanize desde el cmd (solo para los que tengan el interprete de ruby instalado)
commando:
gem install mechanize --version 2.5.1
y el code:
#encoding utf-8
=begin
*********************************************************
*Reventer MD5 											*
*Autor: Strup											*
*Lenguaje: Ruby											*
*Proposito: Reventar contraseñas encryptadas en MD5 	*	
*2:46 05/01/2013										*
*********************************************************
=end
require 'mechanize'

puts "Introduce el codigo MD5 a crackear"

@hash = gets.chomp

@mec=Mechanize.new

def pag1()
	[email protected]('http://www.md5online.org/')
	form=link.forms.first
	form.field_with(:name => /md5/).value = @hash
	var=form.click_button.body
	if var =~ /Found : <b>(.*?)<\/b>/m
		puts "\n"+'www.md5online.org => '+$1
	end
end

def pag2()
	[email protected]('http://md5decryption.com/')
	form=link.forms.first
	form.field_with(:name => /hash/).value = @hash
	var=form.click_button.body
	if var =~ /Text: <\/b>(.*?)<\/font>/m
		puts 'md5decryption.com => '+$1
	end
end

def pag3()
	[email protected]('http://isc.sans.edu/tools/reversehash.html')
	form=link.forms.first
	form.field_with(:name => /text/).value = @hash
	var=form.click_button.body
	if var =~ / = (.*?) /m
		puts 'isc.sans.edu => '+$1.gsub(/_gaq/) {$1}
	end
end

def pag4
	[email protected]('http://md5.thekaine.de/')
	form=link.forms.first
	form.field_with(:name => /hash/).value = @hash
	var=form.click_button.body
	if var =~ /<h2><b>Found it:<\/b> "(.*?)"<\/h2>/m
		puts 'md5.thekaine.de => '+$1
	end
end

def pag5()
	[email protected]('http://underc0de.net/md5cracker/')
	form=link.forms.first
	form.field_with(:name => /hash/).value = @hash
	var=form.click_button.body
	if var =~ /md5.rednoize.com: <b>(.*?)<\/b>|md5.hashcracking.com: <b>(.*?)<\/b>|www.bigtrapeze.com: <b>(.*?)<\/b>/m
		puts 'md5.rednoize.com => '+$1+"\n"+'md5.hashcracking.com => '+$1+"\n"+'www.bigtrapeze.com => '+$1
	end
	rescue
end

def pag6()
	[email protected]('http://www.md5-lookup.com/')
	form=link.forms.first
	form.field_with(:name => /q/).value = @hash
	var=form.click_button.body
	if var =~ /<td width="250">(.*?)<\/td>/m
		puts 'http://www.md5-lookup.com => '+$1
	end
end

def pag7()
	[email protected]("http://md5.gromweb.com/query/#{@hash}")
	puts 'md5.gromweb.com => '+link.body
	rescue
end

def pag8()
	[email protected]('http://www.onlinehashcrack.com/')
	form=link.forms.first
	form.field_with(:name => /hashToSearch/).value = @hash
	var=form.click_button.body
	if var =~ /Plain text : <b style="letter-spacing:1.2px">(.*?)<\/b>/m
		puts 'www.onlinehashcrack.com => '+$1
	end
end

def pag9()
	[email protected]('http://www.stringfunction.com/md5-decrypter.html')
	form=link.forms.first
	form.field_with(:name => /string/).value = @hash
	var=form.click_button.body
	if var =~ /textarea_md5_decrypter">(.*?)<\/textarea>/m
		puts 'www.stringfunction.com => '+$1
	end
end

def pag10()
	[email protected]('http://md5online.net/')
	form=link.forms.first
	form.field_with(:name => /pass/).value = @hash
	var=form.click_button.body
	if var =~ /pass : <b>(.*?)<\/b>/m
		puts 'md5online.net => '+$1
	end
end

def pag11()
	[email protected]('http://md5.my-addr.com/md5_decrypt-md5_cracker_online/md5_decoder_tool.php')
	form=link.forms.first
	form.field_with(:name => /md5/).value = @hash
	var=form.click_button.body
	if var =~ /Hashed string<\/span>: (.*?)<\/div>/m
		puts 'md5.my-addr.com => '+$1
	end
end

def pag12()
	[email protected]('http://md5-db.de/')
	form=link.forms.first
	form.field_with(:name => /md5/).value = @hash
	var=form.click_button.body
	if var =~ /<\/strong><ul><li>(.*?)<\/li>/m
		puts 'md5-db.de => '+$1
	end
	rescue
end

def pag13()
	[email protected]('http://www.md5.net/cracker.php/')
	form=link.forms.first
	form.field_with(:name => /hash/).value = @hash
	var=form.click_button.body
	if var =~ /32" value="(.*?)"\/>/m
		puts 'www.md5.net => '+$1
	end
end

def pag14()
	[email protected]('http://md5.myinfosec.net/')
	form=link.forms.first
	form.field_with(:name => /md5hash/).value = @hash
	var=form.click_button.body
	if var =~ /color=green>(.*?)<\/font>/m
		puts 'md5.myinfosec.net => '+$1
	end
end

def pag15()
	[email protected]('http://askcheck.com/')
	form=link.forms.first
	form.field_with(:name => /reverse/).value = @hash
	var=form.click_button.body
	if var =~ /<a href="\/hash\/(.*?)" title=/m
		puts 'askcheck.com => '+$1
	end
	rescue
end

def pag16()
	[email protected]('http://md5hood.com/')
	form=link.forms.first
	form.field_with(:name => /md5/).value = @hash
	var=form.click_button.body
	if var =~ /"result_true">(.*?)<\/div>/m
		puts 'md5hood.com => '+$1
	end
end

def pag17()
	[email protected]('http://md5.noisette.ch/')
	form=link.forms.first
	form.field_with(:name => /hash/).value = @hash
	var=form.click_button.body
	if var =~ /"text" value="(.*?)"\/>/m
		puts 'md5.noisette.ch => '+$1
	end
end

def pag18()
	[email protected]('http://md5pass.info/')
	link.form_with(:action => '') do |form|
		form.field_with(:name => /hash/).value = @hash
		var=form.click_button.body
		if var =~ /Password - <b>(.*?)<\/b>/m
			puts 'md5pass.info => '+$1
		end
	end
end

def pag19()
	[email protected]('http://c0llision.net/webcrack')
	form=link.forms.first
	form.field_with(:id => /hash__input_/).value = @hash
	var=form.click_button.body
	if var =~ /<td class="plaintext">(.*?)<\/td>/m
		puts 'c0llision.net => '+$1
	end
end

def pag20()
	[email protected]('http://netmd5crack.com/cracker/')
	form=link.forms.first
	form.field_with(:name => /InputHash/).value = @hash
	var=form.click_button.body
	if var =~ /[a-f0-9]<\/td><td class="border">(.*?)<\/td><\/tr><\/table>/m
		puts 'netmd5crack.com => '+$1
	end
end

begin
	pag1
	pag2
	pag3
	pag4
	pag5
	pag6
	pag7
	pag8
	pag9
	pag10
	pag11
	pag12
	pag13
	pag14
	pag15
	pag16
	pag17
	pag18
	pag19
	pag20
end
puts "\nPresiona Enter para Salir"
gets
imagen de los resultados

[spoiler]
Imagen
[/spoiler]


como pueden ver busca en una veintena de bases de datos, dando practicamente con cualquier contraseña encryptada que se introduzca, espero os guste el code, un saludo y buen uso

Edito:
veo que ahi un pekeño fallo con la etiqueta de la sintaxys
<!-- e --><a href="mailto:[email protected]">[email protected]</a><!-- e -->('[Enlace externo eliminado para invitados]')
sale asi
cuando en verdad es
[email protected]('[Enlace externo eliminado para invitados]')
aver si pueden arreglarlo

Re: [Ruby] Reventer MD5 by strup

Publicado: 05 Ene 2013, 05:19
por KHC
Lindo pero no se por que no usaste una clase y de hay heradas a las demás para que sea mas elegante el codigo y no repitas tanto el def! Saludos!

Re: [Ruby] Reventer MD5 by strup

Publicado: 06 Ene 2013, 10:51
por strup
cierto, pero no lo pense en ese momento