Saludos foro, coji ayer y decidir corregir algunos fallos de la anterior version, y optimizar el code mediante un bucle y un array bidimensional,
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]


una muestra del resultado final

[spoiler]
Imagen
[/spoiler]


espero os guste, un saludo
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
Responder

Volver a “Fuentes”