[Ruby] LocateIP 0.3

Iniciado por BigBear, 27 Junio 2015, 01:18 AM

0 Miembros y 1 Visitante están viendo este tema.

BigBear

Un simple script en Ruby para localizar una IP y sus DNS.

Version consola :

Código (ruby) [Seleccionar]

#!usr/bin/ruby
#LocateIP 0.3
#(C) Doddy Hackman 2015

require "open-uri"
require "net/http" 
require "resolv"

# Functions

def get_ip(hostname)
begin
return Resolv.getaddress(hostname)
rescue
return "Error"
end
end

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 uso
print "\n[+] Sintax : ruby locateip.rb <target>\n"
end

def  head
print "\n\n-- == LocateIP 0.3 == --\n\n"
end

def copyright
print "\n\n-- == (C) Doddy Hackman 2015 == --\n\n"
end

def locateip(target)

print "\n[+] Getting IP ...\n"

ip = get_ip(target)

print "\n[+] IP : "+ip+"\n"

web = "http://www.melissadata.com/lookups/iplocation.asp"
print "\n[+] Locating ...\n\n"

code = tomar(web,"ipaddress="+ip+"&btn=Submit")

if code=~/City<\/td><td align=(.*)><b>(.*)<\/b><\/td>/
print "[+] City : "+$2+"\n"
else
print "[+] City : Not Found\n"
end

if code=~/Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>/
print "[+] Country : "+$2+"\n"
else
print "[+] Country : Not Found\n"
end

if code=~/State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>/
print "[+] State or Region : "+$2+"\n";
else
print "[+] State of Region : Not Found\n"
end

print "\n[+] Getting DNS ...\n\n"

control = "0"

code = toma("http://www.ip-adress.com/reverse_ip/"+ip)

dnss = code.scan(/whois\/(.*?)\">Whois/)

dnss.flatten.each do |dns|
begin
if dns != ""
control = "1"
print "[+] DNS Found : "+dns
end
end
end

if control=="0"
print "\n[-] DNS Not Found\n"
end
end

target = ARGV[0]

head()

if !target
uso()
else
locateip(target)
end

copyright()

#The End ?


Version Tk :

Código (ruby) [Seleccionar]

#!usr/bin/ruby
#LocateIP 0.3
#(C) Doddy Hackman 2015

require "tk"
require "open-uri"
require "net/http"
require "resolv"

# Functions

def get_ip(hostname)
begin
return Resolv.getaddress(hostname)
rescue
return "Error"
end
end

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 "LocateIP 0.3 (C) Doddy Hackman 2015" ; background "black" }
window['geometry'] = '300x300-20+10'

TkLabel.new(window) do
background "black"
foreground "yellow"
text "    Target : "
place('relx'=>"0.1",'rely'=>"0.1")
end

target = TkEntry.new(window){
background "black"
foreground "yellow"
width 25
place('relx'=>0.3,'rely'=>0.1)
}

TkLabel.new(window) do
background "black"
foreground "yellow"
text "Console"
place('relx'=>0.4,'rely'=>0.2)
end

console =TkText.new(window) do
background "black"
foreground "yellow"
width 30
height 10
place('relx'=>0.1,'rely'=>0.3)
end

TkButton.new(window) do
text "Search"
        background "black"
foreground "yellow"
width 17
activebackground "yellow"
highlightbackground  "yellow"
command proc{

target = target.value.to_s

console.insert("end",  "[+] Getting IP ...\n")

ip = get_ip(target)

web = "http://www.melissadata.com/lookups/iplocation.asp"

console.insert("end", "\n[+] Locating ...\n\n")

code = tomar(web,"ipaddress="+ip+"&btn=Submit")

if code=~/City<\/td><td align=(.*)><b>(.*)<\/b><\/td>/
console.insert("end", "[+] City : "+$2+"\n")
else
console.insert("end", "[+] City : Not Found\n")
end

if code=~/Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>/
console.insert("end","[+] Country : "+$2+"\n")
else
console.insert("end", "[+] Country : Not Found\n")
end

if code=~/State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>/
console.insert("end", "[+] State or Region : "+$2+"\n")
else
console.insert("end","[+] State of Region : Not Found\n")
end

console.insert("end","\n[+] Getting DNS ...\n\n")

control = "0"

code = toma("http://www.ip-adress.com/reverse_ip/"+ip)

dnss = code.scan(/whois\/(.*?)\">Whois/)

dnss.flatten.each do |dns|
begin
if dns != ""
control = "1"
console.insert("end", "[+] DNS Found : "+dns)
end
end
end

if control=="0"
console.insert("end","\n[-] DNS Not Found\n")
end

console.insert("end","\n\n[+] Finished")

}
place('relx'=>0.3,'rely'=>0.9)
end

Tk.mainloop

#The End ?


Una imagen :



Eso es todo.