不是查找子域名的方法

不是查找子域名的方法,第1张

Findomain。

Findomain不使用子域名寻找的常规方法,而是使用证书透明度日志来查找子域,并且该方法使其工具更加快速和可靠。所以Findomain不是查找子域名的方法

查找子域名常用方法和工具:微步在线、Dnsdb查询法、搜索引擎、子域名扫描器、在线子域名查询网站、DNS在线查询网站。

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

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

源程序(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来调试错误,主要速度也就被这里影响了。当然线程开多了也是可以看到刷屏效果的~~

子域名探测方法:

•在线接口

•暴力枚举

•搜索引擎

•Certificate Transparency(证书透明)

•Subject Alternate Name (SAN) - 主题备用名称

•Public datasets(公开数据集)

•信息泄露

•内容解析(HTML,JavaScript,文件)

•DNS解析

•区域传送

•DNS aggregators(DNS聚合器)

•DNS Cache Snooping(域名缓存侦测)

•Alterations &permutations(换置 &排序)

•DNSSEC(Domain Name System Security Extensions),DNS安全扩展,DNSSEC区域漫步

•CSP HTTP首部

•SPF记录

•虚拟主机爆破

•ASN发现

•爬虫 Scraping(抓取)

SSL/TLS证书


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存