python3爆破服务器_Python 3.5 之爆破二级域名.
今天更新的是爆破二级域名
版本:Python 3.5
一共是两个文件1、Address.py 2、dns.py[附件配字典,如有不清楚的请联系我QQ]
下面有附件打包.
1、Address.py
import pymysql
class Address(object):
#domainName:www.baidu.com
#ip:192.168.0.1
#tableName:baidu.com
def __init__(self,domainName,ip,tableName):
self.domainName = domainName
self.ip = ip
self.tableName = tableName
#调用创建表的函数
self.createTable(tableName)
#如果这个IP地址存在,则不插入数据
if self.isHava(tableName,ip):
self.insertTable(domainName,ip,tableName)
def createTable(self,tableName):
#根据tableName的参数,创建表
coon = pymysql.connect(host = 'localhost',port = 3306, user = 'root', passwd = '',db = 'new',charset = 'UTF8')
cursor = coon.cursor()
#根据'.'对tableName进行拆分['baidu','com'] 根据某一字符给它拆分
DM = tableName.split('.')
a = 'create table if not exists ' + DM[0] +' (id int primary key auto_increment,domainName varchar(1000),ip varchar(1000))'
cursor.execute(a)
coon.commit()
coon.close()
def insertTable(self,domainName,ip,tableName):
#根据tableName向表中插入domainName和ip
coon = pymysql.connect(host = 'localhost',port = 3306, user = 'root', passwd = '',db = 'new',charset = 'UTF8')
cursor = coon.cursor()
#根据'.'对tableName进行拆分['baidu','com'] 根据某一字符给它拆分
DM = tableName.split('.')
a = 'insert into '+ DM[0]+ ' (domainName,ip) values (\'' +domainName+ "','" + ip + "')"
cursor.execute(a)
coon.commit()
coon.close()
def isHava(self,tableName,ip):
#根据ip去表中查询数据,如果查到了则视为已经插入过了
coon = pymysql.connect(host = 'localhost',port = 3306, user = 'root', passwd = '',db = 'new',charset = 'UTF8')
cursor = coon.cursor()
#根据'.'对tableName进行拆分['baidu','com'] 根据某一字符给它拆分
DM = tableName.split('.')
a = 'select * from ' + DM[0] + ' where ip = \'' + ip + "'"
cursor.execute(a)
values = cursor.fetchall()
if values:
return False
else:
return True
if __name__ == '__main__':
a = Address('www.sina.com','192.168.0.1','sina.com')
2、Dns.py
import dns.resolver
import time
import threading
from multiprocessing import Queue
import os
from Address import Address
class DNSBrute(object):
def __init__(self,domainName,thread_NUM):
#domainName:开始的域名,格式:baidu.com
self.domainName = domainName
#thread_NMU:开启的线程数量
self.thread_count = self.thread_NUM = thread_NUM
#scan_count:扫描过的数量
#found_count:扫描到的域名的数量
self.scan_count = self.found_count = 0
#线程锁,因为有很多个线程同时操作,所以要有一个线程锁
self.lock = threading.Lock()
#保存DNS解析对象的列表
self.resolvers = [dns.resolver.Resolver() for _ in range(thread_NUM)]
self.load_dns_servers()
self.load_subname()
#查找出来的ip地址的字典
self.ip_dict = {}
#
self.STOP_ME = False
#查询出来的结果列表
#在查询结束之后,要保存到数据库
self.result = []
# for x in range(thread_NUM):
# #创建一个DNS解析对象
# new_resolver = dns.resolver.Resolver()
# #添加进列表中
# self.resolvers.append(new_resolver)
#第一个函数,从dns_servers.txt读取内容,保存到列表中
#第二个盘数,从subnama.txt 文档中读取内容,保存到Queue
def load_dns_servers(self):
dns_servers = []
with open('dict/dns_servers.txt','r') as f:
for x in f:
#strip()去掉字符串中的空格
server = x.strip()
#将去掉空格的dns保存到数组中
dns_servers.append(server)
#保存成全局通用的
self.dns_servers = dns_servers
self.dns_count = len(dns_servers)
def load_subname(self):
self.queue = Queue()
with open('dict/subnames.txt','r') as f:
for x in f:
subname = x.strip()
self.queue.put(subname)
print(self.queue)
#查询二级域名的函数
def scan(self):
#获取当前进程的名字
thread_id = int(threading.currentThread().name)
self.resolvers[thread_id].nameservers.insert(0,self.dns_servers[thread_id % self.dns_count])
self.resolvers[thread_id].lifetime = 10.0
self.resolvers[thread_id].timeout = 10.0
#获取队列里面任务数的函数
while self.queue.qsize() > 0 and not self.STOP_ME:
#QUEUE -> www,map,zhidao
#domainName - > baidu.com
#resolver -> 查询 www.baidu.com 的对象
#从队列中获取到二级域名
sub = self.queue.get()
#循环三次是因为对象中有三个dns服务器地址
for _ in range(3):
#sub_domain = www.baidu.com 等二级域名地址
sub_domain = sub + '.' + self.domainName
try:
#通过dns插查询对象去查询二级域名是否正确
answers = self.resolvers[thread_id].query(sub_domain)
if answers:
ips = ','.join(answer.address for answer in answers)
#开启线程锁
self.lock.acquire()
#发现的数量加1
self.found_count += 1
print(self.found_count)
print(sub_domain,ips)
#保存到结果列表中
self.result.append((sub_domain,ips))
self.lock.release()
except Exception as e:
pass
print(self.found_count,self.queue.qsize())
self.lock.acquire() #程序将要结束了
self.thread_count -= 1
self.lock.release()
def run(self):
for x in range(self.thread_NUM):
t = threading.Thread(target = self.scan,name = str(x))
#这个线程会在主线程结束的时候被注释掉
t.setDaemon(True)
t.start()
#以下这段代码的意义是只有用户在按主动退出的时候才结束程序
while self.thread_count > 1:
try:
time.sleep(0.5)
#KeyboardInterrupt 键盘输入退出ctrl + c
except KeyboardInterrupt as e:
self.STOP_ME = True
for x in self.result :
a = Address(x[0],x[1],self.domainName)
if __name__ == '__main__':
d = DNSBrute('lanou3g.com',60)
d.run()
python3爆破服务器_Python 3.5 之爆破二级域名.相关推荐
- python3攻击服务器_Python服务器用套接字互相攻击
我试图在一个文件中创建两个服务器,但他们显然在互相争斗 有人想办法让他们和好吗? 这是我的代码:# -*- coding: utf-8 -*- import socket import sys imp ...
- 2021年煤矿井下爆破模拟试题及煤矿井下爆破考试试题
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:煤矿井下爆破模拟试题参考答案及煤矿井下爆破考试试题解析是安全生产模拟考试一点通题库老师及煤矿井下爆破操作证已考过的学员汇总,相对有 ...
- 2021年煤矿井下爆破考试内容及煤矿井下爆破考试资料
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:安全生产模拟考试一点通:安全生产模拟考试一点通:煤炭生产经营单位主要负责人复审考试考前必练!安全生产模拟考试一点通每个月更新煤炭生 ...
- 2021年煤矿井下爆破考试内容及煤矿井下爆破考试技巧
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:汽车修理工(初级)考试根据新汽车修理工(初级)考试大纲要求,安全生产模拟考试一点通将汽车修理工(初级)模拟考试试题进行汇编,组成一 ...
- 服务器添加二级域名网站教程,服务器添加二级域名
服务器添加二级域名 内容精选 换一换 本节介绍网站使用华为云CDN做内容分发加速,且网站域名解析至中国大陆节点服务器的网站备案场景.如图1所示:① 企业A在华为云CDN添加加速域名(www.pictu ...
- PHP实现同服务器多个二级域名共享 SESSION
现在很多分类信息网站都会分出很多个二级域名出来,比如:sh.ganji.com(上海赶集网), su.ganji.com(苏州赶集网)等等,像这种拥有多个二级域名的网站,该如何实现同步共享sessio ...
- linux跳转乌班图服务器,Linux-Ubuntu环境安装Nginx和配置二级域名跳转
前言:Centos和ubuntu环境的区别,可以查看下nginx的配置文件wheresi nginx显示不同的目录结构,本文主要讲Ubuntu系统下如何配置 1.删除Nginx: apt-get -- ...
- 为阿里云ECS服务器二级域名绑定tomcat子目录,实现一个IP多个二级域名
摘要:前几天租了阿里云ECS服务器,选择的Windows系统,并在服务器上部署了tomcat服务器,随后我又买了一个域名,可一个域名只能指向一个IP地址,包括二级域名也只能指向一个IP地址,并不能指向 ...
- 阿里云服务器如何解析添加二级域名+阿里云服务器或者其他网站绑定域名方法+域名解析是什么意思【申明:来源于网络】
阿里云服务器如何解析添加二级域名[申明:来源于网络] 阿里云服务器如何解析添加二级域名:http://jingyan.baidu.com/article/48b558e32be7b27f39c09a5 ...
- 阿里云服务器搭建使用教程(四)域名使用及备案
搭建自己的网页肯定要有自己的域名(网址)了,不然链接都是一堆ip地址很丑的. 不要看阿里云上域名1元/年起就购买了.先看下注意事项. 0.购买域名前的注意事项 域名:必须备案才可正常使用 域名备案:要 ...
最新文章
- 数学建模学习笔记——层次分析法(评价类,专家打分一般不用)
- 前端学习(2253)如何进行团队合作
- 【蓝桥杯官网试题 - 算法提高 】P0404(模拟)
- Java Servlet(八):EL自定义函数
- python的特性注定了代码无法保密_python 基础
- 达成这个目标的数据分析师,在大厂HR眼里最新鲜吃香
- 关于RecyclerView(一)基本使用
- Makefile 的使用
- 深入理解RunLoop(四)
- 【向生活低头】联想云教室同步win10_64位电脑导致的电脑卡死在lenovo界面
- 【音视频】使用DXGI实现多屏幕采集(4-2)
- 矩阵基础11- 广义逆矩阵及应用
- 苹果计算机关机时间不准,苹果电脑怎么设置定时自动关机
- iOS 上架流程图文详解2022版 (上)
- 利用原生js制作小游戏
- 【苹果相册】苹果推从新建的私钥CSR文件Profile还分为开发和分发
- Python爬虫响应码为404错误
- 如何下载安装Devc++
- 字节跳动抖音ios客户端开发实习生一面面经
- 公司监控显示无网络连接服务器,监控显示无网络视频什么原因
热门文章
- 计算机网络 王道考研2021 第六章:应用层 -- 域名系统 DNS、域名解析
- 三口烧瓶规格有哪些_三口烧瓶有哪些规格,用途是什么 | | 化工资讯网
- jupyter notebook插件安装
- 阿里云ECS服务器组内网
- 【转】python技术博客
- RouterOS如何实现多线路带宽叠加功能
- 回文数例子,在10000以内每求出5个回文数,就进行换行操作.
- 万能科学计算机app,万能科学计算器
- The client is closed
- python chr黑方格_Python中的chr()