本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/passiverecon

简介

本文将阐述被动侦察和主动侦察的基本概念,然后重点介绍与被动侦察相关的一些必要工具,我们将学习以下三个用于被动侦察的命令行工具:

  • whois:查询 WHOIS 服务器(WHOIS的含义是域名查询服务)
  • nslookup:查询 DNS 服务器
  • dig:查询 DNS 服务器

我们可以使用whois工具来查询WHOIS记录,使用 nslookup 和 dig工具来查询 DNS 数据库记录,这些都是公开的记录,因此不会惊动你想要渗透的目标。

我们还会了解两个在线工具的使用:

  • DNSDumpster
  • Shodan.io

这两个在线网站服务工具允许我们收集关于目标的信息,并且无需直接连接到目标。在学习本文知识点之前,建议先了解网络基础知识以及关于linux命令行的基础知识。

被动侦察VS主动侦察

在计算机系统和网络出现之前,孙子在《孙子兵法》中教导说:“知己知彼,百战不殆” ,在网络攻防中:如果你扮演的是攻击者的角色,你需要收集有关目标系统的信息;如果你扮演的是防御者的角色,你需要知道你的对手会发现哪些关于你的系统和网络的信息。

侦察(recon)可以定义为收集目标信息的初步调查,这是统一杀伤链中在系统上获得初步立足点的第一步–关于统一杀伤链: https://www.unifiedkillchain.com/

我们将侦察分为:

  • 1.被动侦察(被动信息收集);
  • 2.主动侦察(主动信息收集)。

在被动侦察中,你将依赖于公开可用的知识,关于这些知识你无需直接与目标接触即可从公开可用的资源中进行获取,你可以把被动侦察想象成 你是从远处看着目标区域,而不是实际踏进目标区域。

image

被动侦察包括许多活动,例如:

  • 从公共DNS服务器中查找目标域的 DNS 记录。

  • 查看与目标网站相关的招聘广告。

  • 阅读有关目标公司的新闻。

而在主动侦察中,无法像被动侦察一样谨慎地实现侦察目的,主动侦察需要与目标进行直接接触,你可以把主动侦察想象成你正在检查门窗上的锁,以及正在检查其他潜在的进入目标的入口点。

image

主动侦察活动的例子包括:

  • 连接到目标公司的服务器,例如 HTTP、FTP 和 SMTP等。
  • 致电目标公司以尝试获取信息(社会工程学)。
  • 冒充修理工进入目标公司场所。

考虑到主动侦察的侵入性,你需要在获得适当的法律授权的情况下才能开展相关活动,否则你可能很快就会陷入法律纠纷中。

答题

image

Whois工具

WHOIS是遵循RFC 3912规范的请求和响应协议,WHOIS 服务器在TCP端口43上侦听传入的请求。在现实场景中:域名注册商负责维护其租用域名的WHOIS记录,WHOIS服务器则负责回复与请求的域相关的各种信息。

通过WHOIS我们可以了解:

注册商:域名是通过哪个注册商注册的?
注册人的联系信息:姓名、组织、地址、电话等(如果使用了隐私服务隐藏,则注册人的联系信息将不可见)。
创建、更新和到期日期:域名首次注册的时间是什么时候? 最后一次更新是什么时候? 什么时候需要更新?
名称服务器:将请求哪个服务器来解析域名?

要获取以上信息,我们需要使用 whois 客户端或在线服务。虽然许多在线服务都能够提供whois信息,但是,使用本地 whois 客户端获取信息通常更快、更方便。

通过使用你本地的Linux 机器,例如 Parrot 或 Kali,你可以轻松地在你的攻击机终端上访问whois 客户端。基础语法是 whois DOMAIN_NAME,其中DOMAIN_NAME 是你尝试想获取更多信息的目标域。

以下是执行 whois tryhackme.com 命令的示例。

user@TryHackMe$ whois tryhackme.com
[Querying whois.verisign-grs.com]
[Redirected to whois.namecheap.com]
[Querying whois.namecheap.com]
[whois.namecheap.com]
Domain name: tryhackme.com
Registry Domain ID: 2282723194_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.namecheap.com
Registrar URL: http://www.namecheap.com
Updated Date: 2021-05-01T19:43:23.31Z
Creation Date: 2018-07-05T19:46:15.00Z
Registrar Registration Expiration Date: 2027-07-05T19:46:15.00Z
Registrar: NAMECHEAP INC
Registrar IANA ID: 1068
Registrar Abuse Contact Email: abuse@namecheap.com
Registrar Abuse Contact Phone: +1.6613102107
Reseller: NAMECHEAP INC
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Registry Registrant ID: 
Registrant Name: Withheld for Privacy Purposes
Registrant Organization: Privacy service provided by Withheld for Privacy ehf
[...]
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/
>>> Last update of WHOIS database: 2021-08-25T14:58:29.57Z <<<
For more information on Whois status codes, please visit https://icann.org/epp

从上面的示例中,我们能够看到很多信息,现在按照显示的顺序查看这些信息:首先,我们注意到我们被重定向到 whois.namecheap.com 以获取WHOIS信息,正在维护目标域名的WHOIS记录的是namecheap.com,此外,我们还可以看到域名的创建日期以及最后更新日期和到期日期等信息。

接下来,我们获取到有关注册商和注册人的信息,我们可以找到注册人的姓名和联系信息,除非他们使用了某些隐私服务(在现实环境下通常都会使用隐私服务)。

最后,我们可以看到能够被查询的域名服务器信息,此处的信息有助于我们之后查找DNS记录。

我们可以检查收集到的信息以发现新的攻击面,例如考虑社会工程学攻击或技术攻击。根据渗透测试的范围,你可以尝试对管理员用户的电子邮件服务器或 DNS 服务器进行攻击,假设它们归你的客户所有并且也在预定的渗透测试范围之内。

需要注意的是,由于自动化工具会滥用 WHOIS 查询来获取电子邮件地址,因此许多WHOIS服务器会对此采取相应的措施,例如:他们可能会重新编辑电子邮件地址,此外,许多注册人都会设置隐私服务,以保持他们的信息私密性并且能够在一定程度上避免他们的电子邮件地址被垃圾邮件发送者获取。

答题

image

image

nslookup以及dig工具

在上一小节中,我们使用了WHOIS协议来获取目标域名的各种信息。 值得注意的是:在WHOIS信息中,我们还能够从域名注册商那里获得关于DNS服务器的信息。

nslookup

我们可以使用nslookup(Name Server Look Up)查找域名的IP地址,该命令的用法是nslookup DOMAIN_NAME,例如 nslookup tryhackme.com

nslookup完整的语法是nslookup OPTIONS DOMAIN_NAME SERVER,这三个主要参数的含义是:

  • OPTIONS (选项)-包含查询类型,例如:你可以使用参数 A 用于查询IPv4 地址,使用参数 AAAA 用于查询 IPv6 地址。
  • DOMAIN_NAME (域名)-你想要查询的目标域名。
  • SERVER (服务器)-该参数代表你要查询的DNS服务器,你可以选择任何本地或公共 DNS 服务器进行查询:Cloudflare 提供的DNS是 1.1.1.1 和 1.0.0.1,Google 提供的DNS是 8.8.8.8 和 8.8.4.4,Quad9 提供的DNS是 9.9.9.9 和 149.112.112.112,你可以任意选择公共 DNS 服务器,以此替代ISP所分配的本地DNS服务器。

image

例如,nslookup -type=A tryhackme.com 1.1.1.1(或者输入-type=a因为此参数不区分大小写)可用于返回tryhackme.com使用的所有 IPv4 地址。

user@TryHackMe$ nslookup -type=A tryhackme.com 1.1.1.1
Server:     1.1.1.1
Address:    1.1.1.1#53

Non-authoritative answer:
Name:    tryhackme.com
Address: 172.67.69.208
Name:    tryhackme.com
Address: 104.26.11.229
Name:    tryhackme.com
Address: 104.26.10.229

A 和 AAAA 记录分别用于返回 IPv4 和 IPv6 地址,从渗透测试的角度了解此查找很有帮助。在上面的例子中,我们从一个域名开始,得到了三个 IPv4 地址,假设这些 IP 地址都在渗透测试的范围内,接下来则可以进一步检查每个 IP 地址的不安全性。

假设你想了解特定域的电子邮件服务器和配置,你可以使用nslookup -type=MX tryhackme.com,例子如下:

user@TryHackMe$ nslookup -type=MX tryhackme.com
Server:     127.0.0.53
Address:    127.0.0.53#53

Non-authoritative answer:
tryhackme.com   mail exchanger = 5 alt1.aspmx.l.google.com.
tryhackme.com   mail exchanger = 1 aspmx.l.google.com.
tryhackme.com   mail exchanger = 10 alt4.aspmx.l.google.com.
tryhackme.com   mail exchanger = 10 alt3.aspmx.l.google.com.
tryhackme.com   mail exchanger = 5 alt2.aspmx.l.google.com.

我们可以看到 tryhackme.com 当前的电子邮件配置是使用Google邮件交换服务器。参数MX表示查找目标使用的 Mail Exchange 服务器,我们注意到当目标邮件服务器发送带@tryhackme.com的电子邮件时,它会先尝试连接到顺序为1的aspmx.l.google.com,如果它正忙或不可用,邮件服务器将尝试连接按顺序排列的下一个邮件交换服务器 alt1.aspmx.l.google.com 或 alt2.aspmx.l.google.com。

从以上信息可以得知:目标使用的是由Google 提供的邮件服务器; 因此,我们不应期望目标邮件服务器使用的是易受攻击的服务器版本。 但是,在其他情况下,我们也可能会发现目标邮件服务器并没有得到充分保护或漏洞修补。

dig

如果需要更高级的 DNS 查询和附加功能,你可以使用dig工具,它是“Domain Information Groper”的首字母缩写词,我们可以使用 dig 查找 MX 记录并将它们与 nslookup得出的结果进行比较。

dig的一般语法是dig DOMAIN_NAME,如果需要指定查询的记录类型,可以使用dig DOMAIN_NAME TYPE,或者使用 dig @SERVER DOMAIN_NAME TYPE 以选择要查询的DNS服务器。

  • SERVER 是你要查询的 DNS 服务器。
  • DOMAIN_NAME-是你要查找的域名。
  • TYPE-是DNS记录类型,具体类型如前面提供的图表所示。
user@TryHackMe$ dig tryhackme.com MX

; <<>> DiG 9.16.19-RH <<>> tryhackme.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<

通过对nslookup 和 dig 的输出结果进行快速比较,可知dig返回了更多信息,例如默认情况下的 TTL(生存时间), 如果要查询的DNS服务器为1.1.1.1,可以使用dig @1.1.1.1 tryhackme.com MX命令。

答题

image

DNSDumpster–被动信息收集网站

DNS 查找工具(例如 nslookup 和 dig)无法自行查找子域,但是你正在检查的域可能包含一些不同的子域,这些子域可以揭示有关目标的更多信息。

例如,如果 tryhackme.com 有两个子域为wiki.tryhackme.com以及webmail.tryhackme.com,你可能想了解更多关于这两个子域的信息,因为它们可能保存着关于目标的大量信息。 可能这些子域之一已设置但是没有定期更新,缺乏适当的定期更新通常会导致子域上的服务易受攻击。

为了发现目标的子域,我们可以考虑使用多个搜索引擎来形成一个公开的子域列表。 一个搜索引擎是不够的; 此外,我们应该期望通过至少几十个结果来找到有用的数据,发现目标关键子域的另一种方法是依靠暴力查询来查找哪些子域具有 DNS 记录。

为了避免过于耗时的搜索工作,我们可以使用 能够提供详细的DNS查询信息的一些在线服务,例如DNSDumpster网站。 如果我们在 DNSDumpster 中搜索 tryhackme.com,我们会发现典型的DNS查询方式所无法提供的子域blog.tryhackme.com;此外,DNSDumpster 将以易于阅读的表格和图表的形式返回收集到的 DNS 信息;DNSDumpster 还将提供任何收集到的有关监听服务器的信息。

接下来,我们将在 DNSDumpster 上搜索 tryhackme.com,让你了解一下预期的输出结果。

在下面示例的结果中,我们得到了我们正在查找的域的 DNS 服务器列表;DNSDumpster 会将域名解析为 IP 地址,甚至会尝试对其进行地理定位;我们还可以看到MX记录,DNSDumpster 将目标的所有五个邮件交换服务器解析为各自的 IP 地址,并提供有关所有者和位置的更多信息;最后,我们还可以看到 TXT 记录以及A记录。

image

DNSDumpster还能以图形化的方式表示收集到的信息,将前面表格中的数据显示为图表:你可以看到DNS和MX到它们各自的服务器的分支,同时也能看到相关的ip地址。

image

DNSDumpster有一个功能允许你导出图表,你可以自由操纵图形界面并移动区块。

image

答题

image

Shodan.io–被动信息收集网站

当你的任务是针对特定目标进行渗透测试时,作为被动侦察阶段的一部分,像 Shodan.io 这样的网站服务可以帮助你了解有关客户端网络的各种信息,而无需主动连接目标网络。 此外,在防御方面,你也可以使用Shodan.io来了解属于你的组织的网络连接情况和暴露的网络设备情况。

Shodan.io会尝试连接到所有可在线访问的网络设备,以构建一个连接“物”的搜索引擎,而不是简单的网页搜索引擎。Shodan所发出的请求一旦得到响应,它就会收集与服务相关的所有信息并将其保存在网站数据库中以使其内容变得可搜索。 下图是tryhackme.com在Shodan中的一条信息记录。

image

该记录显示的是一个网络服务器,如前所述,Shodan.io 会收集与它可以在线找到的任何连接设备相关的信息,在 Shodan.io 上搜索 tryhackme.com 将至少显示上面截图中的记录。 通过Shodan.io的搜索结果,我们可以了解到很多信息,例如:

  • 服务器的IP地址
  • 服务器的托管公司
  • 服务器的地理位置
  • 服务器类型和版本

你也可以尝试搜索从DNS查找中获得的 IP 地址,在Shodan的帮助页面上,你可以了解 Shodan.io 提供的所有搜索选项。

答题

image

image

image

小结

在本文中,我们专注于被动侦察,主要介绍了三个命令行工具:whois、nslookup 和 dig;还介绍了两个公开可用的在线服务:DNSDumpster 和 Shodan.io。 此类工具的强大之处在于你可以被动收集有关目标的信息,而无需直接连接到目标。

一旦你掌握了搜索选项并习惯了阅读查询的结果,使用此类工具可能会帮助你在渗透测试前期找到大量目标相关的信息。

image

原文地址:http://www.cnblogs.com/Hekeats-L/p/16818876.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性