python写的一个丑陋的dns子域名扫描器
01 #! /usr/bin/env python 02 #coding=utf-8 03 #子域名扫描器 04 05 06 import socket 07 import sys 08 socket.setdefaulttimeout(2) 09 from multiprocessing import Process,Queue 10 MSG_QUEUE = Queue() 11 12 13 def crack(queue,ownsize,noip,arg): 14 while 1: 15 if queue.empty(): 16 break 17 else: 18 firsthost = queue.get() 19 nowownsize = queue.qsize() 20 sys.stdout.write(str(ownsize)+"--->"+str((ownsize-queue.qsize()))+' 21 ') #这里这个 22 是关键 23 sys.stdout.flush() 24 dnshost = firsthost+"vip"+"."+arg 25 try: 26 ip = socket.gethostbyname(dnshost) 27 if ".".join(ip.split(".")[:2])+"." not in [noip,"218.28."]: 28 print u"存在%s----->%s" % (dnshost,ip) 29 except: 30 pass 31 32 33 def scan(url): 34 try: 35 ip = socket.gethostbyname("111111bukenengcunzai."+url) 36 ip = ".".join(ip.split(".")[:2])+"." 37 print u"====================="+ip 38 except: 39 ip = None 40 return ip 41 42 43 def main(arg): 44 threads = [] 45 lines = 15 46 for x in open("good.txt","r"): 47 MSG_QUEUE.put(x.strip()) 48 ownsize = MSG_QUEUE.qsize() 49 noip = scan(arg) 50 print u"开始启动..." 51 for x in range(lines): 52 proc = Process(target=crack,args=(MSG_QUEUE,ownsize,noip,arg,)) 53 threads.append(proc) 54 proc.start() 55 for y in threads: 56 y.join() 57 58 if __name__ == '__main__': 59 main("baidu.com") 60
The End
发布于:2021-04-11,除非注明,否则均为
原创文章,转载请注明出处。
还没有评论,来说两句吧...