Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2057d2a3fd | ||
|
|
e7a149781e |
No files matched your search
+2
-2
@@ -1,2 +1,2 @@
|
|||||||
import files
|
from . import files
|
||||||
import config
|
from . import config
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
import files as f
|
from . import files as f
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
+2
-2
@@ -2,7 +2,7 @@ def openFile(path):
|
|||||||
try:
|
try:
|
||||||
myFile = open(path)
|
myFile = open(path)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print e
|
print(e)
|
||||||
pass
|
pass
|
||||||
return myFile
|
return myFile
|
||||||
|
|
||||||
@@ -10,6 +10,6 @@ def closeFile(fileObj):
|
|||||||
try:
|
try:
|
||||||
fileObj.close()
|
fileObj.close()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print e
|
print(e)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
Binary file not shown.
@@ -27,12 +27,12 @@ CSVFile = jsonData["country_codes"]
|
|||||||
# Endconfig block
|
# Endconfig block
|
||||||
|
|
||||||
if platform.system().lower() == "linux":
|
if platform.system().lower() == "linux":
|
||||||
import readline
|
import readline
|
||||||
else:
|
else:
|
||||||
colour_attn = ""
|
colour_attn = ""
|
||||||
colour_good = ""
|
colour_good = ""
|
||||||
colour_pretty = ""
|
colour_pretty = ""
|
||||||
colour_default = ""
|
colour_default = ""
|
||||||
|
|
||||||
running = 1
|
running = 1
|
||||||
prompt = ': '
|
prompt = ': '
|
||||||
@@ -43,119 +43,122 @@ ipData = {"asn_country_code":"Country", "asn_description":"Owner"}
|
|||||||
CountryDict = cc.parseCSV(cc.openCSV(CSVFile))
|
CountryDict = cc.parseCSV(cc.openCSV(CSVFile))
|
||||||
|
|
||||||
def domainWhois(inData):
|
def domainWhois(inData):
|
||||||
whoisData = whois.whois(inData).query()
|
whoisData = whois.whois.Whois(inData).query()
|
||||||
return whois.Parser(inData, whoisData[1]).parse()
|
return whois.parser.Parser(inData, whoisData[1]).parse()
|
||||||
|
|
||||||
def signal_handler(singal, frame):
|
def signal_handler(singal, frame):
|
||||||
quit()
|
quit()
|
||||||
|
|
||||||
def printWhois(resultData):
|
def printWhois(resultData):
|
||||||
for x in range(0, len(whoisrecs)):
|
for x in range(0, len(whoisrecs)):
|
||||||
try:
|
try:
|
||||||
for item in resultData[whoisrecs[x]]:
|
for item in resultData[whoisrecs[x]]:
|
||||||
if whoisrecs[x] == "Status":
|
if whoisrecs[x] == "Status":
|
||||||
if "ok" in item or "OK" in item:
|
if "ok" in item or "OK" in item:
|
||||||
print(indent + colour_good + '%s: %s' % (whoisrecs[x], item) + colour_default)
|
print(indent + colour_good + '%s: %s' % (whoisrecs[x], item) + colour_default)
|
||||||
else:
|
else:
|
||||||
print(indent + colour_attn + '%s: %s' % (whoisrecs[x], item) + colour_default)
|
print(indent + colour_attn + '%s: %s' % (whoisrecs[x], item) + colour_default)
|
||||||
else:
|
else:
|
||||||
print(indent + '%s: %s' % (whoisrecs[x], item))
|
print(indent + '%s: %s' % (whoisrecs[x], item))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def cnameToA(cname):
|
def cnameToA(cname):
|
||||||
data = dns.resolver.query(cname, "A")
|
data = dns.resolver.query(cname, "A")
|
||||||
for rdata in data:
|
for rdata in data:
|
||||||
return rdata
|
return rdata
|
||||||
|
|
||||||
def parseInput(inData):
|
def parseInput(inData):
|
||||||
tmpInData = inData.lower()
|
tmpInData = inData.lower()
|
||||||
tmpInData = tmpInData.strip()
|
tmpInData = tmpInData.strip()
|
||||||
if tmpInData == "quit":
|
if tmpInData == "quit":
|
||||||
quit()
|
quit()
|
||||||
if checkIfIP(tmpInData):
|
if checkIfIP(tmpInData):
|
||||||
lookupIP(tmpInData)
|
lookupIP(tmpInData)
|
||||||
else:
|
else:
|
||||||
lookupDomain(tmpInData)
|
lookupDomain(tmpInData)
|
||||||
|
|
||||||
def recLookup(inData):
|
def recLookup(inData):
|
||||||
for dnsrec in dnsrecords:
|
for dnsrec in dnsrecords:
|
||||||
try:
|
try:
|
||||||
data = dns.resolver.query(inData, dnsrec)
|
data = dns.resolver.query(inData, dnsrec)
|
||||||
for rdata in data:
|
for rdata in data:
|
||||||
rdataTMP = rdata.to_text().split(" ")
|
rdataTMP = rdata.to_text().split(" ")
|
||||||
if dnsrec != "MX":
|
if dnsrec != "MX":
|
||||||
if dnsrec != "NS":
|
if dnsrec != "NS":
|
||||||
print( indent + colour_pretty + "%s:\t%s%s" % (dnsrec, colour_good, rdata) + colour_default)
|
print( indent + colour_pretty + "%s:\t%s%s" % (dnsrec, colour_good, rdata) + colour_default)
|
||||||
else:
|
else:
|
||||||
tmpData = cnameToA(rdata.to_text())
|
tmpData = cnameToA(rdata.to_text())
|
||||||
print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default)
|
print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default)
|
||||||
else:
|
else:
|
||||||
tmpData = cnameToA(rdataTMP[1])
|
tmpData = cnameToA(rdataTMP[1])
|
||||||
print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default)
|
print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def subLookup(inData, sub):
|
def subLookup(inData, sub):
|
||||||
try:
|
try:
|
||||||
data = dns.resolver.query(sub + '.' + inData)
|
data = dns.resolver.query(sub + '.' + inData)
|
||||||
for rdata in data:
|
for rdata in data:
|
||||||
if data.qname == data.canonical_name:
|
if data.qname == data.canonical_name:
|
||||||
print(indent + colour_pretty + "%s:\t%s%s" % (sub, colour_good, rdata) + colour_default)
|
print(indent + colour_pretty + "%s:\t%s%s" % (sub, colour_good, rdata) + colour_default)
|
||||||
else:
|
else:
|
||||||
for rdata in dns.resolver.query(sub + '.' + inData, "CNAME"):
|
for rdata in dns.resolver.query(sub + '.' + inData, "CNAME"):
|
||||||
print(indent + colour_pretty + "%s:\t%s%s -> %s" % (sub, colour_good, rdata, cnameToA(sub + "." + inData).to_text()) + colour_default)
|
print(indent + colour_pretty + "%s:\t%s%s -> %s" % (sub, colour_good, rdata, cnameToA(sub + "." + inData).to_text()) + colour_default)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def lookupDomain(inData):
|
def lookupDomain(inData):
|
||||||
try:
|
try:
|
||||||
result = domainWhois(inData)
|
result = domainWhois(inData)
|
||||||
except Exception as E:
|
except Exception as E:
|
||||||
print('%s : TLD most likely needs to be configured' % (E))
|
print('%s : TLD most likely needs to be configured' % (E))
|
||||||
result = "Error"
|
result = "Error"
|
||||||
print("\nWhois Information")
|
print("\nWhois Information")
|
||||||
printWhois(result)
|
printWhois(result)
|
||||||
print("\nDNS Records")
|
print("\nDNS Records")
|
||||||
recLookup(inData)
|
recLookup(inData)
|
||||||
print("\nSub Domains")
|
print("\nSub Domains")
|
||||||
for subs in subdomains:
|
for subs in subdomains:
|
||||||
subLookup(inData, subs)
|
subLookup(inData, subs)
|
||||||
|
|
||||||
def lookupIP(inData):
|
def lookupIP(inData):
|
||||||
with warnings.catch_warnings():
|
try:
|
||||||
warnings.filterwarnings("ignore", category=UserWarning)
|
with warnings.catch_warnings():
|
||||||
ipnet = Net(inData)
|
warnings.filterwarnings("ignore", category=UserWarning)
|
||||||
ipobj = IPASN(ipnet)
|
ipnet = Net(inData)
|
||||||
results = ipobj.lookup()
|
ipobj = IPASN(ipnet)
|
||||||
for types in ipData:
|
results = ipobj.lookup()
|
||||||
if types == "asn_country_code":
|
for types in ipData:
|
||||||
print(indent + "%s%s:%s\t%s%s" % (colour_pretty, ipData[types], colour_good, CountryDict[results[types]], colour_default))
|
if types == "asn_country_code":
|
||||||
else:
|
print(indent + "%s%s:%s\t%s%s" % (colour_pretty, ipData[types], colour_good, CountryDict[results[types]], colour_default))
|
||||||
print(indent + "%s%s:%s\t%s%s" % (colour_pretty, ipData[types], colour_good, results[types], colour_default))
|
else:
|
||||||
rev_name = reversename.from_address(inData)
|
print(indent + "%s%s:%s\t%s%s" % (colour_pretty, ipData[types], colour_good, results[types], colour_default))
|
||||||
try:
|
rev_name = reversename.from_address(inData)
|
||||||
reverseName = str(dns.resolver.query(rev_name, "PTR")[0])
|
try:
|
||||||
except Exception as E:
|
reverseName = str(dns.resolver.query(rev_name, "PTR")[0])
|
||||||
reverseName = E
|
except Exception as E:
|
||||||
print('\n' + indent + '%sPTR:%s\t\t%s%s' % (colour_pretty, colour_good, reverseName, colour_default))
|
reverseName = E
|
||||||
|
print('\n' + indent + '%sPTR:%s\t\t%s%s' % (colour_pretty, colour_good, reverseName, colour_default))
|
||||||
|
except:
|
||||||
|
None
|
||||||
|
|
||||||
# Taken and modified from DNSpy 1, I am not asahmed it works
|
# Taken and modified from DNSpy 1, I am not asahmed it works
|
||||||
def checkIfIP(in1):
|
def checkIfIP(in1):
|
||||||
count = 0
|
count = 0
|
||||||
inSplit = in1.split('.')
|
inSplit = in1.split('.')
|
||||||
if len(inSplit) != 4:
|
if len(inSplit) != 4:
|
||||||
return False
|
return False
|
||||||
for part in inSplit:
|
for part in inSplit:
|
||||||
if part.isdigit():
|
if part.isdigit():
|
||||||
count += 1
|
count += 1
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
if count == 4:
|
if count == 4:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
signal.signal(signal.SIGINT, signal_handler)
|
signal.signal(signal.SIGINT, signal_handler)
|
||||||
|
|
||||||
while running == 1:
|
while running == 1:
|
||||||
parseInput(raw_input("Please Enter a domain" + prompt) )
|
parseInput(input("Please Enter a domain" + prompt) )
|
||||||
print('\n')
|
print('\n')
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
dnspython
|
||||||
|
ipwhois
|
||||||
|
readline
|
||||||
Reference in new issue
Block a user