如何使用多线程python扫描二级子域名

如何使用多线程python扫描二级子域名,第1张

日站没什么好办法了往往也会想到其二级域名,于是写了一个比较简陋的扫描二级域名的程序

速度一般般,不过如果线程开多了还是可以的

源程序(subdomain.py):

#! /usr/bin/env python

#coding=utf-8

import threading , Queue, optparse, os

import pycurl, StringIO, msvcrt, socket

queue = Queue.Queue()

class ScanThread(threading.Thread):

def __init__(self, queue):

threading.Thread.__init__(self)

self.queue = queue

def run(self):

while 1:

p = self.queue.get()

if p is None:

break

try:

sub_domain = p+'.'+domain

crl = pycurl.Curl()

crl.fa = StringIO.StringIO()

crl.setopt(pycurl.URL,sub_domain)

crl.setopt(pycurl.VERBOSE,0)

crl.setopt(pycurl.FOLLOWLOCATION,1)

crl.setopt(pycurl.MAXREDIRS,5)

crl.setopt(pycurl.CONNECTTIMEOUT, 60)

crl.setopt(pycurl.TIMEOUT, 300)

crl.setopt(crl.WRITEFUNCTION,crl.fa.write)

try:

crl.perform()

ip=socket.gethostbyname(sub_domain)

print sub_domain, ip

content = sub_domain+' '+ip+'\n'

self.writefile(wfile, 'a+', content)

except:

pass

except:

print "error"

self.writefile('F:/py/Domain/log.txt', 'a+', p+'\n')

queue.task_done()

def writefile(self, path, type, content):

f = open(path, type)

f.write(content)

f.close

class ThreadGetKey(threading.Thread):

def run(self):

while 1:

try:

chr = msvcrt.getch()

if chr == 'q':

print "stopped by your action ( q )"

os._exit(1)

else:

continue

except:

os._exit(1)

# now starting...

def main():

parser = optparse.OptionParser('Usages: %prog -d <domain>-r <read>-w <write>-t <thread(s)>')

parser.add_option('-d',dest='domain',type='string',help='the url to query')

parser.add_option('-r',dest='read',type='string',help='the dic file to read default=F:/py/Domain/dic.txt', default='F:/py/Domain/dic.txt')

parser.add_option('-w',dest='write',type='string',help='save the reasults to the catalogue \

default=F:/py/Domain/results.txt', default='F:/py/Domain/results.txt')

parser.add_option('-t',dest='threads',type='int',help='set the thread(s) default=10',default=10)

(options,args) = parser.parse_args()

if options.domain == None:

使用方法:

python subdomain.py -d baidu.com -r dic.txt -w results.txt -t 50

主要影响速度的是这一块代码:

try:

crl.perform()

ip=socket.gethostbyname(sub_domain)

print sub_domain, ip

content = sub_domain+' '+ip+'\n'

self.writefile(wfile, 'a+', content)

except:

pass

主要是一开始理解错了,以为二级域名不存在和某个网页不存在一样会返回404代码,于是想到用返回码来判断。

结果后来程序一直出错,才发现当二级域名不存在的时候返回的是“未找到服务器”,根本不存在返回码,于是只能使用一个try来调试错误,主要速度也就被这里影响了。当然线程开多了也是可以看到刷屏效果的~~

1、首先在浏览器中搜索“阿里云”然后找到他们的官网点击进去。进去阿里云之后点击右上菜单中的登录,然后登陆你域名所在账户。

2、登陆过账号之后,还点击右上角菜单中的“控制台”。

3、进入控制台之后,点击“域名”选项。

4、然后选择你想要解析的域名,点击右侧“解析”。

5、然后在解析设置页面中,点击“添加记录”。

6、然后填写你解析域名的记录类型,在主机记录中填写你二级域名的记录,在记录值中填写IP地址,然后点击确定,完成网站域名二级解析。

北极熊扫描器产品功能:1.列举同ip域名,C段查询,快速探测网站标题,程序类型,服务环境2.支持批量信息扫描,检测WEB端口开启自动添加到扫描目标内3.支持导入/导出扫描列表,并提供表格以及文本保存方式4.目录扫描,支持ASP,PHP,ASPX,JSP,网站目录等扫描方式,配置可自定义更改5.EXP漏洞扫描,可单选脚本,也可全部脚本进行测试,支持全列表扫描6.代码审计,支持扫描任何格式中内容,方便查找网页当中的木马,新增目录扫描7.后台测试,与burpsuite配合使用,软件提供2种编码测试,不提供密码字典8.主机侦查,提供自定义端口查询、类型、编码以及连接速率,可导出列表9.收藏夹功能,支持收藏扫描网站,便于下次查看,双击可以修改备注信息10.软件设置,支持扫描速度、响应等待、自定义端口、字典、操作习惯设置新版本与旧版本增加了哪些功能?去掉了熊眼扫描功能(在主界面-批量信息)进行了更改,检查每个IP,PING通了才会加入到列表中,扫描速度比原来快80%!列举同IP域名采用了双引擎,站长工具+114best,如果其中一项查询失败,将会自动使用备用查询便利性设计,多个列表增加了可导出格式为XLS,查看更为直观方便目录扫描增加了“来自配置”,以及获取标题功能,方便审阅您检测的网站地址,并可导出扫描结果EXP漏洞扫描增加了预览页面,延时等待功能代码审计功能增加了目录扫描,可一键筛选文件增加了后台扫描,结合burpsuite使用主机侦查,去掉了弱口令探测,增加了关键端口的单独检测,连接速率代码更新,增加IP地址,物理地址,可导出为表格文件我的收藏,好的地址?收藏起来,下次操作软件设置,默认日志功能开启,方便记忆自己的操作备份\还原,软件自带备份还原功能,可以快速备份扫描结果,一键恢复扫描内容百度网盘地址:密码:parj


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/88188.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-06
下一篇2023-03-06

发表评论

登录后才能评论

评论列表(0条)

    保存