- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
在计算机系统和网络出现之前,孙子兵法在孙子兵法中教导说:“知己知彼,必胜不疑。” 如果您扮演攻击者的角色,则需要收集有关目标系统的信息。如果你扮演防御者的角色,你需要知道你的对手会发现你的系统和网络的什么 。
侦察( recon )可以定义为收集有关目标信息的初步调查。这是统一杀伤链在系统上获得初步立足点的第一步。我们将侦察分为:
在被动侦察中,您依赖于公开可用的知识。您无需直接与目标接触即可从公开可用资源中获取这些知识。把它想象成你从远处看着目标领土,而不是踏上那个领土 。
被动侦察活动包括许多活动,例如:
另一方面,主动侦察无法如此谨慎地实现。它需要与目标直接接触。把它想象成你检查门窗上的锁,以及其他潜在的入口点 。
主动侦察活动的例子包括:
考虑到主动侦察的侵入性,除非获得适当的法律授权,否则很快就会陷入法律困境 。
我们将学习三个命令行工具:
whois 查询 WHOIS 服务器 nslookup 查询 DNS 服务器 dig 查询 DNS 服务器 我们使用 whois 查询 WHOIS 记录,而我们使用 nslookup 和 dig 查询 DNS 数据库记录。这些都是公开可用的记录,因此不会提醒目标.
我们还将学习两种在线服务的用法:
这两个在线服务使我们能够在不直接连接到目标的情况下收集有关目标的信息 。
WHOIS 是遵循RFC 3912规范的请求和响应协议。WHOIS 服务器在TCP端口 43 上侦听传入请求。域名注册商负责维护其租用域名的 WHOIS 记录。WHOIS 服务器回复与所请求域相关的各种信息。特别感兴趣的是,我们可以学习:
要获取这些信息,我们需要使用 whois 客户端或在线服务。许多在线服务提供 whois 信息;但是,使用本地 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 以获取我们的信息。在这种情况下,目前 namecheap.com 正在维护该域名的 WHOIS 记录。此外,我们可以看到创建日期以及最后更新日期和到期日期.
接下来,我们获取有关注册服务商和注册人的信息。我们可以找到注册人的姓名和联系信息,除非他们使用某些隐私服务。虽然上面没有显示,但我们得到了这个域的管理员和技术联系人。最后,如果我们有任何DNS记录要查找,我们会看到我们应该查询的域名服务器.
可以检查收集到的信息以发现新的攻击面,例如社会工程或技术攻击。例如,根据渗透测试的范围,您可能会考虑对管理员用户的电子邮件服务器或 DNS 服务器进行攻击,假设它们归您的客户所有并且在渗透测试的范围内.
需要注意的是,由于自动化工具滥用 WHOIS 查询来收集电子邮件地址,许多 WHOIS 服务都对此采取了措施。例如,他们可能会编辑电子邮件地址。此外,许多注册人订阅了隐私服务,以避免他们的电子邮件地址被垃圾邮件发送者收集并保护他们的信息的私密性 。
在前面的任务中,我们使用 WHOIS 协议来获取有关我们正在查找的域名的各种信息。特别是,我们能够从注册商那里获得DNS服务器.
使用 查找域名的 IP 地址 nslookup ,代表名称服务器查找。您需要发出命令 nslookup DOMAIN_NAME ,例如, nslookup tryhackme.com 。或者,更一般地说,您可以使用 nslookup OPTIONS DOMAIN_NAME SERVER . 这三个主要参数是:
A
IPv4 地址和 AAAA
IPv6 地址。 1.1.1.1
和 1.0.0.1
, Google 提供 8.8.8.8
和 8.8.4.4
, Quad9 提供 9.9.9.9
和 149.112.112.112
。如果您想要 ISP 的 DNS 服务器的替代方案,您可以选择更多的 公共DNS 服务器 查询类型 | 结果 |
---|---|
A | IPv4 地址 |
AAAA 级 | IPv6 地址 |
别名 | 规范名称 |
MX | 邮件服务器 |
面向服务架构 | 授权开始 |
TXT | TXT 记录 |
例如, nslookup -type=A tryhackme.com 1.1.1.1 (或者 nslookup -type=a tryhackme.com 1.1.1.1 因为它不区分大小写)可用于返回 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 当前的邮箱配置使用的是谷歌。由于 MX 正在查找邮件交换服务器,我们注意到当邮件服务器尝试发送电子邮件时 @tryhackme.com ,它将尝试连接到 aspmx.l.google.com 顺序为 1 的 。如果它繁忙或不可用,邮件服务器将尝试连接到下一个顺序邮件交换服务器, alt1.aspmx.l.google.com 或 alt2.aspmx.l.google.com 。
Google 提供列出的邮件服务器;因此,我们不应期望邮件服务器运行易受攻击的服务器版本。但是,在其他情况下,我们可能会发现邮件服务器没有得到足够的保护或修补 。
当您继续对目标进行被动侦察时,这些信息可能会被证明是有价值的。您可以对其他域名重复类似的查询并尝试不同的类型,例如 -type=txt . 谁知道您会在途中发现什么样的信息! 。
对于更高级的 DNS dig 查询和其他功能,如果您好奇的话,可以使用 “Domain Information Groper” 的首字母缩写词。让我们使用 dig 来查找 MX 记录并将它们与 nslookup . 我们可以使用 dig DOMAIN_NAME ,但要指定记录类型,我们会使用 dig DOMAIN_NAME TYPE 。(可选)我们可以使用选择我们想要查询的服务器 dig @SERVER DOMAIN_NAME TYPE .
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 。
nslookup 和 dig 等 DNS 查找工具无法自行查找子域。您正在检查的域可能包含一个不同的子域,该子域可以揭示有关目标的大量信息。例如,如果 tryhackme.com 有子域 wiki.tryhackme.com 和 webmail.tryhackme.com ,你想了解更多关于这两个的信息,因为它们可以保存关于你的目标的大量信息。有可能这些子域之一已经设置并且没有定期更新。缺乏适当的定期更新通常会导致易受攻击的服务。但是我们怎么知道这样的子域存在呢?
我们可以考虑使用多个搜索引擎来编制一个公开的子域列表。一个搜索引擎是不够的;此外,我们应该期望至少浏览数十个结果才能找到有趣的数据。毕竟,您正在寻找未明确公布的子域,因此没有必要使其进入搜索结果的第一页。另一种发现此类子域的方法是依靠暴力查询来查找哪些子域具有 DNS 记录.
为避免这种耗时的搜索,可以使用提供DNS查询详细答案的在线服务,例如 DNSDumpster 。如果我们在 DNSDumpster 中搜索,我们将发现典型 DNS tryhackme.com 查询无法提供的子域。此外, DNSDumpster 将以易于阅读的表格和图表的形式返回收集到的 DNS 信息。 DNSDumpster 还将提供有关侦听服务器的所有收集信息。 blog.tryhackme.com 。
我们将在 DNS Dumpster 上搜索,让您大致了解预期的输出。在结果中,我们得到了我们正在查找的域的 DNS 服务器列表。 DNSDumpster 还将域名解析为 IP 地址,甚至尝试对它们进行地理定位。我们还可以看到 MX 记录; DNSDumpster 将所有五个邮件交换服务器解析为各自的 IP 地址,并提供有关所有者和位置的更多信息。最后,我们可以看到 TXT 记录。实际上,单个查询就足以检索所有这些信息 tryhackme.com 。
DNS Dumpster 还将以图形方式表示收集到的信息。 DNSDumpster 将之前表格中的数据显示为图表。您可以看到 DNS**** 和 MX 分支到各自的服务器并显示 IP 地址 。
Shodan.io 这样的服务可以帮助您了解有关客户端网络的各种信息,而无需主动连接到它。此外,在防御方面,您可以使用 Shodan.io 的不同服务来了解属于您组织的已连接和暴露的设备 。
Shodan.io 试图连接到每一个可在线访问的设备,以构建一个连接“事物”的搜索引擎,而不是网页搜索引擎。一旦得到响应,它就会收集与该服务相关的所有信息并将其保存在数据库中以便于搜索。考虑其中一个 tryhackme.com 服务器的保存记录 。
这条记录显示了一个网络服务器;然而,如前所述,Shodan.io 收集与它可以找到的任何在线连接设备相关的信息。在 Shodan.io 上搜索,tryhackme.com至少会显示上图所示的记录。通过这个 Shodan.io 搜索结果,我们可以了解到与我们的搜索相关的几件事,例如:
您也可以尝试搜索从 DNS 查找中获得的 IP 地址。当然,这些更容易发生变化。在他们的帮助页面上,您可以了解 Shodan.io 上可用的所有搜索选项,我们鼓励您加入 TryHackMe 的 Shodan.io 。
在这个房间里,我们专注于被动侦察。特别是,我们介绍了命令行工具 whois 、 nslookup 和 dig 。我们还讨论了两个公开可用的服务 DNSDumpster 和 Shodan.io 。此类工具的强大之处在于,您可以在不直接连接目标的情况下收集有关目标的信息。此外,一旦您掌握了搜索选项并习惯阅读结果,使用此类工具可能会发现大量信息 。
目的 | 命令行示例 |
---|---|
查找 WHOIS 记录 | whois tryhackme.com |
查找DNS A 记录 | nslookup -type=A tryhackme.com |
在 DNS 服务器上查找DNS MX 记录 | nslookup -type=MX tryhackme.com 1.1.1.1 |
查找DNS TXT 记录 | nslookup -type=TXT tryhackme.com |
查找DNS A 记录 | dig tryhackme.com A |
在 DNS 服务器上查找DNS MX 记录 | dig @1.1.1.1 tryhackme.com MX |
查找DNS TXT 记录 | dig tryhackme.com TXT |
我们专注于主动侦察和与之相关的基本工具。我们学习使用网络浏览器来收集有关目标的更多信息。 ping 此外,我们还讨论了使用 traceroute 、 telnet 和 等简单工具 nc 来收集有关网络、系统和服务的信息 。
正如我们在上一个房间中了解到的那样,被动侦察可以让您在没有任何直接参与或联系的情况下收集有关目标的信息。您正在远距离观看或查看公开信息.
主动侦察要求您与目标进行某种接触。这种联系可以是打电话或拜访目标公司,借口是收集更多信息,通常是社会工程的一部分。或者,它可以直接连接到目标系统,无论是访问他们的网站还是检查他们的防火墙是否打开了 SSH 端口。把它想象成你正在仔细检查窗户和门锁。因此,必须记住,在获得客户签署的合法授权之前,不要从事主动侦察工作 。
在这个房间里,我们专注于主动侦察。主动侦察始于与目标机器的直接连接。任何此类连接都可能在日志中留下信息,显示客户端 IP 地址、连接时间和连接持续时间等。但是,并非所有连接都是可疑的。可以让您的主动侦察显示为常规客户活动。考虑网页浏览;在数百名其他合法用户中,没有人会怀疑浏览器连接到目标网络服务器。作为红队(攻击者)的一部分工作时,您可以使用这些技术来发挥自己的优势,并且不想惊动蓝队(防御者).
在这个房间里,我们将介绍通常与大多数操作系统捆绑在一起或很容易获得的各种工具。我们从 Web 浏览器及其内置的开发人员工具开始;此外,我们还向您展示了如何“武装”网络浏览器以使其成为高效的侦察框架。之后,我们讨论其他良性工具,例如 ping 、 traceroute 和 telnet 。所有这些程序都需要与目标建立联系,因此我们的活动将受到主动侦察.
任何想要熟悉基本工具并了解如何在主动侦察中使用它们的人都会对这个房间感兴趣。Web 浏览器开发人员工具可能需要一些努力才能熟悉,尽管它提供了图形用户界面。所涵盖的命令行工具使用起来相对简单 。
Web 浏览器可以是一个方便的工具,特别是它在所有系统上都很容易使用。您可以通过多种方式使用 Web 浏览器收集有关目标的信息.
在传输层,浏览器连接到:
由于 80 和 443 是HTTP和 HTTPS 的默认端口,因此 Web 浏览器不会在地址栏中显示它们。但是,可以使用自定义端口来访问服务。例如, https://127.0.0.1:8834/ 将通过 HTTPS 协议在端口 8834 连接到 127.0.0.1(本地主机)。如果有 HTTPS 服务器侦听该端口,我们将收到一个网页 。
在浏览网页时,您可以Ctrl+Shift+I在 PC 上按 或在 Mac 上按Option + Command + I( ) 以打开 Firefox 上的开发者工具。⌥ + ⌘ + I类似的快捷方式也可以让您开始使用 Google Chrome 或 Chromium。开发人员工具可让您检查浏览器已接收并与远程服务器交换的许多内容。例如,您可以查看甚至修改 JavaScript (JS) 文件、检查系统上设置的 cookie 并发现站点内容的文件夹结构.
下面是 Firefox 开发者工具的截图。Chrome DevTools 非常相似 。
还有很多适用于 Firefox 和 Chrome 的附加组件可以帮助进行渗透测试。这里有一些例子:
FoxyProxy 可让您快速更改用于访问目标网站的代理服务器。当您使用 Burp Suite 等工具或需要定期切换代理服务器时,此浏览器扩展非常方便 。
User-Agent Switcher and Manager ,您能够假装从不同的操作系统或不同的 Web 浏览器访问网页。换句话说,您可以假装使用 iPhone 浏览网站,而实际上您是从 Mozilla Firefox 访问它 。
Wappalyzer 提供有关所访问网站所用技术的见解。这种扩展很方便,主要是当您像任何其他用户一样在浏览网站时收集所有这些信息时。Wappalyzer 的屏幕截图如下所示 。
后面的也懒得搬运了 。
在这个房间里,我们介绍了许多不同的工具。很容易通过 shell 脚本将它们中的几个放在一起来构建一个原始的网络和系统扫描器。您可以使用traceroute映射到目标的路径,ping检查目标系统是否响应 ICMP Echo,并telnet通过尝试连接来检查哪些端口是开放的和可访问的。可用的扫描仪在更先进和复杂的水平上执行此操作,没有说道 Nmap ,最主要还是使用 Nmap 。
命令 | 例子 |
---|---|
ping | ping -c 10 MACHINE_IP在Linux或 macOS上 |
ping | ping -n 10 MACHINE_IP在 Windows 上 |
traceroute | traceroute MACHINE_IP在Linux或 macOS上 |
tracert | tracert MACHINE_IP在 Windows 上 |
telnet | telnet MACHINE_IP PORT_NUMBER |
netcat 作为客户端 | nc MACHINE_IP PORT_NUMBER |
netcat 作为服务器 | nc -lvnp PORT_NUMBER |
尽管这些是基本工具,但它们在大多数系统上都很容易获得。特别是,几乎每台计算机和智能手机上都安装了 Web 浏览器,它可以成为您武器库中的重要工具,用于在不发出警报的情况下进行侦察 。
操作系统 | 开发者工具快捷方式 |
---|---|
Linux或 MS Windows | Ctrl+Shift+I |
苹果系统 | Option + Command + I |
最后此篇关于THM-被动侦察和主动侦察的文章就讲到这里了,如果你想了解更多关于THM-被动侦察和主动侦察的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是单元测试的新手。我已经对 Controller 类进行了单元测试,但从未测试过模态类。我正在为我的应用程序使用被动 View 模式。 我正在使用 Cpp 单元测试框架。 如有任何提示,我们将不胜感
我正在尝试为 RabbitMQ 的两个数据中心之间提供灾难恢复。在主 DC 出现故障之前,辅助数据中心处于被动状态。 队列联合是不合适的,因为在辅助 DC 中的使用者激活之前它不会移动消息。除非主 D
我正在使用斯坦福标记器来确定词性。但是,我想从文本中获取更多信息。是否有可能获得更多信息,例如句子的时态或是否处于主动/被动状态? 到目前为止,我使用的是非常基本的 PoS 标记方法: List> t
我有一个客户端,您不能使用主动 FTP 连接,因为它们受接口(interface)应用程序的限制。我遇到的问题是我的 Active 设置很好,但无法理解为什么我的被动 FTP 只会超时。 我已关注这篇
正如“构建您自己的 CAB”博文系列中提到的,当您采用被动 View 设计模式时,无法利用数据绑定(bind)。这对我来说并不像我想要的那样清楚。那么,你们中的任何一个人能否展示在监督 Control
我想做的是以下内容:一个服务,持续监听 gps(是的:JUST gps)位置更新而不主动请求它们 - 即这个应用程序不应该消耗额外的资源电池生命周期或 CPU 时间,直到其他应用程序请求/接收 GPS
我正在尝试实现 Passive View基于 swing 的 gui 系统。基本上我想保持我的 View 实现(实际包含 swing 代码的部分)最少,并在我的 Presenter 类中完成大部分工作
RFC 1006 TCP 连接中主动连接和被动连接有何区别? 最佳答案 这里有解释:https://www.rfc-editor.org/rfc/rfc793 A passive OPEN reque
在 MarkLogic 7 中,副本是主动-主动还是主动-被动? 最佳答案 您是在询问本地磁盘故障转移(又名林复制)、数据库复制还是灵活复制? 事实上,这三个都是为主动-被动使用而设计的:换句话说,单
我们计划使用 kubernetes 在容器平台中设置高度可用的 Jenkins。我们正在考虑设置一个事件主机和另一个处于待机模式的主机。Jenkins 数据量将存储在两个主容器之间共享的全局存储中。
我已在多个网站( http://blogs.thesitedoctor.co.uk/tim/Trackback.aspx?guid=e81a4682-0851-490b-a3d2-adf254a701
我目前正在学习 MVP 设计模式,并且对简单逻辑应该放在哪里有疑问。 我的印象是所有业务逻辑都应该进入模型,这是否包括简单的方法,例如: public int Add(int a, int b){
我研究 MVP 模式已有一段时间,并设法创建了一些简单的 MVP 兼容应用程序。 我现在正尝试将该模式应用到一个更复杂的应用程序中,但我对这样做的最佳方式存疑。 我的应用程序只有一个 WinForm,
View 是否应该在其接口(interface)中没有任何特定于事件的内容并调用演示者普通方法来处理事件并且没有任何官方的 EventHandlers?比如 // ASPX protected voi
我有一个应用程序,需要在负载均衡器后面以主动-被动模式设置,以便所有连接都应转到主动实例。如果主动实例出现故障,它应该从被动实例启动 session 。 我收集到的唯一信息是我们只能在负载均衡器后面设
我已经使用被动 View 模式实现了一个 MVP 三元组——即 View 只包含简单的 getter 和 setter。但是我在分离 View 数据和模型数据时遇到了问题。特别是在处理 View 状态
我一直在用我认为的 Passive MVP 实现我的 android 应用。 例如,在我的 View 类中,我有一个 ListView。 查看 ListView userListView; 当一个项目
我正在尝试通过我正在构建的迁移向导中的 shell 命令执行静默安装。 msiexec /i E:\mysql-installer-community-5.6.16.0.msi /passive 虽然
我在 Passive View 上找到了 M. Fowler 的文章图案。我想在我的申请中应用它。我将 Swing 用于 UI。我花了几个小时搜索如何实现它的教程或示例,但没有找到太多有用的东西。有人
我正在用 C# 开发 WinForms 应用程序。我在 GUI 编程方面的经验有限,而且我必须即时学习很多东西。话虽这么说,这就是我正在 build 的。 查看一般 GUI 查看以下链接: GUI h
我是一名优秀的程序员,十分优秀!