1.1子域名信息收集攻略

   在对目标网络进行***时,除了收集端口、域名、对外提供服务等信息外,其子域名信息收集是非常重要的一步,相对主站,分站的安全防范会弱一些,因此通过收集子域名信息来进行***是目前常见的一种手法。子域名信息收集可以通过手工,也可以通过工具,还可以通过普通及漏洞搜索引擎来进行分析。在挖SRC漏洞时,子域名信息的收集至关重要!

1.1.1子域名收集方法

   主域名由两个或两个以上的字母构成,中间由点号隔开,整个域名只有1个点号;子域名(Sub-domain),是顶级域名(.com.top.cn)的下一级,域名整体包括两个“.”或包括一个“.”和一个“/”。比如baidu.com是顶级域名,其rj.baidu.com则为其子域名,在其中包含了两个“.”,再举一个例子google.com 这叫一级域名或顶级域名,mail.google.com 这叫二级域名,250.mail.google.com 这叫三级域名,mail.google.com250.mail.google.com统称为子域名。在有些情况下,域名进行重定向,例如rj.baidu.com定向到baidu.com/rj,在该地址中出现了一个“.”和一个“/”,主域名一般情况是指以主域名结束的多个前缀。例如rj(软件)、bbs(论坛)等。由于域名持有者仅仅一个域名无法满足其业务的需要,因此可以注册很多个子域名,这些子域名分别指向不同的业务系统(CMS),在主站上会将有些子域名所部署的系统建立连接,但绝大部分是公司自己知道。对于***人员而言如果知道这些子域名,相当于扩大了***范围,子域名测试方法就是通过URL访问,看其返回结果,如果有页面信息返回或者地址相应,则证明其存在,否则不存在。收集子域名主要有下面一些方法:

1Web子域名猜测与实际访问尝试

最简单的一种方法,对于 Web 子域名来说,猜测一些可能的子域名,然后浏览器访问下看是否存在,这种方法只能进行初略的测试,比如baidu.com,其可能域名fanyi/v/tieba/stock/pay/pan/bbs.baidu.com等,这种方法对于常见的子域名测试效果比较好。

 2搜索引擎查询主域名地址

   在搜索引擎中通过输入“site:baidu.com”来搜索其主要域名baidu.com下面的子域名,如图1所示。在其搜索结果中可以看到有fanyiimageindex等子域名,利用搜索引擎查找子域名可能会有很多重复的页面和结果,还有可能遗漏掉爬虫未抓取的域名。

1-通过百度搜索子域名信息.jpg

1利用百度搜索子域名

一些技巧:

1allintext: = 搜索文本,但不包括网页标题和链接

2allinlinks: = 搜索链接, 不包括文本和标题。

3related:URL = 列出于目标URL地址有关的网页。

4link:URL = 列出到链接到目标URL的网页清单。

5)使用“-”去掉不想看的结果,例如site:baidu.com -image.baidu.com

3.查询DNS的解析记录

通过查询其域名下的mxcnmae记录,主要通过nslookup命令来查看。例如:

nslookup -qt=mx 163.com  //查询邮箱服务器,其mx可以换成一下的一些参数进行查询。

A 地址记录(Ipv4)

AAAA 地址记录(Ipv6

AFSDB Andrew文件系统数据库服务器记录

ATMA ATM地址记录

CNAME 别名记录

HINFO 硬件配置记录,包括CPU、操作系统信息

ISDN 域名对应的ISDN号码

MB 存放指定邮箱的服务器

MG 邮件组记录

MINFO 邮件组和邮箱的信息记录

MR 改名的邮箱记录

MX 邮件服务器记录

NS 名字服务器记录

PTR 反向记录

RP 负责人记录

RT 路由穿透记录

SRV TCP服务器信息记录

TXT 域名对应的文本信息

X25 域名对应的X.25地址记录

4.基于DNS查询的暴力破解

   目前有很多开源的工具支持子域名暴力破解,通过尝试字典+“.”+“主域名进行测试,例如字典中有:bbs/admin/manager,对baidu.com进行尝试,则会爬取:

bbs.baidu.comadmin.baidu.commanager.baidu.com,通过访问其地址,根据其相应状态关键字来判断是否从开启和存在。

5.手工分析

通过查看主站主页以及相关页面,从html代码以及友情链接地地方去手工发现,担任其主域名或者其它域名下的crossdomain.xml文件会包含一些子域名信息。

1.1.2kali子域名信息收集工具

kali linux下有dnsenumdnsmapdnsrecondnstracerdnswalkfierceurlcrazy共七个dns信息收集与分析工具,如图2所示。

2.jpg

2kali linux dns信息收集与分析工具

1.1.2.1dnsenum

    dnsenum的目的是尽可能收集一个域的信息,它能够通过谷歌或者字典文件猜测可能存在的域名,以及对一个网段进行反向查询。它可以查询网站的主机地址信息、域名服务器、mx record(函件交换记录),在域名服务器上执行axfr请求,通过谷歌脚本得到扩展域名信息(google hacking),提取自域名并查询,计算C类地址并执行whois查询,执行反向查询,把地址段写入文件。目前最新版本为1.2.4,下载地址:https://github.com/fwaeytens/dnsenum

kali***测试平台配置版本为1.2.3

1.安装git clone https://github.com/fwaeytens/dnsenum.git

更新必需插件:apt-get install cpanminus

2.使用命令

dnsenum.pl  [选项]  <域名>

普通选项

  --dnsserver   <server>  指定dns服务器,一般可以直接使用目标dns服务器,(PS8.8.8.8 是一个IP地址,是Google提供的免费dns服务器的IP地址,另一个是:8.8.4.4)来进行AIPv4地址)、NS(服务器记录)和MX(邮件交换记录)查询。

  --enum              快捷参数,相当于--threads 5 -s 15 -w(启动5线程,谷歌搜索15条子域名,)

  -h, --help            打印帮助信息.

  --noreverse          忽略反转查询操作。

  --nocolor             禁用ANSI颜色输出

  --private             domain_ips.txt文件末端显示和保持私有IP地址。

  --subfile <file>       将所有有效子域写入[file]中。

  -t, --timeout <value>   设置tcp udp超时的秒数(默认10)

  --threads <value>    在不同查询中将会执行的线程数

  -v, --verbose        显示错误信息和详细进度信息

google搜索选项:

  -p, --pages <value>   从谷歌搜索的页面数量,默认5,-s参数必须指定,如果无需使用google抓取,则值指定为0

  -s, --scrap <value>   子域名将被Google搜索的最大值,缺省值是15.

暴力破解选线:

  -f, --file <file>     从文件中读取进行子域名暴力破解

  -u, --update  <a|g|r|z> 更新将有效的子域名到-f参数指定的文件中,具体的更新方式见update参数列表:

        a (all)      更新使用所有的结果

        g            更新只使用google搜出的有效结果。

        r           更新只使用反向查询出的有效结果

        z            更新只使用区域转换的有效结果

  -r, --recursion       穷举子域,暴力破解所有发现有DS记录的子域。

WHOIS 选项:

  -d, --delay <value>  whois查询的最大值,缺省是3

  -w, --whois           C端网络上执行whois查询

反向查询选项:

  -e, --exclude <regexp> 从反向查找结果表达式匹配中排除PTR记录,对无效的主机名有用。

输出结果选线:

  -o --output <file>    输入xml格式文件名可以被导入MagicTree (www.gremwell.com)

3.常用命令

1)使用dns.txt文件对baidu.com进行子域名暴力破解

./dnsenum.pl -f dns.txt baidu.com

2)查询baidu.com域名信息,主要查询主机地址、名称服务器、邮件服务器以及尝试区域传输和获取绑定版本。

./dnsenum.pl   baidu.com

3)对域名example.com不做逆向的LOOKUP-noreverse),并将输出保存到文件(-o mydomain.xml)

./dnsenum.pl --noreverse -o mydomain.xml example.com

1.2.1.2dnsmap

dnsmap最初是在2006年发布的,主要用来收集信息和枚举DNS信息,默认在kali中安装,其下载地址:https://github.com/makefu/dnsmap,目前最新版本为

1.安装

git clone https://github.com/makefu/dnsmap.git

make 或者gcc -Wall dnsmap.c -o dnsmap

2.使用参数

命令:dnsmap  <目标域名>  [选项]

选项:

-w <字典文件>

-r <常规结果文件>

-c <csv文件保存>

-d <延迟毫秒 >

-i <忽略ips > (在获得误报时很有用)

3.使用示例

1)直接枚举域名

dnsmap baidu.com

2)使用默认字典wordlist_TLAs.txt进行暴力枚举,并保存结果到/tmp/baidu.txt

dnsmap baidu.com -w wordlist_TLAs.txt -r /tmp/baidu.txt

3)以3000毫秒延迟,扫描结果以常规文件按照时间格式保存在/tmp目录

dnsmap baidu.com -r /tmp/ -d 3000

4)批量方式暴力破解目标域列表

 ./dnsmap-bulk.sh domains.txt / tmp / results /

4.总结

 dnsmap暴力破解子域名信息,需要字典配合,速度比较快。

1.1.2.3 dnsrecon

dnsreconCarlos Perez Python开发,用于DNS侦察,该工具可以区域传输、反向查询、暴力猜解、标准记录枚举、缓存窥探、区域遍历和Google查询。目前最新版本0.8.12,其下载地址:https://github.com/darkoperator/dnsrecon

1.参数

用法: dnsrecon.py <选项>

选项:

   -h, --help                   显示帮助信息并退出,执行默认命令也显示帮助信息

   -d, --domain      <domain>   目标域名

   -r, --range       <range>    反向查询的IP地址范围

   -n, --name_server <name>    如果没有给定域名服务器,则默认使用目标的SOA

   -D, --dictionary  <file>     暴力破解的字典文件

   -f                   过滤掉域名暴力破解,解析到通配符定义

   -t, --type        <types>    枚举执行的类型,以逗号进行分隔。

                                std       SOA, NS, A, AAAA, MX and SRV.

                                rvl       一个给定的反向查询CIDR或者地址范围.

                                brt      域名暴力破解指定的主机破解字典。

                                srv       SRV 记录.

                                axfr      测试所有ns服务器的区域传输。

                                goo      利用谷歌执行搜索子域和主机.

                                bing   利用bing执行搜索子域和主机                                

   -g                           利用google进行枚举.

   -b                           利用bing进行枚举.

   --threads         <number>  线程数

   --lifetime        <number>   等待服务器响应查询的时间。

   --db              <file>     SQLite 3文件格式保存发现的记录.

   --xml             <file>     XML文件格式保存发现的记录.

   --iw                继续通配符强制域,即使通配符记录被发现.

   -c, --csv         <file>     csv文件格式.

   -j, --json        <file>     JSON 文件

   -v                      显示详细信息。

2.使用示例

1)执行标准的DNS查询

./dnsrecon.py -d <domain>

2DNS区域传输

DNS区域传输可用于解读公司的拓扑结构.如果发送DNS查询,列出了所有DNS信息,包括MXCNAME,区域系列号,生存时间等,这就是区域传输漏洞。DNS区域传输漏洞现今已不容易发现,DNSrecon可使用下面方法查询

./dnsrecon.py -d <domain>  -a

./dnsrecon.py -d <domain> -t axfr

3)反向DNS查询

./dnsrecon.py -r <startIP-endIP>

4DNS枚举,会查询AAAACNAME记录:

./dnsrecon.py -d <domain> -D <namelist> -t brt

5)缓存窥探

DNS服务器存在一个DNS记录缓存时,就可以使用这个技术.DNS记录会反应出许多信息,DNS缓存窥探并非经常出现

./dnsrecon.py -t snoop -n Sever -D <Dict>

6)区域遍历

./dnsrecon.py -d <host> -t zonewalk

1.1.2.4dnstracer

dnstracer最新版本1.9,下载地址http://www.mavetju.org/download/dnstracer-1.9.tar.gz

Usage: dnstracer [选项] [主机]

        -c: 禁用本地缓存,默认启用

        -C: 启用negative缓存, 默认启用

        -o: 启用应答概览,默认禁用

        -q <querytype>: DNS查询类型, 默认 A

        -r <retries>: DNS请求重试的次数,默认为3

        -s <server>: 对于初始请求使用这个服务器,默认为localhost,如果指定则a.root-servers.net将被使用。

        -t <maximum timeout>:每次尝试等待的限制时间

        -v: verbose

        -S <ip address>:使用这个源地址.

        -4: 不要查询IPv6服务器

1.1.2.5 dnswalk

dnswalk是一个DNS调试器。它执行指定域的区域传输,并以多种方式检查数据库的内部一致性以及准确性,主要用来调试区域传输漏洞,其下载地址:https://sourceforge.net/projects/dnswalk/,主要参数:

-r    递归子域名

 -i    禁止检查域名中的无效字符。

-a    打开重复记录的警告.

-d    调试

-m   仅检查域是否已被修改。(只有dnswalk以前运行过才有效)

-F    开启"facist" 检查

 -l    检查瘸腿的代表团

使用方法:

dnswalk baidu.com.

注意,其域名后必须加一个“.”,程序写于1997年,有些老了!

1.1.2.6 fierce

测试区域传输漏洞和子域名暴力破解。

fierce -dns blog.csdn.net

fierce -dns blog.csdn.net -wordlist myDNSwordlist.txt

1.1.2.7urlcrazy

Typo域名是一类的特殊域名。用户将正确的域名错误拼写产生的域名被称为Typo域名。例如,http://www.baidu.com错误拼写为http://www.bidu.com,就形成一个Typo域名。对于热门网站的Typo域名会产生大量的访问量,通常都会被人抢注,以获取流量。而***也会利用Typo域名构建钓鱼网站。Kali Linux提供对应的检测工具urlcrazy,该工具统计了常见的几百种拼写错误。它可以根据用户输入的域名,自动生成Typo域名;并且会检验这些域名是否被使用,从而发现潜在的风险。同时,它还会统计这些域名的热度,从而分析危害程度。

urlcrazy [选项] domain

选项

 -k, --keyboard=LAYOUT  Options are: qwerty, azerty, qwertz, dvorak (default: qwerty)

 -p, --popularity       用谷歌检查域名的受欢迎程度

 -r, --no-resolve       不解析DNS

 -i, --show-invalid     显示非法的域名

 -f, --format=TYPE     输出csv或者可阅读格式,默认可阅读模式

 -o, --output=FILE      输出文件

 -h, --help            This help

 -v, --version          打印版本信息

例如:查看baidu.com的仿冒域名:

urlcrazy -i baidu.com

1.1.3windows下子域名信息收集工具

1. subDomainsBrute子域名暴力破解工具

subDomainsBrute是李劼杰开发的一款开源工具,subDomainsBrute主要目标是发现其他工具无法探测到的域名, Googleaizhanfofa。高频扫描每秒DNS请求数可超过1000次,目前最新版本为1.1,对于大型公司子域名的效率非常高,比国外的一些工具好用。

1)下载及设置

git clone https://github.com/lijiejie/subDomainsBrute.git

cd subDomainsBrute

chmod +x subDomainsBrute.py

2)使用参数

--version  显示程序版本信息

  -h, --help  显示帮助信息

  -f FILE    对多个文件中的子域名进行暴力猜测,文件中一行一个域名。

  --full      文件subnames_full.txt将用来进行全扫描。

  -i, --ignore-intranet 忽略内网IP地址进行扫描

  -t THREADS, --threads=THREADS 设置扫描线程数,默认为200                        

  -p PROCESS, --process=PROCESS 扫描进程数,默认为6

  -o OUTPUT, --output=OUTPUT  输出文件

3)实际使用

./subDomainsBrute.py qq.com

qq.com进行子域名暴力破解,扫描结束后将其结果保存为qq.com.txt

注意,如果是在python环境下,有的需要安装dnspythonpip install dnspython)才能正常运行。扫描效果如图3所示,对39万多域名进行扫描,发现8488个,仅用424.7秒。3-子域名查找.jpg

3 subDomainsBrute子域名暴力破解

2. Layer子域名挖掘机

Layer子域名挖掘机是Seay写的一款国产好用的子域名暴力破解工具,其运行平台为windows,可在window xp/2003/2008等环境中使用,需要安装.net 4.0环境,操作使用比较简单,在域名输入框中输入域名,选择dns服务,启动即可,运行界面如图4所示。下载地址:https://pan.baidu.com/s/1i5NpcJ7

4.jpg

4 Layer子域名挖掘机

1.1.4子域名在线信息收集

   目前互联网上一些个人或者公司提供了域名查询和资产管理,可以通网站进行在线查询。

1.查询啦子域名查询

   网站地址http://subdomain.chaxun.la/,输入域名信息即可查询,该网站只收录流量高的站点,对于小网站查询效果较差,例如查询百度,如图5所示,可以看到有880条记录。

5.jpg

5查询子域名

2.站长工具子域名查询

   子域名查询地址:http://tool.chinaz.com/subdomain/,使用同样的域名查询在chinaz中仅仅显示40条。

3. 云悉在线资产平台查询

信息查询地址:http://www.yunsee.cn/info.html,对百度域名进行查询,其结果显示有6170条,如图6所示,记录包含域名和标题,还可以查看web信息、域名信息和IP信息等。

4-在线资产查询.jpg

6云悉在线子域名查询

4.威胁平台子域名资产管理

一些威胁平台都提供了子域名资产管理,但大都需要注册,才能查看,例如有:

微步:https://x.threatbook.cn/domain/baidu.com

360天眼:https://ti.360.net/

http://www.webscan.cc/

5.根据 HTTPS 证书查询子域名

crt.sh 网站(https://crt.sh/)提供了通过域名查证书,或者通过证书查找域名。该方法也是收集子域名的一个好方法,在对大公司挖掘漏洞时比较有效。

6.收集的一些在线等域名枚举工具

https://github.com/lijiejie/subDomainsBrute (Classical Subdomain Enumeration Tool)

https://github.com/ring04h/wydomain (Intergrated Subdomain Enumeration Tool via Massive Dictionary Rules)

https://github.com/le4f/dnsmaper (Subdomain Enumeration via DNS Record)

https://github.com/0xbug/orangescan (Online Subdomain Enumeration Tool)

https://github.com/TheRook/subbrute (Subdomain Enumeration via DNS Record)

https://github.com/We5ter/GSDF (Subdomain Enumeration via Google Certificate Transparency

https://github.com/mandatoryprogrammer/cloudflare_enum (Subdomain Enumeration via CloudFlare

https://github.com/guelfoweb/knock (Knock Subdomain Scan)

https://github.com/Evi1CLAY/CoolPool/tree/master/Python/DomainSeeker (An Intergratd Python Subdomain Enumeration Tool)

https://github.com/code-scan/BroDomain (Find brother domain)

https://github.com/chuhades/dnsbrute (a fast domain brute tool)

https://github.com/yanxiu0614/subdomain3 (A simple and fast tool for bruting subdomains)

1.1.5子域名利用总结

通过对目前市面上一些常见的域名收集工具进行测试和分析,发现kali上面集成的工具比较成就,很多子域名暴力破解工具效率低下,在windows下法师开发的layer子域名暴力破解工具效果和效率都不错,且支持导出。

1.比较好用的子域名暴力破解工具

1dnsenumdnsmapdnsrecon

2subDomainsBrute

3)一些在线资产管理平台,例如云悉等。

2.在线的一些漏洞搜索引擎也可以收集域名信息

1dnsdbhttps://www.dnsdb.io

2censyshttps://www.censys.io/

3fofahttps://fofa.so/

4)钟馗之眼:https://www.zoomeye.org/

5shodanhttps://www.shodan.io/

2.子域名收集的完毕程度,可以增加***成功的几率