一共六個模塊,可在cmd選擇調用哪個模塊,參數all是全部進行調用
初步想法是添加其他查詢API接口,一鍵化收集,方便省事;初步框架是這樣
子域名模塊是自己的字典庫,也可以將子域名搜集軟件的拿來直接用
源代碼如下:
import socket,os,time,sys,whois
#ip查詢
def ip_check(url):
ip=socket.gethostbyname(url)
print(ip)
print('------------------------------------++++++-------------------------------------------')
#whois查詢
def whois_check(url):
data = whois.whois(url)
print(data)
print('------------------------------------++++++-------------------------------------------')
#CDN判斷-利用返回IP條數進行判斷
def cdn_check(url):
ns="nslookup "+url
#data=os.system(ns)
#print(data) #結果無法讀取操作
data=os.popen(ns,"r").read()
if data.count(".")>8:
print("存在CDN")
else:
print("不存在CDN")
print('------------------------------------++++++-------------------------------------------')
#子域名查詢-
#1.利用字典記載爆破進行查詢
#2.利用第三方接口進行查詢
def zym_list_check(url):
url=url.replace("www.","")
for zym_list in open("../../plug-in/dic.txt"):
zym_list=zym_list.replace("\n","")
zym_list_url=zym_list+"."+url
try:
ip=socket.gethostbyname(zym_list_url)
print(zym_list_url+"->"+ip)
time.sleep(0.1)
except Exception as e:
time.sleep(0.1)
print('------------------------------------++++++-------------------------------------------')
def zym_api_check(url):
url=url.replace("www.", "")
#端口掃描
def port_check(url):
ip = socket.gethostbyname(url)
#ip="192.168.76.155"
#ports={'21','22','135','443','445','80','1433','3306',"3389",'1521','8000','7002','7001','8080',"9090",'8089',"4848}
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#for port in ports:
try:
data=server.connect_ex((ip, 80))
if data==0:
print(ip+":"+str(80)+"|open")
else:
print(ip+":"+str(80)+"|close")
pass
except Exception as err:
print("error")
print('------------------------------------++++++-------------------------------------------')
#系統判斷-
#1.基於TTL值進行判斷
#2.基於第三方腳本進行判斷
def os_check(url):
data = os.popen("nmap\\nmap -O "+url, "r").read()
print(data)
print('------------------------------------++++++-------------------------------------------')
if __name__ == '__main__':
print("Test:python test.py www.dudu.com all")
url = sys.argv[1]
check = sys.argv[2]
#print(url +"\n"+ check)
if check=="all":
ip_check(url)
whois_check(url)
port_check(url)
cdn_check(url)
os_check(url)
zym_list_check(url)
效果如下: