Merge pull request #5 from touhidshaikh/touhidshaikh-table-added

Thanks for the contribution!
This commit is contained in:
fleetcaptain 2019-03-23 20:15:28 -07:00 committed by GitHub
commit df411415bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 32 additions and 13 deletions

View File

@ -25,6 +25,7 @@ import threading
import socket
import time
from collections import Counter
from prettytable import PrettyTable
# external modules
# from subbrute import subbrute
@ -1030,8 +1031,8 @@ def main(domain, threads, savefile, ports, silent, verbose, enable_bruteforce, e
# Method code added
cnames = ['\033[94m== CNAME records ==\033[0m']
ahosts = ['\033[94m== A records ==\033[0m']
cnames = '\033[94m== CNAME records ==\033[0m'
ahosts = '\033[94m== A records ==\033[0m'
def lookup(guess, name_server):
@ -1140,8 +1141,19 @@ if __name__ == "__main__":
else:
res = main(domain, threads, savefile, ports, silent=False, verbose=verbose, enable_bruteforce=enable_bruteforce,engines=engines)
# Code added here
# Code added here
if (analyze):
cnametable = PrettyTable(["Name", "Records"])
cnametable.align["Name"] = "l"
cnametable.align["Records"] = "l"
atable = PrettyTable(["Name", "Records"])
atable.align["Name"] = "l"
atable.align["Records"] = "l"
# res is the list of subdomains e.g. www.example.com, mail.example.com, etc
resolvers = ['8.8.8.8', '8.8.4.4', '9.9.9.9', '1.1.1.1', '1.0.0.1']
server = 0
@ -1156,9 +1168,13 @@ if __name__ == "__main__":
# if the query did not return an error, then add result to appropriate array
if rtype != "ERROR":
if rtype == "CNAME":
cnames.append(name + " -->-- " + record)
i = [name,record]
cnametable.add_row(i)
elif rtype == "A":
ahosts.append(name + " -->-- " + record)
i = [name,record]
atable.add_row(i)
# round robin the resolvers
server = server + 1
server = server % len(resolvers)
@ -1176,17 +1192,20 @@ if __name__ == "__main__":
# Known errors: subdomain sample starting with a dot, ex .domain.com
continue
ahosts.sort()
cnames.sort()
print cnames
print cnametable
print ahosts
print atable
# output analysis results to console
for x in range(0, len(ahosts)):
print(G + ahosts[x] + W)
print("\n")
for x in range(0, len(cnames)):
print(G + cnames[x] + W)
if (analysisfile!=None):
# save the analysis to a file. Merge the arrays into one list for easier reading
write_file(analysisfile, ahosts + ["\n"] + cnames)
print(B + "Saved reverse DNS analysis to " + analysisfile + W)
result = ahosts + "\n" + str(atable) + "\n" + cnames + "\n" + str(cnametable) + "\n"
file = open(analysisfile,"w")
file.write(result)
file.close()
print(B + "Saved reverse DNS analysis to " + R + analysisfile + W)