Python 实现子域名查询与爆破
该工具第一是查询执行参数-a Search xxx.com
第二是爆破-a Blast domain wordlist
,工具同样可以使用DNS域名的枚举,和上面的区别就在于该方法使用了DNS迭代查询.
Web子域名查询: 该工具第一是查询执行参数-a Search xxx.com
第二是爆破-a Blast domain wordlist
import requests
import re,linecache,argparsehead={'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}def Banner():print(" _ ____ _ _ ")print(" | | _ _/ ___|| |__ __ _ _ __| | __")print(" | | | | | \___ \| '_ \ / _` | '__| |/ /")print(" | |__| |_| |___) | | | | (_| | | | < ")print(" |_____\__, |____/|_| |_|\__,_|_| |_|\_\\")print(" |___/ \n")print("E-Mail: me@lyshark.com")# 查询子域名
def SearchDomain(domain):url = "https://crt.sh/?q=" + domaintry:req = requests.get(url=url,headers=head,timeout=10)result = re.findall('<TD>(.*?)</TD>\n <TD><A',req.text,re.S)for item in result:print(item)except Exception:passdef VisitWeb(prefix,domain):try:url = "https://{}.{}".format(prefix,domain)ret = requests.get(url=url, headers=head, timeout=1)if(ret.status_code == 200):return 1else:return 0except:return 0# 爆破子域名
def BlastWeb(domain,wordlist):forlen = len(linecache.getlines(wordlist))fp = open(wordlist,"r+")for i in range(0,forlen):main = str(fp.readline().split()[0])if VisitWeb(main, domain) != 0:print("旁站: {}.{} 存在".format(main,domain))if __name__ == "__main__":Banner()def RunCMD(argc, args):if (argc == "Search"):SearchDomain(args[0])elif (argc == "Blast"):SubDomain = args[0]WordList = args[1]BlastWeb(SubDomain,WordList)Usage = "[*] Usage : main.py -a [Search | Blast] xxx.com"parser = argparse.ArgumentParser(usage=Usage)parser.add_argument("-a",dest="RunCMD",help="查询子域名命令")args = parser.parse_args()if args.RunCMD:argc = args.RunCMDRunCMD(argc,args)else:parser.print_help()
通过DNS爆破子域名: 该工具同样可以使用DNS域名的枚举,和上面的区别就在于该方法使用了DNS迭代查询.
import threading
import argparse
from queue import Queue
import dns.resolverclass BlastDNSDomain(threading.Thread):def __init__(self,queue,result):threading.Thread.__init__(self)self._queue = queueself.result = resultdef run(self):while not self._queue.empty():SubDomain = self._queue.get_nowait()try:result =dns.resolver.query(SubDomain,'A')if result.response.answer:self.result.append(SubDomain)print("[+] {}".format(SubDomain))except Exception:passdef Banner():print(" _ ____ _ _ ")print(" | | _ _/ ___|| |__ __ _ _ __| | __")print(" | | | | | \___ \| '_ \ / _` | '__| |/ /")print(" | |__| |_| |___) | | | | (_| | | | < ")print(" |_____\__, |____/|_| |_|\__,_|_| |_|\_\\")print(" |___/ \n")print("E-Mail: me@lyshark.com")if __name__ == "__main__":Banner()Usage = "main.py -d xxx.com -w dict.log -t 5"parser = OptionParser(usage=Usage)parser.add_argument("-d", "--domain", dest="Domain", help="Specify subdomain format")parser.add_argument("-w", "--wordlist", dest="WordList", help="Specify a dictionary file")parser.add_argument("-t", "--ThreadCount", dest="ThreadCount", help="Specify the number of execution threads")args = parser.parse_args()if args.Domain and args.WordList and args.ThreadCount:queue = Queue()result = []with open(args.WordList) as fp:for item in fp:queue.put(item.rstrip() + '.' + args.Domain)threads = []for item in range(int(args.ThreadCount)):threads.append(BlastDNSDomain(queue, result))for t in threads:t.start()for t in threads:t.join()print("所有DNS域名: {}".format(set(result)))else:parser.print_help()
Python 实现子域名查询与爆破相关推荐
- Python之子域名查询
Python之子域名查询
- 渗透测试-----信息收集(概述、whois、子域名查询、爆破、vulhub域名传送漏洞复现、kali安装docker)
文章目录 渗透测试 信息收集 1. 概述 2. 供练手的网站 3. whois查询 4. 子域名查询 域传送漏洞 1. 概述 2. 解决办法 3. vulhub漏洞复现 4. 子域名爆破 渗透测试 信 ...
- Python开发 CDN查询子域名查询
import socket import os import sys import time import requests from bs4 import BeautifulSoup from ur ...
- 子域名查询DNS记录查询
目录 子域名信息查询 Layer子域名爆破机 subDomainBrute 利用google查询 HTTP证书查询 DNS记录查询脚本 IP转换为经纬度 利用网页获取对方经纬度信息 首先关于DNS域名 ...
- 子域名查询、DNS记录查询
目录 子域名信息查询 Layer子域名爆破机 subDomainBrute 利用google查询 HTTP证书查询 DNS记录查询脚本 IP转换为经纬度 利用网页获取对方经纬度信息 首先关于DNS域名 ...
- 信息收集之子域名查询--子域名扫描器: 子域名挖掘机 Subdomainsbrute---基本使用
信息收集之子域名查询–子域名扫描器: 子域名挖掘机 Subdomainbrute-基本使用 工具介绍:subDomainsBrute 工具作者: lijiejie Github地址:https://g ...
- 信息收集之子域名查询--子域名扫描器: 子域名挖掘机 Subdomainbrute
子域名查询–子域名扫描器: 子域名挖掘机 Subdomainbrute 安装–傻瓜式教你安装 Windows7环境为例 [step1]: 安装python2.7(省略) 对于这一步,可以检查一下是否安 ...
- Kali [dnsenum]子域名查询工具
子域名查询工具(dnsenum) DNSenum是一款通过探测DNS记录在寻找子域名的工具. 安装 使用命令:apt-get install cpanminus 下载 使用:cpanm -n Net: ...
- [Python]输入星座名查询对应Unicode编码图案
文章目录 [*Python*]输入星座名查询对应*Unicode*编码图案 *Unicode*编码介绍 *Python*代码实现 [Python]输入星座名查询对应Unicode编码图案 生活中常见的 ...
最新文章
- LuoguP3183 [HAOI2016]食物链 记忆化搜索
- WPF messagebox生命周期的探讨
- 计算机主机f不显示,为什么我不能按计算机上的f键行
- java arraylist实现_java实现ArrayList基本功能
- js获取浏览器语言(ie、ff、chrome)、contextpath
- 夜深了,发点无聊的东西
- android闹钟延时,android闹钟定时启动延时或者直接不启动
- 字节大牛教你手撕Java学习,大厂直通车!
- oracle如何调试sql,调试oracle与调试sql server存储过程
- 云服务器 ECS 搭建WordPress网站:购买 Linux 实例
- js读取文件的内置方法之 FileReader
- Git-LFS:大文件也有了版本管理
- Linux shadow文件
- sql round函数(case函数)
- NBIoT接收十六进制数据格式转化
- “Think Different”是个糟糕的想法
- andorid Telephony 整体介绍
- (转载)Bro NIDS的安装与配置
- MyEclipse 2020下载
- [Jexus系列] 一、安装并运行 Jexus