Compare commits

...
2 Commits
Author SHA1 Message Date
benjamyn 2057d2a3fd fixed some py3 errors 2018-09-02 15:58:57 +10:00
benjamyn e7a149781e Fixed up local libs and main.py, waiting on whois lib 2018-08-30 02:18:14 +10:00
15 changed files with 109 additions and 103 deletions

No files matched your search

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