Scope Discovery信息收集2(史上最全,进来查漏补缺)

admin 2024年6月7日08:53:14评论8 views字数 5849阅读19分29秒阅读模式
本文由uuwan原创翻译《Bug Bounty Bootcamp The Guide to Finding and Reporting Web Vulnerabilities》 by Vickie Li,如果侵权还请及时联系。

      请点击文末#Bug Bounty Bootcamp标签查看合集,如果对您有帮助还请点赞、在看、评论、转发、关注、打赏哦!

现在让我们深入到侦察本身中来吧。首先,始终验证目标的范围。程序在其政策页面上的范围指定了允许您攻击哪些子域、产品和应用程序。

仔细核实公司的哪些资产在范围内,以避免在侦察和黑客攻击过程中越界。例如,如果example.com的政策指定dev.example.com和test.example.com超出了范围,则不应该对这些子域执行任何侦察或攻击。

一旦你验证了这一点,就会发现在范围内的实际内容。您可以攻击哪些域、子域和IP地址?该组织在这些机器上托管了哪些公司资产?

WHOIS和反向WHOIS

当公司或个人注册一个域名时,他们需要向域名注册商提供身份信息,如他们的邮寄地址、电话号码和电子邮件地址。任何人都可以使用whois命令查询这些信息,该命令搜索每个已知域的注册人和所有者信息。

您可能能够找到相关的联系信息,如电子邮件、姓名、地址或电话号码:

$ whois facebook.com
这些信息并不总是有效的,因为一些组织和个人使用一种称为域隐私的服务,该服务由第三方服务提供商用转发服务的信息替换用户的信息。
然后,您可以进行反向WHOIS搜索,通过使用组织名称、电话号码或电子邮件地址来搜索数据库,以查找已注册的域。这样,您就可以找到属于同一所有者的所有域。反向WHOIS对于寻找没有向公众公开的隐蔽域或内部域非常有用。
使用公共反向WHOIS工具,如ViewDNS.info(https://viewdns.info/reversewhois/)来进行此搜索。WHOIS和反向WHOIS将为您提供一组良好的顶级域名

Scope Discovery信息收集2(史上最全,进来查漏补缺)

IP地址

发现目标用户的顶级域名的另一种方法是定位IP地址。通过运行nslookup命令找到您所知道的域的IP地址。你可以在这里看到,facebook.com位于157.240.2.35:
└─$ nslookup facebook.com Server:         8.8.8.8 Address:        8.8.8.8#53 #此处我尝试了一下,facebook的ip地址变化了。Non-authoritative answer: Name:   facebook.com Address: 108.160.170.41 Name:   facebook.com Address: 2a03:2880:f10c:283:face:b00c:0:25de $ nslookup facebook.com Server: 192.168.0.1 Address: 192.168.0.1#53 Non-authoritative answer: Name: facebook.com Address: 157.240.2.35

    在找到已知域的IP地址后,请执行反向IP查找。反向IP查找会搜索指定IP或域名托管的同一服务器上的其它域,您也可以为此使用ViewDNS.info。

    同样在IP地址上运行whois命令,然后通过检查NetRange来查看目标是否有一个专用的IP范围。IP范围是都属于同一组织的IP地址块。如果该组织具有专用的IP范围,则您在该范围内找到的任何IP都属于该组织:

Scope Discovery信息收集2(史上最全,进来查漏补缺)

Scope Discovery信息收集2(史上最全,进来查漏补缺)

另一种找到范围内IP地址的方法是查看自治系统【自治系统:在互联网中,自治系统(AS)是一组路由器(router)和网络(network),它们共享相同的路由策略并在一个单一的组织内运行。自治系统之间通过边界网关协议(BGP)进行通信。】,自治系统是公共互联网中的可路由网络。
自治系统号(ASNs)标识了这些网络的所有者。通过检查两个IP地址是否共享一个ASN,您可以确定这些IP是否属于同一所有者。
要确定一个公司是否拥有一个专用的IP范围,请运行多个IP-to-ASN转换,看看该IP地址是否映射到单个ASN。如果一个范围内的多个ip地址属于同一个ASN,则该组织可能有一个专用的IP范围。
从以下输出,我们可以推断出在157.240.2.21到157.240.2.34范围内的IP都可能属于脸书:

Scope Discovery信息收集2(史上最全,进来查漏补缺)

└─# proxychains whois -h whois.cymru.com 108.160.160.33[proxychains] config file found: /etc/proxychains.conf[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4[proxychains] DLL init: proxychains-ng 4.16[proxychains] Dynamic chain  ...  192.168.102.51:10810  ...  192.168.102.51:10810  ...  whois.cymru.com:43  ...  OKAS      | IP               | AS Name19679   | 108.160.160.33   | DROPBOX, USDROPBOX是提供云存储的公司
whois命令中的-h标志设置了用来从中检索信息的whois服务器,而whois.cymru.com是一个将IPs转换为ASNs的数据库。
如果该公司有一个专用的IP范围,并且没有将这些地址标记为超出范围,那么您可以计划攻击该范围内的每个IP.

证书解析

查找主机的另一种方法是利用用于加密web流量的安全套接字层(SSL)证书。SSL证书的“Subject Alternative Name”字段让证书所有者详述使用相同证书的其他主机名。
因此您可以通过解析此字段找到这些主机名。使用crt.sh、Censys和Cert Spotter等线上数据库来查找域名的证书。
例如,通过使用crt.sh为facebook.com运行证书搜索,我们可以找到Facebook的SSL证书。你会看到许多属于Facebook的其他域名被列出:

Scope Discovery信息收集2(史上最全,进来查漏补缺)

Scope Discovery信息收集2(史上最全,进来查漏补缺)

图片中的红色英文翻译:对不起,您的搜索结果已被截断。目前还不可能有效地对大型结果集进行排序和分页,因此下面只显示了一个随机子集。

Scope Discovery信息收集2(史上最全,进来查漏补缺)

crt.sh网站还有一个实用功能,可以让您得到JSON格式的信息,而不是HTML,以便更容易解析。只需将URL参数output=json添加到请求URL,使用json就不会报错了
https://crt.sh/?q=facebook.com&output=jsonhttps://crt.sh/?q=facebook.com&exclude=expired&group=none&output=json

子域枚举

在目标上找到尽可能多的域名后,在这些顶级域上找到尽可能多的子域。每个子域都代表了一个攻击网络的新角度。枚举子域的最佳方法是使用自动化。
Sublist3rSubBrute Amass Gobuster这样的工具可以通过各种单词列表和策略自动枚举子域。例如,Sublist3r通过查询搜索引擎和在线子域数据库来工作,而SubBrute是一个暴力工具,它猜测可能的子域,直到找到真正的子域。Amass结合使用DNS区域传输、证书解析、搜索引擎和子域数据库来查找子域。您可以构建一个工具,它可以结合了多个工具的结果,以获得最佳的结果。
我们将在第80页的“编写你自己的侦察脚本”中讨论如何做到这一点。

要使用许多子域枚举工具,您需要向程序提供一个可能出现在子域中的术语的单词列表。你可以在网上找到一些由其他黑客制作的很好的单词表。

丹尼尔·迈斯勒在https://github.com/danielmiessler/SecLists/的列表是相当广泛相当好的。您也可以使用单词列表生成工具,如Commonspeak2 https://github.com/assetnote/commonspeak2/来基于最新的互联网数据生成单词列表。最后,您可以结合网上找到的几个单词列表,或者您自己生成的以获得最全面的结果。

这里有一个简单的命令,可以从两个单词列表中删除重复的项目:
sort -u wordlist1.txt wordlist2.txt
排序命令行工具sort会对文本文件的行进行排序。当给定多个文件时,它将对所有文件进行排序,并将输出写入终端。-u选项告诉sort,只返回排序列表中的唯一项。
Gobuster是一个爆破目标web服务器上的子域、目录和文件的工具。其DNS模式用于子域爆破,在此模式下,您可以使用标志-d来指定您要爆破的域名,以及-w来指定您要使用的字典:
gobuster dns -d target_domain -w wordlist
一旦您找到了大量的子域,您就可以通过识别模式来发现更多。例如,如果您找到例如example.com的两个名为1.example.com和3.example.com的子域,您可以猜测2.example.com可能也是一个有效的子域。
自动化这个过程的一个很好的工具是Altdns https://github.com/infosec-au/altdns/,它通过排列其它域名的名字来发现子域名。
此外,您还可以根据您对该公司的技术堆栈的了解,找到更多的子域。例如,如果您已经知道example.com使用Jenkins,那么您可以检查jenkins.example.com是否是一个有效的子域。
同时还要寻找子域中的子域。在你找到dev.semale.com之后,你可能会找到像1.dev.example.com这样的子域。您可以通过递归地运行枚举工具来查找子域的子域:将第一次运行的结果添加到已知域列表中,然后再次运行该工具。

服务枚举

接下来,枚举您所找到的机器上托管的服务。由于服务通常运行在默认端口上,所以找到它们的一个好方法是用主动或被动端口扫描去扫描机器。
在主动扫描中,您可以直接与服务器接触。主动扫描工具发送请求以连接到目标机器的端口,以查找打开的端口。
您可以使用Nmap或Masscan等工具来进行主动扫描。例如,这个简单的Nmap命令显示了在scanme.nmap.org上打开的端口

Scope Discovery信息收集2(史上最全,进来查漏补缺)

另一方面,在被动扫描中,您可以使用第三方资源来了解机器的端口,而无需与服务器进行交互。被动扫描更隐蔽,可以帮助攻击者避免被检测到。
要在被动扫描的情况下找到机器上的服务,你可以使用Shodan,一个搜索引擎,让用户找到连接到互联网的机器。
使用Shodan,您可以根据主机名或IP地址等标准发现网络摄像头、web服务器,甚至是发电厂的存在。
例如,如果您在scanme.nmap.org网站的IP地址45.33.32.156上运行Shodan搜索,您将得到图5-1中的结果。您可以看到,搜索产生的数据与我们的端口扫描不同,并提供了有关服务器的其他信息。

Scope Discovery信息收集2(史上最全,进来查漏补缺)

Shodan的替代方案包括Censys和Project Sonar。结合从不同数据库收集到的信息,以获得最佳结果。使用这些数据库,您还可以找到目标用户的IP地址、证书和软件版本。

目录爆破

接下来你可以做的事情是,要发现更多的网站的攻击面,那就是暴力破解你已经找到的web服务器的目录。在服务器上查找目录是很有价值的,因为通过它们,您可能会发现隐藏的管理面板、配置文件、密码文件、过时的功能、数据库副本和源代码文件。目录爆破有时可以允许您直接接管一个服务器!
即使您找不到任何即时的漏洞利用,目录信息也会告诉您应用程序的架构和技术。例如,一个包含phpmyadmin的路径名通常意味着该应用程序是用PHP构建的。
你可以使用Dirsearch或Gobuster进行目录爆破。这些工具使用单词列表来构造url,然后从web服务器请求这些url。如果服务器响应了200范围内的状态代码,则该目录或文件就存在。这意味着你可以浏览到这个页面,看看会是什么应用程序托管在那里。状态代码404表示该目录或文件不存在,而403表示它存在,但受到保护。仔细检查403页,看看你是否可以绕过保护来访问内容。
下面是一个运行Dirsearch命令的示例。-u标志指定主机名,而-e标志指定在构造url时要使用的文件扩展名:

Scope Discovery信息收集2(史上最全,进来查漏补缺)

Gobuster的Dir模式用于查找特定域或子域上的附加内容。这包括隐藏的目录和文件。在此模式下,您可以使用-u标志来指定您要爆破的域或子域,并使用-w来指定您要使用的文字列表:
gobuster dir -u target_url -w wordlist
手动访问你通过暴力破解找到的所有页面可能会很耗时。相反,使用像EyeWitness(https://github.com/FortyNorthSecurity/EyeWitness/) Snapper (https://github.com/dxa4481/Snapper/)这样的屏幕截图工具来自动验证页面是否托管在每个网站上。
EyeWitness接受一个url列表,并对每个页面进行屏幕截图。在一个相册应用程序中,你可以快速浏览这些,找到看起来有趣的。请密切关注隐藏的服务,如开发面板或管理面板、目录列出页面、分析页面,以及那些看起来过时和维护不当的页面。这些都是显现漏洞的常见地方。

爬取网站

另一种发现目录和路径的方法是通过网络爬虫,一个用于识别站点上的所有页面的过程。web爬虫工具以一个要访问的页面开始。然后,它可以识别嵌入在页面上的所有url并访问它们。通过递归地访问站点所有页面上的所有url,web爬虫工具可以在应用程序中发现许多隐藏的端点。
https://www.zaproxy.org/的OWASP Zed攻击代理(ZAP)有一个内置的爬虫,你可以使用(图5-2)。这个开源的安全工具包括一个扫描仪、代理服务器和许多其他特性。
Burp套件有一个类似的工具,叫做crawler,但我更喜欢ZAP的爬虫。

通过打开ZAP并选择来访问它的爬虫工具Tools->Spider

Scope Discovery信息收集2(史上最全,进来查漏补缺)

您应该会看到一个用于指定开始URL的窗口

Scope Discovery信息收集2(史上最全,进来查漏补缺)

下面这步,懂得都懂

Scope Discovery信息收集2(史上最全,进来查漏补缺)

Scope Discovery信息收集2(史上最全,进来查漏补缺)

单击“开始扫描”。您应该会在底部窗口中弹出url

Scope Discovery信息收集2(史上最全,进来查漏补缺)

您还应该看到站点树显示在ZAP窗口的左侧。这将显示在目标服务器上找到的文件和目录。

Scope Discovery信息收集2(史上最全,进来查漏补缺)

原文始发于微信公众号(SecurityBug):Scope Discovery信息收集2(史上最全,进来查漏补缺)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月7日08:53:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Scope Discovery信息收集2(史上最全,进来查漏补缺)http://cn-sec.com/archives/2817721.html

发表评论

匿名网友 填写信息