THM-被动侦察和主动侦察

news2024/11/24 13:30:06

被动与主动侦察#

在计算机系统和网络出现之前,孙子兵法在孙子兵法中教导说:“知己知彼,必胜不疑。” 如果您扮演攻击者的角色,则需要收集有关目标系统的信息。如果你扮演防御者的角色,你需要知道你的对手会发现你的系统和网络的什么

侦察(recon)可以定义为收集有关目标信息的初步调查。这是统一杀伤链在系统上获得初步立足点的第一步。我们将侦察分为:

  • 被动侦察
  • 主动侦察

在被动侦察中,您依赖于公开可用的知识。您无需直接与目标接触即可从公开可用资源中获取这些知识。把它想象成你从远处看着目标领土,而不是踏上那个领土

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

  • 从公共 DNS 服务器查找域的DNS记录
  • 检查与目标网站相关的招聘广告
  • 阅读有关目标公司的新闻文章

另一方面,主动侦察无法如此谨慎地实现。它需要与目标直接接触。把它想象成你检查门窗上的锁,以及其他潜在的入口点

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

  • 连接到公司服务器之一,例如HTTPFTP 和 SMTP
  • 致电公司试图获取信息(社会工程学
  • 冒充修理工进入公司场所

考虑到主动侦察的侵入性,除非获得适当的法律授权,否则很快就会陷入法律困境

被动侦查#

我们将学习三个命令行工具:

whois查询 WHOIS 服务器
nslookup查询DNS服务器
dig查询DNS服务器
我们使用whois查询 WHOIS 记录,而我们使用nslookupdig查询DNS数据库记录。这些都是公开可用的记录,因此不会提醒目标。

我们还将学习两种在线服务的用法:

  • DNSDumpster
  • Shodan.io

这两个在线服务使我们能够在不直接连接到目标的情况下收集有关目标的信息

Whois#

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 服务都对此采取了措施。例如,他们可能会编辑电子邮件地址。此外,许多注册人订阅了隐私服务,以避免他们的电子邮件地址被垃圾邮件发送者收集并保护他们的信息的私密性

nslookup 和 dig#

在前面的任务中,我们使用 WHOIS 协议来获取有关我们正在查找的域名的各种信息。特别是,我们能够从注册商那里获得DNS服务器。

使用 查找域名的 IP 地址nslookup,代表名称服务器查找。您需要发出命令nslookup DOMAIN_NAME,例如,nslookup tryhackme.com。或者,更一般地说,您可以使用nslookup OPTIONS DOMAIN_NAME SERVER. 这三个主要参数是:

  • OPTIONS 包含查询类型,如下表所示。例如,您可以使用AIPv4 地址和AAAAIPv6 地址。
  • DOMAIN_NAME 是您正在查找的域名。
  • SERVER 是您要查询的DNS服务器。您可以选择任何本地或公共 DNS 服务器进行查询。Cloudflare 提供1.1.1.11.0.0.1Google 提供8.8.8.88.8.4.4Quad9 提供9.9.9.9149.112.112.112。如果您想要 ISP 的 DNS 服务器的替代方案,您可以选择更多的公共DNS服务器
查询类型结果
AIPv4 地址
AAAAIPv6 地址
别名规范名称
MX邮件服务器
面向服务架构授权开始
TXTTXT记录

例如,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.comalt2.aspmx.l.google.com

Google 提供列出的邮件服务器;因此,我们不应期望邮件服务器运行易受攻击的服务器版本。但是,在其他情况下,我们可能会发现邮件服务器没有得到足够的保护或修补

当您继续对目标进行被动侦察时,这些信息可能会被证明是有价值的。您可以对其他域名重复类似的查询并尝试不同的类型,例如-type=txt. 谁知道您会在途中发现什么样的信息!

对于更高级的DNSdig查询和其他功能,如果您好奇的话,可以使用“Domain Information Groper”的首字母缩写词。让我们使用dig来查找 MX 记录并将它们与nslookup. 我们可以使用dig DOMAIN_NAME,但要指定记录类型,我们会使用dig DOMAIN_NAME TYPE。(可选)我们可以使用选择我们想要查询的服务器dig @SERVER DOMAIN_NAME TYPE

  • 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

DNSDumpster#

nslookup 和 dig 等DNS查找工具无法自行查找子域。您正在检查的域可能包含一个不同的子域,该子域可以揭示有关目标的大量信息。例如,如果 tryhackme.com 有子域 wiki.tryhackme.com 和 webmail.tryhackme.com,你想了解更多关于这两个的信息,因为它们可以保存关于你的目标的大量信息。有可能这些子域之一已经设置并且没有定期更新。缺乏适当的定期更新通常会导致易受攻击的服务。但是我们怎么知道这样的子域存在呢?

我们可以考虑使用多个搜索引擎来编制一个公开的子域列表。一个搜索引擎是不够的;此外,我们应该期望至少浏览数十个结果才能找到有趣的数据。毕竟,您正在寻找未明确公布的子域,因此没有必要使其进入搜索结果的第一页。另一种发现此类子域的方法是依靠暴力查询来查找哪些子域具有DNS记录。

为避免这种耗时的搜索,可以使用提供DNS查询详细答案的在线服务,例如DNSDumpster。如果我们在 DNSDumpster 中搜索,我们将发现典型DNStryhackme.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 的不同服务来了解属于您组织的已连接和暴露的设备

Shodan.io 试图连接到每一个可在线访问的设备,以构建一个连接“事物”的搜索引擎,而不是网页搜索引擎。一旦得到响应,它就会收集与该服务相关的所有信息并将其保存在数据库中以便于搜索。考虑其中一个 tryhackme.com 服务器的保存记录

这条记录显示了一个网络服务器;然而,如前所述,Shodan.io 收集与它可以找到的任何在线连接设备相关的信息。在 Shodan.io 上搜索,tryhackme.com至少会显示上图所示的记录。通过这个 Shodan.io 搜索结果,我们可以了解到与我们的搜索相关的几件事,例如:

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

您也可以尝试搜索从DNS查找中获得的 IP 地址。当然,这些更容易发生变化。在他们的帮助页面上,您可以了解 Shodan.io 上可用的所有搜索选项,我们鼓励您加入 TryHackMe 的Shodan.io

概括#

在这个房间里,我们专注于被动侦察。特别是,我们介绍了命令行工具whoisnslookupdig。我们还讨论了两个公开可用的服务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此外,我们还讨论了使用traceroutetelnet和 等简单工具nc来收集有关网络、系统和服务的信息

正如我们在上一个房间中了解到的那样,被动侦察可以让您在没有任何直接参与或联系的情况下收集有关目标的信息。您正在远距离观看或查看公开信息。

主动侦察要求您与目标进行某种接触。这种联系可以是打电话或拜访目标公司,借口是收集更多信息,通常是社会工程的一部分。或者,它可以直接连接到目标系统,无论是访问他们的网站还是检查他们的防火墙是否打开了SSH端口。把它想象成你正在仔细检查窗户和门锁。因此,必须记住,在获得客户签署的合法授权之前,不要从事主动侦察工作

在这个房间里,我们专注于主动侦察。主动侦察始于与目标机器的直接连接。任何此类连接都可能在日志中留下信息,显示客户端 IP 地址、连接时间和连接持续时间等。但是,并非所有连接都是可疑的。可以让您的主动侦察显示为常规客户活动。考虑网页浏览;在数百名其他合法用户中,没有人会怀疑浏览器连接到目标网络服务器。作为红队(攻击者)的一部分工作时,您可以使用这些技术来发挥自己的优势,并且不想惊动蓝队(防御者)。

在这个房间里,我们将介绍通常与大多数操作系统捆绑在一起或很容易获得的各种工具。我们从 Web 浏览器及其内置的开发人员工具开始;此外,我们还向您展示了如何“武装”网络浏览器以使其成为高效的侦察框架。之后,我们讨论其他良性工具,例如pingtraceroutetelnet。所有这些程序都需要与目标建立联系,因此我们的活动将受到主动侦察。

任何想要熟悉基本工具并了解如何在主动侦察中使用它们的人都会对这个房间感兴趣。Web 浏览器开发人员工具可能需要一些努力才能熟悉,尽管它提供了图形用户界面。所涵盖的命令行工具使用起来相对简单

Web浏览器#

Web 浏览器可以是一个方便的工具,特别是它在所有系统上都很容易使用。您可以通过多种方式使用 Web 浏览器收集有关目标的信息。

在传输层,浏览器连接到:

  • 通过 HTTP 访问网站时,默认使用TCP端口 80
  • 通过 HTTPS 访问网站时默认使用TCP端口 443

由于 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

命令例子
pingping -c 10 MACHINE_IP在Linux或 macOS上
pingping -n 10 MACHINE_IP在 Windows 上
traceroutetraceroute MACHINE_IP在Linux或 macOS上
tracerttracert MACHINE_IP在 Windows 上
telnettelnet MACHINE_IP PORT_NUMBER
netcat 作为客户端nc MACHINE_IP PORT_NUMBER
netcat 作为服务器nc -lvnp PORT_NUMBER

尽管这些是基本工具,但它们在大多数系统上都很容易获得。特别是,几乎每台计算机和智能手机上都安装了 Web 浏览器,它可以成为您武器库中的重要工具,用于在不发出警报的情况下进行侦察

操作系统开发者工具快捷方式
Linux或 MS WindowsCtrl+Shift+I
苹果系统Option + Command + I

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/796131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

加利福尼亚大学|3D-LLM:将3D世界于大规模语言模型结合

来自加利福尼亚大学的3D-LLM项目团队提到&#xff1a;大型语言模型 (LLM) 和视觉语言模型 (VLM) 已被证明在多项任务上表现出色&#xff0c;例如常识推理。尽管这些模型非常强大&#xff0c;但它们并不以 3D 物理世界为基础&#xff0c;而 3D 物理世界涉及更丰富的概念&#xf…

视频监控管理平台EasyCVR录像的3种方式

视频监控综合管理平台EasyCVR可以实现海量资源的接入、汇聚、计算、存储、处理等&#xff0c;平台具备轻量化接入能力&#xff0c;可支持多协议方式接入&#xff0c;包括主流标准协议GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Eho…

深入理解 python 虚拟机:字节码灵魂——Code obejct

Code Object 数据结构 typedef struct {PyObject_HEADint co_argcount; /* #arguments, except *args */int co_kwonlyargcount; /* #keyword only arguments */int co_nlocals; /* #local variables */int co_stacksize; /* #entries needed for evaluation stack */int co_f…

Flutter 异步编程指南作

1 Dart 中的事件循环模型 在 App 开发中&#xff0c;经常会遇到处理异步任务的场景&#xff0c;如网络请求、读写文件等。Android、iOS 使用的是多线程&#xff0c;而在 Flutter 中为单线程事件循环&#xff0c;如下图所示 Dart 中有两个任务队列&#xff0c;分别为 microtask…

Windows 11的最新人工智能应用Windows Copilot面世!

Windows Copilot是Windows 11预览版中的一项AI辅助功能。 Windows 11还包括设置应用程序的更改&#xff0c;更广泛的支持压缩文件格式。 上个月&#xff0c;微软宣布将继续其将ChatGPT应用于所有产品的冒险之旅&#xff0c;推出了名为Copilot的新Windows 11功能。几个月前&…

难评的Worldcoin,正在登月中

7月24日&#xff0c;前段时间搅混加密舆论界一汪春水的Worldcoin正式上线代币WLD。 由Openai创始人Sam Altman牵头的Worldcoin项目在其试点之初就备受关注&#xff0c;而该种关注在其融资近一亿美金后更是空前&#xff0c;币种上架的呼声不断。 但当代币真的狼来了时&#xff0…

使用CRM分析数据有哪些功能?

CRM数据分析软件可以帮助企业增强竞争力&#xff0c;并更好地了解客户需求及市场变化&#xff0c;助力企业数据分析&#xff0c;并提供实时更新的数据和分析结果&#xff0c;CRM数据分析软件的主要特点是什么&#xff1f;包括以下6个特点。 CRM数据分析软件的主要功能通常包括…

四、约束-2.演示

【案例】 根据需求&#xff0c;完成表结构的创建 创建一个user表&#xff1a; create table user(id int primary key auto_increment comment 主键,name varchar(10) not null unique comment 姓名,age int check ( age > 0 && age < 120 ) comment 年龄,statu…

《嵌入式系统工程师》精讲视频-希赛网--视频笔记

只看我不熟的内容 P8 04流水线 理论公式必须熟悉 P29 01OSI&#xff0f;RM 1年大概考4分&#xff0c;主要考察前3个知识点 应用层--与用户打交道&#xff1b;表示层--压缩、加密等&#xff1b;会话层--建立、终止会话&#xff1b; 传输层--建立端到端连接&#xff1b;网络层--路…

vue-cli-service requires Node ^12.0.0 || >= 14.0.0

运行npm run serve 时&#xff0c;报错如下&#xff1a; 系统&#xff1a;win7 node版本&#xff1a;13.14.0 解决方法&#xff1a; 根据路径&#xff08;node_modules/vue/cli-service/package.json&#xff09;找到package.json文件&#xff0c;并将engines的node属性值改为…

关于Ubuntu 18.04 LTS环境下运行程序出现的问题

关于Ubuntu 18.04 LTS环境下运行程序出现的问题 1.运行程序时出现以下情况 2.检查版本 strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_​ 发现Ubuntu18.04下的glibc版本最高为2.27,而现程序所使用的是glibc2.34,所以没办法运行, 3.解决办法 安装glibc2.34库, …

C语言每日一题:7.寻找数组中心下标。

思路一&#xff1a; 暴力求解&#xff1a; 1.定义一个ps作为中间下标去记录下标值。 2.循环下标ps从头到位&#xff0c;定义四个变量分别是left sum_left,right,sum_right… 3.初始化leftps-1和rightps1.当ps0—>就让sum_left0,和psn-1->>>sum_right0; 4.循环结尾判…

深入探索文心千帆大模型平台:实现企业级大模型训练和推理

摘要&#xff1a;本文将介绍百度智能云推出的文心千帆大模型平台&#xff0c;以满足企业和个人客户的需求。通过该平台&#xff0c;用户可以进行大模型训练和推理&#xff0c;并且享受一站式的工具链和环境。作者将分享自己在平台上的亲身体验&#xff0c;并提供相关的代码示例…

阿里云RDS数据库高可用版升级为集群版

文章目录 1.在集群中添加两个只读实例1.1.点击添加只读实例1.2.配置实例的计费方式及所在可用区1.3.设置实例的资源规格1.4.选择实例使用的专有网络1.5.确认参数配置及订单信息1.6.查看购买的只读实例 2.开启RDS数据库的读写分离2.1.查看只读实例提供的集群地址2.2.开启RDS的读…

算法(2)

二叉树 镜像二叉树 树轴对称 第一个节点的左子树与第二个节点的右子树同步递归对比&#xff0c;第一个节点的右子树与第二个节点的左子树同步递归比较。 二叉树序列化、反序列化 当然你也可以根据满二叉树结点位置的标号规律来序列化&#xff0c;还可以根据先序遍历和中序遍…

客户体验:妙鸭相机(AI)与线下摄影的体验比较

Guofu 第 103⭐️ 篇原创文章分享 &#xff08;点击&#x1f446;&#x1f3fb;上方卡片关注我&#xff0c;加⭐️星标⭐️~&#xff09; &#x1f68f; 写在前面 最近 AI 的发展&#xff0c;每天都在刷新着我们的认知&#xff0c;人工智能已经渗透到我们生活的各个角落。其中&…

ssh2-sftp-client实现前端项目自动部署

首先要npm安装插件 npm i ssh2-sftp-client 项目中新建一个js文件 npm run build 之后在终端中 执行这个js文件就可以直接将文件上传到 服务器 import Client from ssh2-sftp-client; import { join } from path;const sftp new Client();const deploy async () > {try…

内存管理:判断对象是否存活

引用计数算法 引用计数算法&#xff08;Reference Counting&#xff09;判断对象是否存活的基本思路是&#xff1a;在对象中添加一个引用计数器&#xff0c;每当有一个地方引用该对象时&#xff0c;计数器的值就加一&#xff1b;当引用失效时&#xff0c;计数器的值就减一&…

Vector - CAPL - 诊断模块函数(TP层配置)

诊断TP层常见参数值 网络层定时参数的放置 常见的时间参数在诊断数据交互中的位置&#xff0c;后续会专门出一期关于ISO 15765-2的介绍。 CAPL对于此类函数介绍 CanTpGetTimeoutAr & CanTpGetTimeoutAr long CanTpGetTimeoutAr(long connHandle); long CanTpSetTimeoutAr(…

RabbitMQ 教程 | RabbitMQ 简介

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…