【THM】Networking Concepts(网络基础概念)-学习
本文相关的TryHackMe实验房间链接:https://tryhackme.com/r/room/networkingconcepts
本文相关内容:了解ISO OSI模型和TCP/IP协议套件。

介绍

你是否想过为什么需要 IP 地址才能访问互联网? IP地址真的可以唯一标识用户吗?你是否想了解数据包的生命周期?如果答案是肯定的,那么让我们开始吧。
与本文相关的实验房间是一系列TryHackMe实验房间中的一个,本文将致力于向读者介绍重要的网络概念和最常见的一些网络协议:
- 网络-基础概念(与本文相关的实验房间)
- Networking Essentials 网络-基本要点
- Networking Core Protocols 网络-核心协议
- Networking Secure Protocols 网络-安全协议
学习目标
当你完成本文的学习之后,你将了解以下内容:
- ISO OSI网络模型;
- IP 地址、子网和路由;
- TCP、 UDP和端口号;
- 如何从命令行连接到开放的TCP端口。
前置学习条件
本文将要求你了解IP地址和TCP端口号等术语;然而,我们并不期望读者能够以适当的技术深度解释这些术语。如果你不熟悉这些术语,请考虑完成Pre Security路径。
OSI模型
在正式开始学习之前,我们应该注意到OSI模型最初可能看起来很复杂,如果你遇到神秘的首字母缩略词,请不要担心,因为我们提供了OSI模型分层的示例。我们可以向你保证,当你完成本文相关的模块时,有些相关的问题将会变得小菜一碟。
OSI(Open Systems Interconnection-开放系统互连)模型是由国际标准化组织(ISO-International Organization for Standardization)开发的一个概念模型,它描述了在计算机网络中应该如何进行通信。换句话说,OSI模型定义了计算机网络通信的框架。尽管该模型是理论性的,但是学习和理解它仍然至关重要,因为它有助于我们更深层次地掌握网络相关概念。
OSI模型由以下七层组成:
- Physical Layer 物理层
- Data Link Layer 数据链路层
- Network Layer 网络层
- Transport Layer 传输层
- Session Layer 会话层
- Presentation Layer 表示层
- Application Layer 应用层
上述层级编号从物理层开始,它为第1层,而最顶层(应用层)为第7层。为了帮助你从下到上记住各个OSI分层,你可以使用助记口诀,例如“Please Do Not Throw Spinach Pizza Away”,你也可以在互联网上查找其他易于记忆的缩写助记词(如果这有助于你记住它们)。记住OSI模型分层及其层级号很重要;否则,你将很难理解“第3层交换机”或“第7层防火墙”等术语。

Layer 1: Physical Layer(物理层)
物理层,也被称为第一层,处理的是设备之间的物理连接;这包括数据传输介质(例如电线)以及二进制数字0和1的定义。数据传输可以通过电、光或无线信号进行,因此,我们需要数据线或天线,这具体取决于我们的物理介质。
除了下图所示的以太网电缆和光纤电缆之外,物理层介质的相关示例还包括 WiFi 无线电频段,2.4 GHz 频段、5 GHz 频段和 6 GHz 频段等。

Layer 2: Data Link Layer(数据链路层)
物理层定义了传输信号的介质。数据链路层,即第2层,则包括表示同一网段上的节点之间能够进行数据传输的协议。让我们用更简单的术语来说——数据链路层包含了 描述同一网段上的不同系统之间如何通信的协议。网段是指使用共享介质或通道进行信息传输的一组联网设备,例如,一个公司办公室有十台计算机连接到网络交换机——这就是一个网段。
OSI第2层的协议示例包括以太网(即802.3)和WiFi(即802.11)。以太网和WiFi地址有6个字节,它们的地址被称为MAC地址,其中MAC代表的是媒体访问控制(Media Access Control),它们通常以十六进制格式表示,并用冒号分隔每两个字节,最左边的三个字节用于标识供应商(vendor)。

我们期望在通过以太网或 WiFi 进行的实际网络通信中的每一帧中可以看到两个 MAC 地址,参考下面截图中的数据包显示情况:
- 目标数据链路地址(MAC 地址),如下面的黄色突出标记1所示;
- 源数据链路地址(MAC 地址),如下面的蓝色突出标记2所示;
- 其余位(bits )将显示正在被发送的数据。

Layer 3: Network Layer(网络层)
数据链路层主要负责在同一网段的两个节点之间发送数据;而网络层,即第三层,则涉及在不同网络之间发送数据。用更专业的术语来说,网络层将处理逻辑寻址和路由,即找到在不同网络之间传输网络数据包的路径。
在数据链路层,我们列举了一个公司办公室有十台计算机的例子,数据链路层负责提供它们之间的连接。现在假设这家公司有多个办事处,它们分布在各个城市、国家甚至各大洲;网络层所负责的任务则是将不同的办公室连接在一起。
下面的示意图显示了计算机A和计算机B已连接,尽管它们位于不同的网络上。你还可以注意到连接下面两台计算机的路径有多条,而网络层将通过它所认为的、更好的路径来路由网络数据包。

网络层的相关协议包括互联网协议(IP-Internet Protocol)、互联网控制消息协议(ICMP-Internet Control Message Protocol)和虚拟专用网络(VPN-Virtual Private Network)协议等,其中VPN协议的例子有——IPSec和SSL/TLS VPN。
Layer 4: Transport Layer(传输层)
OSI第 4 层(传输层)支持不同主机(hosts)上正在运行的应用程序之间的端到端通信。例如:你电脑上的Web浏览器可以通过传输层连接到TryHackMe相关的Web服务器,该服务器可以支持流控制、数据分段和错误纠正等各种功能。
第 4 层的相关协议包括传输控制协议(TCP-Transmission Control Protocol)和用户数据报协议(UDP-User Datagram Protocol)。
Layer 5: Session Layer(会话层)
会话层主要负责建立、维护和同步 运行在不同主机(hosts)上的应用程序之间的通信。建立会话意味着启动应用程序之间的通信并协商会话所需的参数。数据同步能够确保数据按正确的顺序传输,并可以提供数据传输失败时的相关恢复机制。
会话层的相关协议示例包括网络文件系统 (NFS-Network File System) 和远程过程调用 (RPC-Remote Procedure Call)。
Layer 6: Presentation Layer(表示层)
表示层主要用于确保数据以应用层可以理解的形式传递。第6层将会处理数据编码、压缩和加密等任务,数据编码的一个示例是字符编码,例如ASCII或Unicode。
表示层将使用各种标准。假设一个我们想要通过电子邮件发送图像的场景,首先,我们可以使用JPEG、GIF和PNG格式来保存我们的图像,此外,虽然电子邮件客户端对用户是隐藏的,但是我们可以使用MIME(多用途互联网邮件扩展-Multipurpose Internet Mail Extensions)来将图像文件附加到我们的电子邮件中。 MIME将使用7位ASCII字符来对二进制文件进行编码。
Layer 7: Application Layer(应用层)
应用层将直接向终端用户的应用程序提供网络服务。例如你的 Web 浏览器可以使用HTTP协议来请求文件、提交表单或上传文件。
tips:终端用户-即用计算机实现自己目的的用户。
应用层是最顶层,你在使用不同的应用程序时可能会遇到它的许多协议,OSI第7层的相关协议示例包括HTTP、FTP、DNS、POP3、 SMTP和IMAP等。如果你现在不熟悉所有这些协议,也请不要担心。
概括
第一次了解ISO OSI模型可能会令人生畏,然而随着你对网络协议的研究不断深入,你会发现理解它会变得更加容易。
为了帮助你的学习,我们在下表中总结了ISO OSI模型的各个分层情况:
| 层数 | 层级名称 | 主要功能 | 相关的协议和标准示例 |
|---|---|---|---|
| 第7层 | Application layer-应用层 | 为应用程序提供服务和接口 | HTTP, FTP, DNS, POP3, SMTP, IMAP |
| 第6层 | Presentation layer-表示层 | 数据编码、加密和压缩 | Unicode, MIME, JPEG, PNG, MPEG |
| 第5层 | Session layer-会话层 | 建立、维护和同步会话 | NFS, RPC |
| 第4层 | Transport layer-传输层 | 端到端通信和数据分段 | UDP, TCP |
| 第3层 | Network layer-网络层 | 网络之间的逻辑寻址和路由 | IP, ICMP, IPSec |
| 第2层 | Data link layer-数据链路层 | 相邻节点之间可靠的数据传输 | 以太网 (802.3)、WiFi (802.11) |
| 第 1 层 | Physical layer-物理层 | 物理数据传输介质 | 电、光和无线信号 |

答题
tips:下面的问题的答案格式应为单个数字;例如,如果答案是第 5 层,则应输入 5。
哪一层负责将一个应用程序连接到另一个应用程序?
4 传输层
哪一层负责将数据包路由到正确的网络?
3 网络层
在OSI模型中,哪一层负责对应用程序数据进行编码?
6 表示层
哪一层负责同一网段主机之间的数据传输?
2 数据链路层

TCP/IP模型
我们已经完成了对理论性的ISO OSI模型的相关概念的介绍,现在是时候研究一个具体可实现的模型了,即TCP /IP模型。TCP /IP代表传输控制协议/互联网协议,由美国国防部 (DoD-Department of Defense) 于 20 世纪 70 年代开发。该模型的优点之一是,它允许网络在部分网络停止服务时继续运行,例如用于军事攻击。这种能力之所以成为可能,部分原因是路由协议的设计能够适应网络拓扑的变化。
在我们对 ISO OSI 模型的演示中,我们从下到上,从第 1 层到第 7 层。但在这个小节中,让我们从不同的角度,从上到下来看待事物。从上到下,我们有:
- 应用层:这对应的是OSI 模型的应用层、表示层和会话层,即第 5、6 和 7 层,它们在TCP /IP 模型中被分组为应用层。
- 传输层:这对应的是OSI 模型的第 4 层-传输层。
- 互联网层:这对应的是OSI 模型的第 3 层-网络层,OSI 模型的网络层在TCP /IP 模型中被称为互联网层。
- 链路层:这对应的是OSI 模型的第 2 层-数据链路层。
下表显示了TCP /IP 模型层如何映射到 ISO/OSI 模型层。
| 层数 | ISO OSI模型 | TCP/IP模型(RFC 1122) | Protocols(协议) |
|---|---|---|---|
| 7 | Application Layer-应用层 | Application Layer-应用层 | HTTP, HTTPS, FTP, POP3, SMTP, IMAP, Telnet, SSH |
| 6 | Presentation Layer-表示层 | ||
| 5 | Session Layer-会话层 | ||
| 4 | Transport Layer-传输层 | Transport Layer-传输层 | TCP, UDP |
| 3 | Network Layer-网络层 | Internet Layer-互联网层 | IP, ICMP, IPSec |
| 2 | Data Link Layer-数据链路层 | Link Layer-链路层 | 以太网 802.3、WiFi 802.11 |
| 1 | Physical Layer-物理层 |

许多现代网络教科书将TCP/IP模型显示为五层而不是四层。例如,在《计算机网络:自上而下的方法》第 8 版中, Kurose 和 Ross通过将物理层包括在内 描述了以下五层互联网协议栈:
- Application 应用层
- Transport 传输层
- Network 网络层
- Link 链路层
- Physical 物理层
在接下来的内容中,我们将介绍互联网层的 IP 协议以及传输层的UDP和TCP协议。
答题
HTTP 在 TCP/IP 模型中属于哪一层?
Application Layer-应用层
TCP/IP 模型中的应用层涵盖了 OSI 模型的几层?
TCP/IP 模型中的应用层涵盖了 OSI 模型的应用层、表示层和会话层,即第 5、6 和 7 层(共3层)。

IP地址和子网
当你听到 IP 地址这个词时,你可能会想到像192.168.0.1这样的地址或者其他不太常见的地址,例如172.16.159.243;这两个地址都是IP地址,具体而言,它们都是IPv4(IP 版本 4)地址。
网络上的每台主机(host)都需要一个唯一的标识符,以便其他主机与它进行通信。如果没有唯一的标识符,就无法明确地找到某个主机。在使用TCP/IP协议套件(协议族)时,我们需要为每个连接到网络的设备分配一个IP地址。
IP地址的一种类比可以是你的家庭邮政地址,你的家庭邮政地址使得你可以接收来自世界各地的信件和包裹,此外它还可以明确地标识你的家庭住址,否则你就无法成功地进行网上购物。
你可能已经知道,我们有IPv4和IPv6(IP版本6)两种版本类型的地址。目前 IPv4 仍然是最常见的,每当你遇到提及 IP 但没有提及相关版本的文本内容时,我们都默认它们指的是IPv4地址。
那么,IP 地址是由什么构成的呢? IP地址由四个八位组(octets)组成,即32位。八位字节为 8 个二进制位,允许我们表示 0 到 255 之间的十进制数。IP 地址的组成情况如下图所示。

tips:一个octet是指八个比特(bit)为一组的单位,中文称作八比特(即8位),同时它还等于一个字节(byte)。
0 和 255 被分别保留给网络地址和广播地址。换句话说, 192.168.1.0是网络地址,而192.168.1.255是广播地址。发送到广播地址的目标是网络上的所有主机。通过简单的数学计算,你可以得出结论:我们不可能拥有超过 40 亿个唯一的 IPv4 地址。如果你对相关的计算感到好奇,它大约是2^32,因为我们有32位。该数字是近似值,因为我们没有考虑网络地址和广播地址。
查找你的网络配置
你可以在Windows命令行终端上使用ipconfig命令来查找你的IP地址。在Linux和基于UNIX的系统上,你可以使用ifconfig或ip address show 命令,该命令也可以通过键入ip a s来替代。在下面的终端窗口中,我们可以看到ifconfig 命令的执行结果。
user@TryHackMe$ ifconfig
[...]
wlo1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.66.89 netmask 255.255.255.0 broadcast 192.168.66.255
inet6 fe80::73e1:ca5e:3f93:b1b3 prefixlen 64 scopeid 0x20<link>
ether cc:5e:f8:02:21:a7 txqueuelen 1000 (Ethernet)
RX packets 19684680 bytes 18865072842 (17.5 GiB)
RX errors 0 dropped 364 overruns 0 frame 0
TX packets 14439678 bytes 8773200951 (8.1 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
上面的终端输出表明了以下内容:
- 当前主机(笔记本电脑)的IP地址是
192.168.66.89; - 子网掩码为
255.255.255.0; - 广播地址为
192.168.66.255。
我们用ip a s来比较一下网卡IP地址的呈现方式。
user@TryHackMe$ ip a s
[...]
4: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether cc:5e:f8:02:21:a7 brd ff:ff:ff:ff:ff:ff
altname wlp3s0
inet 192.168.66.89/24 brd 192.168.66.255 scope global dynamic noprefixroute wlo1
valid_lft 36795sec preferred_lft 36795sec
inet6 fe80::73e1:ca5e:3f93:b1b3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
上面的终端输出表明以下内容:
- 主机(笔记本电脑)IP地址为
192.168.66.89/24; - 广播地址为
192.168.66.255。
也许你想知道,子网掩码255.255.255.0为什么可以写为/24 。/24表示IP地址中最左边的24位在整个网络(即子网)中不会改变。换句话说,最左边的三个八位字节在整个子网中是相同的;因此,我们可以期望找到范围从192.168.66.1到192.168.66.254的地址。192.168.66.0和192.168.66.255分别是网络地址和广播地址。
Private Addresses 私有地址
当我们解释 IP 地址时,在大多数实际用途中,存在两种类型的 IP 地址:
- Public IP addresses:公有IP地址;
- Private IP addresses:私有IP地址。
RFC 1918 定义了以下三个私有 IP 地址范围:
10.0.0.0-10.255.255.255(10/8)172.16.0.0-172.31.255.255(172.16/12)192.168.0.0-192.168.255.255(192.168/16)
我们之前打过一个比方,公有IP地址就像你的家庭邮政地址,但私有IP地址则不同,最初的想法是它用于表示无法到达或从外部世界无法到达的地址。它就像一座孤立的城市或大院,所有的房屋和公寓都有系统编号,彼此之间可以轻松交换邮件,但它不能与外界交换邮件。要使用私有IP地址访问Internet,路由器必须具有公有IP地址,并且必须支持网络地址转换(NAT-Network Address Translation)。在这个阶段,我们不必了解NAT的工作原理,因为我们将在后面的学习中重新讨论它。
在继续学习之前,建议记住私有IP地址的范围。否则,当你看到10.1.33.7或172.31.33.7等私有IP地址时,你可能会错误地尝试以公有IP地址的形式去访问它们。
Routing 路由
路由器就像你当地的邮局,你把邮件包裹交给他们,他们就会知道如何投递。如果我们深入挖掘,你可能会把某些东西邮寄到另一个城市或另一个国家中的地址;而邮局将检查具体的地址并决定下一步将包裹发送到哪里。如果包裹要离开本国,我们还希望能有一个中央办公室来处理所有的国外发货包裹。
用技术术语来说,路由器负责将数据包转发到正确的网络。通常,数据包在到达最终目的地之前会经过多个路由器。路由器在第3层(网络层)中运行,网络层将检查IP地址并将数据包转发到最佳网络(路由器),以便数据包更加接近目的地。

答题
以下哪个 IP 地址不是私有 IP 地址?
- 192.168.250.125
- 10.20.141.132
- 49.69.147.197 ------
- 172.23.182.251
49.69.147.197
以下哪个 IP 地址不是有效的 IP 地址?
- 192.168.250.15
- 192.168.254.17
- 192.168.305.19 ------
- 192.168.199.13
192.168.305.19

UDP和TCP
IP协议允许我们到达网络上的目标主机,主机通过其 IP 地址来识别。如果我们需要可以使联网主机上的进程能够相互通信的协议,那么有两种传输协议可以实现这一点: UDP和TCP 。
UDP-用户数据报协议
UDP (User Datagram Protocol-用户数据报协议)允许我们到达目标主机上的特定进程。 UDP是一种简单的无连接协议,运行在传输层,即第 4 层。无连接意味着它不需要建立连接。 UDP甚至不会提供一种机制来知道数据包是否已经被投递。
IP地址可以标识主机,我们需要一种机制来确定数据包的发送和接收过程,这可以通过使用端口号来实现。端口号使用两个八位字节;因此,它的范围在1到65535之间,端口号0将被保留。 (数字 65535 通过以下表达式计算得出:2^16 − 1)
与UDP类似的现实生活示例是标准邮件服务,它没有投递确认。换句话说,我们无法保证UDP数据包是否已经被成功接收,类似于使用标准邮件发送包裹但不确认是否送达的情况。对于标准邮件而言,这意味着它比带确认的邮件递送选项更加便宜;而对于UDP而言,这意味着它与 提供“确认”的传输协议 相比 有更好的传输速度。
但是,如果我们想要一个能够确认是否收到的数据包的传输协议 怎么办?答案在于使用 TCP 而不是UDP 。
TCP-传输控制协议
TCP(Transmission Control Protocol-传输控制协议)是一种面向连接的传输协议。它使用各种机制来确保网络主机上不同进程发送的数据能够可靠地进行传输。与UDP一样,它是第4层协议。它是面向连接的,需要先建立TCP连接,然后才能发送数据。
在TCP中,每个数据八位组(octet)都有一个序列号;这使得接收方可以轻松地识别丢失或重复的数据包。另一方面,接收端会用 指定最后接收到的八位组的确认号 来确认数据的接收。
TCP连接是使用所谓的三次握手来建立的,将使用两个标志:SYN(同步)和ACK(确认)。数据包发送过程如下:
- SYN 数据包:客户端通过向服务器发送 SYN 数据包来发起连接。该数据包包含客户端随机选择的初始序列号。
- SYN-ACK 数据包:服务器用 SYN-ACK 数据包响应 SYN 数据包,该数据包添加了服务器随机选择的初始序列号。
- ACK 数据包:当客户端发送 ACK 数据包以确认收到 SYN-ACK 数据包时,三次握手完成。

与UDP类似, TCP使用端口号来标识 发起或等待(侦听)连接的过程。如前所述,有效的端口号范围在 1 到 65535 之间,因为它将使用两个八位组,并且端口0将被保留。
答题
哪种协议需要三次握手?
TCP
端口号大约有多少个(以千为单位)?
65535≈65k

数据包封装
在结束本文内容之前,解释另一个关键概念至关重要:封装。在本文背景下,封装是指在每一层(TCP/IP模型中的分层)向接收到的数据单元添加标头(有时是添加标尾)并将“被封装”的单元发送到下一层的过程。
封装是一个重要的概念,因为它允许每一层专注于其预期的功能。在发送数据时,包含以下四个步骤:
- 应用程序数据:当用户将要发送到应用程序的数据被输入时,一切就开始了。例如,你编写电子邮件或即时消息并单击发送按钮,应用程序将格式化该数据并开始根据所使用的应用程序协议使用其下面的层(传输层)来发送它。
- 传输协议段或数据报:传输层(例如 TCP 或UDP )会添加适当的标头信息并创建TCP段(或UDP数据报)。该段将被发送到其下面的层,即网络层。
- 网络数据包:网络层,即Internet层,会在接收到的TCP段(segment )或UDP数据报(datagram)中添加IP标头,然后,该IP数据包将会被发送到其下面的层,即数据链路层。
- 数据链路帧:以太网或WiFi将接收IP数据包并添加适当的标头和标尾,从而创建一个帧(frame)。
我们从应用程序数据开始,在传输层,将添加TCP或UDP标头来创建TCP段或UDP数据报,同样,在网络层,将添加适当的IP标头以获得可通过Internet路由的IP 数据包,最后,将添加适当的标头和标尾以在链路层获得一个 WiFi 或以太网帧。

在数据接收端必须逆向执行上述过程,直到成功提取到应用程序数据为止。
数据包的生命周期
根据我们迄今为止所研究的内容,我们可以解释数据包生命周期的简化版本。让我们考虑一下你在 TryHackMe 上搜索实验房间的场景:
- 在 TryHackMe 搜索页面上,输入你想要的搜索查询并按下 Enter 键。
- 你的 Web 浏览器将使用 HTTPS协议, 准备HTTP请求并将其推送到其下方的层(传输层)。
- TCP层需要通过浏览器和TryHackMe Web服务器之间的TCP三次握手建立连接。成功建立TCP连接后,它可以发送包含搜索查询的HTTP请求。被创建的每个TCP段都会发送到其下方的层,即Internet层。
- IP 层将添加 源IP地址(即你的计算机)和目标IP地址(即 TryHackMe Web 服务器的 IP 地址)。为了使该数据包到达路由器,你的笔记本电脑会继续将其传送到其下方的层,即链路层。
- 根据相关的协议,链路层会继续给数据包添加适当的链路层报头和报尾,并将数据包发送到路由器。
- 路由器会删除链路层报头和报尾,然后检查 IP 目的地字段以及其他字段,并将数据包路由到正确的链路。每个路由器都会重复这个过程,直到到达目标服务器的路由器。
当数据包到达目标网络的路由器时,将反过来执行上述这些步骤。当我们介绍其他协议时,我们将重新审视刚才的示例并创建一个更深入的版本。
答题
在 WiFi 上,IP 数据包将被封装在什么内?
Frame-数据帧
封装 应用数据的UDP数据单元叫什么?
Datagram-数据报
封装 通过 TCP 发送的应用程序数据的数据单元叫什么?
Segment-数据段

Telnet远程登录协议
在与本文相关的TryHackMe实验房间页面中点击下面的启动机器按钮,以部署目标实验机器。

点击实验房间页面顶部的Start AttackBox按钮可以启动AttackBox(TryHackMe提供的在线攻击机)。 AttackBox机器将会以分屏视图启动。如果它不可见,请继续使用实验房间页面顶部的蓝色“显示拆分视图”按钮即可。

等待大约 2 分钟的时间来正确完成机器启动。在上述两台机器(目标机和攻击机)准备就绪后,我们就可以在 AttackBox 上启动一个终端来试验telnet命令 。
TELNET(电传网络-Teletype Network)协议是用于远程终端连接的网络协议。简而言之, telnet (TELNET 客户端)允许你连接到远程系统并与之通信,并允许你发出文本形式的命令。虽然最初它是用于远程管理的,但我们也可以使用telnet来连接到任何正在侦听的TCP端口号所对应的服务器。
在目标虚拟机上,有不同的服务正在运行,我们将使用telnet来尝试连接其中的三个:
- 回显服务器(Echo server):该服务器可以回显你发送的所有内容。默认情况下,它侦听的端口号是 7 。
- 日间服务器(Daytime server):该服务器默认将侦听端口号 13 ,并能够回复给你 当前的日期和时间。
- Web (HTTP) 服务器:该服务器默认将侦听TCP端口号 80 ,并且能够提供网页服务。
在继续学习之前,我们还应该了解到——echo服务器和daytime服务器被认为存在安全风险,并且不应该处于运行状态;我们在这里明确地启动它们 主要是为了演示如何使用telnet与不同的服务器进行通信。在下面的终端示例界面中,我们将使用telnet连接到位于目标VM上TCP端口号 7 关联的echo服务器 。要关闭已经建立的连接,请同时按下CTRL + ]键即可。
user@TryHackMe$ telnet MACHINE_IP 7
telnet MACHINE_IP 7
Trying MACHINE_IP...
Connected to MACHINE_IP.
Escape character is '^]'.
Hi
Hi
How are you?
How are you?
Bye
Bye
^]
telnet> quit
Connection closed.
在下面的终端示例中,我们将使用telnet连接到在端口 13 侦听的daytime服务器。我们注意到,一旦成功返回了当前的日期和时间,相关的连接就会自动关闭。
user@TryHackMe$ telnet MACHINE_IP 13
Trying MACHINE_IP...
Connected to MACHINE_IP.
Escape character is '^]'.
Thu Jun 20 12:36:32 PM UTC 2024
Connection closed by foreign host.
最后,让我们使用telnet请求一个Web页面。成功连接到端口80后,你需要发出GET / HTTP /1.1命令并确定主机的位置,例如Host: telnet.thm 。接下来,你需要按两次Enter,这样你的最后一个输入行就是一个空行。下面的命令输出结果显示了具体的流量交换过程(相关内容已被简化处理)。
注意:如果你没有成功收到响应,则可能需要在发送信息后按下 Enter 键。
user@TryHackMe$ telnet MACHINE_IP 80
Trying MACHINE_IP...
Connected to MACHINE_IP.
Escape character is '^]'.
GET / HTTP/1.1
Host: telnet.thm
HTTP/1.1 200 OK
Content-Type: text/html
[...]
Connection closed by foreign host.
答题
在Attackbox上使用telnet终端命令来连接到MACHINE_IP上的 Web 服务器。 目标HTTP 服务器的名称和版本是什么?
tips:请注意,输入主机名后需要按两次 Enter 键,本小题的答案应采用名称/版本的格式表示。
telnet 10.10.151.22 80

lighttpd/1.4.63
当你查看相关的网页页面时,你将看到什么flag?

THM{TELNET_MASTER} 。

本文小结
在本文中,我们介绍了ISO OSI模型和TCP/IP模型,并且对两者进行了比较和对比。我们还介绍了 IP 地址和子网的概念,并简要解释了路由。此外,在深入研究TCP 和UDP之后,我们还解释了数据包封装的概念。出于演示目的,我们最后还使用了telnet以通过TCP与不同的服务器进行“对话”。
现在你已经完成了网络基础概念的学习,是时候继续学习网络基本要点了。

了解ISO OSI模型和TCP/IP协议套件。
浙公网安备 33010602011771号