diff --git a/libs/__init__.py b/libs/__init__.py index 5f030a2..04139af 100644 --- a/libs/__init__.py +++ b/libs/__init__.py @@ -1,2 +1,2 @@ -import files -import config +from . import files +from . import config diff --git a/libs/__pycache__/__init__.cpython-37.pyc b/libs/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000..b5e940d Binary files /dev/null and b/libs/__pycache__/__init__.cpython-37.pyc differ diff --git a/libs/__pycache__/cc.cpython-37.pyc b/libs/__pycache__/cc.cpython-37.pyc new file mode 100644 index 0000000..a364664 Binary files /dev/null and b/libs/__pycache__/cc.cpython-37.pyc differ diff --git a/libs/__pycache__/colours.cpython-37.pyc b/libs/__pycache__/colours.cpython-37.pyc new file mode 100644 index 0000000..fbb562d Binary files /dev/null and b/libs/__pycache__/colours.cpython-37.pyc differ diff --git a/libs/__pycache__/config.cpython-37.pyc b/libs/__pycache__/config.cpython-37.pyc new file mode 100644 index 0000000..3788ecc Binary files /dev/null and b/libs/__pycache__/config.cpython-37.pyc differ diff --git a/libs/__pycache__/files.cpython-37.pyc b/libs/__pycache__/files.cpython-37.pyc new file mode 100644 index 0000000..ce8df88 Binary files /dev/null and b/libs/__pycache__/files.cpython-37.pyc differ diff --git a/libs/config.py b/libs/config.py index b4ee3ab..15b9ceb 100644 --- a/libs/config.py +++ b/libs/config.py @@ -1,4 +1,4 @@ -import files as f +from . import files as f import json import os diff --git a/libs/files.py b/libs/files.py index b3dd1cf..c34983c 100644 --- a/libs/files.py +++ b/libs/files.py @@ -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 diff --git a/main.py b/main.py index 5cf3934..e6d3087 100755 --- a/main.py +++ b/main.py @@ -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,119 @@ 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)) + 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)) # 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') diff --git a/requirments.txt b/requirments.txt new file mode 100644 index 0000000..6f4a25e --- /dev/null +++ b/requirments.txt @@ -0,0 +1,3 @@ +dnspython +ipwhois +readline \ No newline at end of file