Un simple script en Ruby para crackear un hash MD5.
Version consola :
#!usr/bin/ruby
#MD5 Cracker 0.2
#(C) Doddy Hackman 2015
require "open-uri"
require "net/http"
# Functions
def toma(web)
begin
return open(web, "User-Agent" => "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0").read
rescue
return "Error"
end
end
def response_code(web)
begin
return Net::HTTP.get_response(URI(web)) .code
rescue
return "404"
end
end
def tomar(web,arg)
begin
headers = {"User-Agent" => "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0"}
uri = URI(web)
http = Net::HTTP.new(uri.host, uri.port)
return http.post(uri.path,arg, headers).body
rescue
return "Error"
end
end
def crack(md5)
print "\n[+] Cracking ...\n\n"
code = tomar("http://md5online.net/index.php","pass="+md5+"&option=hash2text&send=Submit")
if code=~/pass : <b>(.*?)<\/b>/
password = $1
print "[+] md5online.net -> "+password+"\n"
else
print "[-] md5online.net -> Not Found" + "\n"
end
code = tomar("http://md5.my-addr.com/md5_decrypt-md5_cracker_online/md5_decoder_tool.php","md5="+md5)
if code=~/<span class='middle_title'>Hashed string<\/span>: (.*?)<\/div>/
password = $1
print "[+] md5.my-addr.co -> "+password+"\n"
else
print "[-] md5.my-addr.co -> Not Found" +"\n"
end
code = tomar("http://md5decryption.com/index.php","hash="+md5+"&submit=Decrypt It!")
if code=~/Decrypted Text: <\/b>(.*?)<\/font>/
password = $1
print "[+] md5decryption.com -> "+password+"\n"
else
print "[-] md5decryption.com -> Not Found"+"\n"
end
print "\n[+] Finished"
end
def uso
print "\n[+] Sintax : ruby md5cracker.rb <md5>\n"
end
def head
print "\n\n-- == MD5 Cracker 0.2 == --\n\n"
end
def copyright
print "\n\n-- == (C) Doddy Hackman 2015 == --\n\n"
end
#
md5 = ARGV[0]
head()
if !md5
uso()
else
crack(md5)
end
copyright()
#The End ?
Version Tk :
#!usr/bin/ruby
#MD5 Cracker 0.2
#(C) Doddy Hackman 2015
require "tk"
require "open-uri"
require "net/http"
#Functions
# Functions
def toma(web)
begin
return open(web, "User-Agent" => "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0").read
rescue
return "Error"
end
end
def response_code(web)
begin
return Net::HTTP.get_response(URI(web)) .code
rescue
return "404"
end
end
def tomar(web,arg)
begin
headers = {"User-Agent" => "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0"}
uri = URI(web)
http = Net::HTTP.new(uri.host, uri.port)
return http.post(uri.path,arg, headers).body
rescue
return "Error"
end
end
#
window = TkRoot.new { title "MD5 Cracker 0.2 (C) Doddy Hackman 2015" ; background "black" }
window['geometry'] = '300x300-20+10'
TkLabel.new(window) do
background "black"
foreground "green"
text " MD5 : "
place('relx'=>"0.1",'rely'=>"0.1")
end
md5 = TkEntry.new(window){
background "black"
foreground "green"
width 25
place('relx'=>0.3,'rely'=>0.1)
}
TkLabel.new(window) do
background "black"
foreground "green"
text "Console"
place('relx'=>0.4,'rely'=>0.2)
end
console =TkText.new(window) do
background "black"
foreground "green"
width 30
height 10
place('relx'=>0.1,'rely'=>0.3)
end
TkButton.new(window) do
text "Crack It"
background "black"
foreground "green"
width 17
activebackground "green"
highlightbackground "green"
command proc{
md5 = md5.value.to_s
console.insert("end","[+] Cracking ...\n\n")
code = tomar("http://md5online.net/index.php","pass="+md5+"&option=hash2text&send=Submit")
if code=~/pass : <b>(.*?)<\/b>/
password = $1
console.insert("end","[+] md5online.net -> "+password+"\n" )
else
console.insert("end","[-] md5online.net -> Not Found" + "\n" )
end
code = tomar("http://md5.my-addr.com/md5_decrypt-md5_cracker_online/md5_decoder_tool.php","md5="+md5)
if code=~/<span class='middle_title'>Hashed string<\/span>: (.*?)<\/div>/
password = $1
console.insert("end","[+] md5.my-addr.co -> "+password+"\n")
else
console.insert("end","[-] md5.my-addr.co -> Not Found" +"\n")
end
code = tomar("http://md5decryption.com/index.php","hash="+md5+"&submit=Decrypt It!")
if code=~/Decrypted Text: <\/b>(.*?)<\/font>/
password = $1
console.insert("end","[+] md5decryption.com -> "+password+"\n")
else
console.insert("end","[-] md5decryption.com -> Not Found"+"\n")
end
console.insert("end","\n[+] Finished\n" )
}
place('relx'=>0.3,'rely'=>0.9)
end
Tk.mainloop
#The End ?
Una imagen :
(http://doddyhackman.webcindario.com/images/md5cracker_ruby.jpg)
Eso es todo.
Excelente aporte amigo, tu forma de programar es muy limpia y entendible, saludos