01信息收集之DNS信息查询综合实验
- whois查询
- 站长之家查询
- 利用nslookup工具进行域名查询(windows中的命令提示符中进行操作,kali终端中使用dig进行查询
- 使用DNS子域名爆破工具,针对子域名进行爆破,同时解析出对应的IP地址。
- 在github上查找subDomainsBrute工具。--在03子域名收集有写如何安装使用
- python3 subDomainsBrute.py --full -t 10 sangfor.com.cn -w
- 使用-w进行扩展扫描,增大命中概率。
- 利用多地Ping工具,查看域名真实IP
- ip地址反查
02信息收集之DNS域传输实验
-
dns原理
DNS作为重要的互联网基础设施,难免成为黑客的重点攻击目标,服务的稳定性尤为重要。 DNS服务器分为:主服务器、备份服务器和缓存服务器。在主备服务器之间同步数据库,需要使用“DNS域传送”。域传送是指后备服务器从主服务器拷贝数据,并用得到的数据更新自身数据库。 若DNS服务器配置不当,可能导致匿名用户获取某个域的所有记录。造成整个网络的拓扑结构泄露给潜在的攻击者,包括一些安全性较低的内部主机,如测试服务器。凭借这份网络蓝图,攻击者可以节省很少的扫描时间。 大的互联网厂商通常将内部网络与外部互联网隔离开,一个重要的手段是使用Private DNS。如果内部DNS泄露,将造成极大的安全风险。风险控制不当甚至造成整个内部网络沦陷。
进入DNS域传输漏洞环境路径,命令如下
cd ~/vulhub-master/dns/dns-zone-transfer
启动漏洞环境,命令如下
docker-compose up -d
查看容器是否启动,命令如下,重点看status这一列。有启动时间即可。表示环境已开启。
docker ps
- 查看靶机ip,ifconfig关注ens18显示的域名服务器ip地址
-
漏洞复现
03信息收集之子域名收集
子域名爆破
首先
下载子域名爆破工具subDomainsBrute:
git clone https://github.com/lijiejie/subDomainsBrute
- 然后增加执行权限:
- 进入工具的文件夹,使用命令
chomd +x subDomainsBrute
给执行脚本程序赋予执行权限 - 最后开始使用:
- 注意:禁止对非授权域名进行探测、爆破,避免触犯国家相关法律规定。
python3 subDomainsBrute.py sangfor.com.cn -w
搜索引擎
google、bing
site:[域名] -www
-www的意思是结果中去掉带www的
baidu
site:[域名]
使用theHarvester
工具
options
-h, --help show this help message and exit
-d DOMAIN, --domain DOMAIN
Company name or domain to search.
-l LIMIT, --limit LIMIT
Limit the number of search results, default=500.
-S START, --start START
Start with result number X, default=0.
-p, --proxies Use proxies for requests, enter proxies in proxies.yaml.
-s, --shodan Use Shodan to query discovered hosts.
--screenshot SCREENSHOT
Take screenshots of resolved domains specify output
directory: --screenshot output_directory
-v, --virtual-host Verify host name via DNS resolution and search for virtual
hosts.
-e DNS_SERVER, --dns-server DNS_SERVER
DNS server to use for lookup.
-t, --take-over Check for takeovers.
-r [DNS_RESOLVE], --dns-resolve [DNS_RESOLVE]
Perform DNS resolution on subdomains with a resolver list or
passed in resolvers, default False.
-n, --dns-lookup Enable DNS server lookup, default False.
-c, --dns-brute Perform a DNS brute force on the domain.
-f FILENAME, --filename FILENAME
Save the results to an XML and JSON file.
-b SOURCE, --source SOURCE
anubis, baidu, bevigil, binaryedge, bing, bingapi,
bufferoverun, brave, censys, certspotter, criminalip, crtsh,
dnsdumpster, duckduckgo, fullhunt, github-code,
hackertarget, hunter, hunterhow, intelx, netlas, onyphe,
otx, pentesttools, projectdiscovery, rapiddns, rocketreach,
securityTrails, sitedossier, subdomaincenter,
subdomainfinderc99, threatminer, tomba, urlscan, virustotal,
yahoo, zoomeye
-d 指定域名
-g 使用google搜索
-s 使用shodan搜索
-b 指定某一种或全部(all)搜索。如果要使用shodan、github等引擎搜索,需要设置对应的API-key,对应的文件是api-keys.yaml,路径为/etc/theHarvester目录下。
使用dns爆破参数-c
04信息收集之子域名收集2
使用aquatone工具集,实现对目标子域名信息的收集,并实现对主机端口的扫描探测。
aquatone是一个工具集合,通过3个工具的配合,完成目标子域名和相关信息收集。
安装
sudo gem install aquatone
options
Usage: aquatone-discover OPTIONS
-d, --domain DOMAIN Domain name to assess
--nameservers NAMESERVERS Nameservers to use
--fallback-nameservers NAMESERVERS
Nameservers to fall back to
--[no-]ignore-private Ignore hosts resolving to private IP addresses
--set-key KEY VALUE Save a key to key store
--list-collectors See information on collectors
--only-collectors COLLECTORS Only run specified collectors
--disable-collectors COLLECTORS
Disable specified collectors
-t, --threads THREADS Number of concurrent threads to use
-s, --sleep SECONDS Seconds to sleep between lookups
-j, --jitter PERCENTAGE Jitter factor for sleep intervals
--publicwww-pages PAGES Number of PublicWWW pages to process (default: 30)
--netcraft-pages PAGES Number of Netcraft pages to process (default: 10)
--gtr-pages PAGES Number of Google Transparency Report pages to process (default: 30)
--wordlist WORDLIST OPTIONAL: wordlist/dictionary file to use for subdomain bruteforcing
--censys-pages PAGES Number of Censys API pages to process (default: 10)
--wayback-machine-timeout SECONDS
Timeout for Wayback Machine collector in seconds (default: 30)
--shodan-pages PAGES Number of Shodan API pages to process (default: 10)
-h, --help Show help
-d,指定目标域名
--nameservers,指定使用的名字服务器
-t,指定查询线程数
扩展
aquatone-discover
支持扩展查询,比如shodan
搜索引擎,扩展查询需要指定其API Key
值。
第2步骤中的截图,因为没有指定相关扩展查询的API Key
,所以显示Skipped
(跳过)。
设置shodan API key,使用shodan搜索更全面的域名信息
设置完成,key会保存在 ~/aquatone/
目录下的.keys.yml
文件中,该文件是隐藏的,可以使用命令ls -la
查看到该文件,如下图所示。
当没有设定扩展收集器的key时,可以将对应的收集器排除,提高探测效率。对应的参数是--disable-collectors
,多个收集器,使用,
隔开。
使用aquatone-discover
命令,对已授权目标域名进行信息探测。
图中,使用参数-d
指定了目标域名;使用-t
指定1个线程,-s
指定每隔2秒发送查询包。
上图是工具查询到的信息回显,扫描完成后,会在目录中生成结果文件夹,名称与目标域名一致。
扫描结束,如下图所示。
图中可见3部分,上方第一部分,为扫描过程中的实时回显,中间部分是按照所属C段解析出了几台主机;最下方显示将结果信息存放到对应路径的文件中(以两种不同的格式,存放了域名和IP的对应关系)。如下图所示。
aquatone-scan 扫描
减少扫描的目标,仅导出www.sanfor.com.cn
域名信息,在sangfor.com.cn
文件夹下,按照对应格式,编写两个文件(hosts.txt
和hosts.json
),主要是json
格式的文件,用于接下来的端口扫描。详见下图1处。
扫描命令:aquatone-scan -d sangfor.com.cn -p 22,3389,80,21 -t 1 -s 2
,详见图中2处。
-d,指定域名,此处域名需与 discover 节点扫描的内容一致
-p,指定扫描的端口,使用逗号分隔
-t,指定线程数
-s,指定发送请求时,间隔2秒
图中可见,探测出80
端口是处于开放状态,相关信息已存放在open_ports.txt
和urls.txt
文件中。
05信息收集之C段扫描
使用nmap工具探测信息资产(IP地址段)
Nmap –sn –PE -n 192.168.0.0/24 –oX out.xml
-sn 不扫描端口
-PE ICMP 扫描
-n 不进行dns解析
查看保存路径下,已输出指定文件,文件中保存了扫描的结果。
Masscan扫描
安装
apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com
wget -q -O - https://archive.kali.org/archive-key.asc | sudo apt-key add
apt update
安装工具所需依赖环境。
apt-get install git gcc make libpcap-dev
下载工具,并进行编译。
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
C段探测
masscan –p 80 ip/24 --rate 10000 -oL output.txt
-p 设置端口
--rate 发包速率
-oL 输出位置
通过vim
工具,查看扫描的完整结果。
从图中可见,当前C段中,80端口开放的主机,共计有13台主机,其中192.168.0.69
主机,为我们实验当中的靶机。