目的:了解核心 TCP/IP 协议。
任务1:Introduction(介绍)
这个房间是关于计算机网络的四个房间中的第三个房间:
会议室先决条件
要从这个房间中受益,我们建议您了解以下内容:
- ISO OSI 模型和层
- TCP/IP 模型和层
- 以太网、IP 和 TCP 协议
换句话说,建议在 Networking Concepts 之后启动此聊天室。
学习目标
当您完成这个房间时,您将了解以下协议:
- WHOIS
- DNS 解析
- HTTP 和 FTP
- SMTP、POP3 和 IMAP
单击顶部的 Start AttackBox 按钮;单击下面的 Start Machine 按钮以启动连接的虚拟机 (VM)。
给他们大约 2-3 分钟来启动。两台机器准备就绪后,我们需要在 AttackBox 上启动终端,然后从任务 4 开始。
任务2:DNS: Remembering Addresses(DNS:记住地址)
与另外一个房间类似
您记得您最喜欢的网站的 IP 地址吗?除非是本地设备的私有 IP 地址,否则没有人需要担心记住 IP 地址。这部分是由于域名系统 (DNS) 负责将域名正确映射到 IP 地址。
DNS 在应用层(即 ISO OSI 模型的第 7 层)运行。DNS 流量默认使用 UDP 端口 53,使用 TCP 端口 53 作为默认回退。DNS 记录有多种类型;但是,在本任务中,我们将重点介绍以下四个方面:
- A 记录:A (Address) 记录将主机名映射到一个或多个 IPv4 地址。例如,您可以设置为 resolve 为 。
example.com
172.17.2.172
- AAAA 记录:AAAA 记录类似于 A 记录,但它适用于 IPv6。请记住,它是 AAAA(四 A),因为 AA 和 AAA 指的是电池尺寸;此外,AAA 是指 Authentication、Authorization 和 Accounting;两者都不属于 DNS。
- CNAME 记录:CNAME (Canonical Name) 记录将一个域名映射到另一个域名。例如,可以映射到 ,甚至可以映射到 。
www.example.com
example.com
example.org
- MX 记录:MX (Mail Exchange) 记录指定负责处理域电子邮件的邮件服务器。
换句话说,当您在浏览器中键入内容时,浏览器会尝试通过查询 DNS 服务器来解析此域名以获取 A 记录。但是,当您尝试将电子邮件发送到 时,邮件服务器将查询 DNS 服务器以查找 MX 记录。example.com
test@example.com
如果要从命令行查找域的 IP 地址,可以使用诸如 .请考虑下面终端中我们查找 的示例。nslookup
example.com
上面的查询导致了四个数据包。在下面的终端中,我们可以看到第一个和第三个数据包分别发送了 A 和 AAAA 记录的 DNS 查询。第二个和第四个数据包显示 DNS 查询响应。
任务3:WHOIS
在上一个任务中,我们介绍了如何将域名解析为 IP 地址。但是,要实现此目的,需要有人有权为域设置 A、AAAA 和 MX 记录以及其他 DNS 记录。注册域名的人被授予此权力。因此,如果您注册 example.com,则可以为 example.com 设置任何有效的 DNS 记录。
您可以注册任何可用的域名一年或多年。您需要支付年费,并且需要提供作为注册人的准确联系信息。此信息是通过 WHOIS 记录提供的数据的一部分,并且是公开的。(虽然 WHOIS 是大写的,但它不是首字母缩略词;它的发音是 who。但是,如果您想在不公开透露联系信息的情况下注册域,请不要担心;您可以使用其中一种隐私服务,从 WHOIS 记录中隐藏您的所有信息。
您可以使用其中一项在线服务或通过命令行工具查找任何已注册域名的 WHOIS 记录,该工具可在 Linux 系统等上使用。正如预期的那样,WHOIS 记录提供了有关注册域名的实体的信息,包括名称、电话号码、电子邮件和地址。在下面显示的屏幕截图中,您可以看到记录的首次创建时间和上次更新时间。此外,您可以找到注册人的姓名、地址、电话和电子邮件。whois
任务4:HTTP(S): Accessing the Web(HTTP(S):访问 Web)
当您启动浏览器时,您主要使用 HTTP 和 HTTPS 协议。HTTP 代表超文本传输协议;HTTPS 中的 S 代表安全。此协议依赖于 TCP 并定义 Web 浏览器与 Web 服务器的通信方式。
您的 Web 浏览器通常向 Web 服务器发出的一些命令或方法是:
GET
从服务器检索数据,例如 HTML 文件或图像。POST
允许我们向服务器提交新数据,例如提交表单或上传文件。PUT
用于在服务器上创建新资源以及更新和覆盖现有信息。DELETE
,顾名思义,用于删除服务器上的指定文件或资源。
HTTP 和 HTTPS 通常分别使用 TCP 端口 80 和 443,其他端口(如 8080 和 8443)不太常用。
在以下示例中,我们使用 Firefox 浏览器访问 上的 Web 服务器。我们的浏览器获取网页并完美地显示它;但是,我们对幕后发生的事情感兴趣。10.10.251.22
使用 Wireshark,我们可以更仔细地检查 Firefox 浏览器和 Web 服务器之间的交换。下面来自 Wireshark 的屏幕截图以红色显示我们的浏览器发送的文本,以蓝色显示 Web 服务器响应。正如你所看到的,客户端和服务器之间交换了很多信息,这些信息没有呈现给用户。示例包括 Web 服务器版本和上次修改页面的时间。
GET /flag.html HTTP/1.1
Host:anything
任务5:FTP: Transferring Files(FTP:传输文件)
与旨在检索网页的 HTTP 不同,文件传输协议 (FTP) 旨在传输文件。因此,FTP 对于文件传输非常有效,当所有条件都相同时,它可以实现比 HTTP 更高的速度。
FTP 协议定义的命令示例包括:
USER
用于输入用户名PASS
用于输入密码RETR
(检索) 用于将文件从 FTP 服务器下载到客户端。STOR
(store) 用于将文件从客户端上传到 FTP 服务器。
FTP 服务器默认监听 TCP 端口 21;数据传输是通过从客户端到服务器的另一个连接进行的。
在下面的终端中,我们执行了命令,使用本地客户端连接到远程 FTP 服务器。然后我们执行以下步骤:ftp 10.10.251.22
ftp
- 我们使用用户名登录
anonymous
- 我们不需要提供任何密码
- Issuing 返回可供下载的文件列表
ls
type ascii
切换到 ASCII 模式,因为这是一个文本文件get coffee.txt
允许我们检索所需的文件
通过 FTP 客户端进行的命令交换显示在下面的终端中。
我们使用 Wireshark 更仔细地检查交换的消息。客户端的消息为红色,而服务器的响应为蓝色。请注意客户端和服务器之间的各种命令有何不同。例如,当您在 Client 端键入时,Client 端会发送到服务器。最后要注意的一点是,目录列表和我们下载的文件都是通过单独的连接发送的。ls
LIST
任务6:SMTP: Sending Email(SMTP:发送电子邮件)
与浏览 Web 和下载文件一样,发送电子邮件需要自己的协议。简单邮件传输协议 (SMTP) 定义邮件客户端如何与邮件服务器通信,以及邮件服务器如何与另一个邮件服务器通信。
SMTP 协议的类比是当您去当地邮局发送包裹时。您向员工打招呼,告诉他们您想将包裹寄往何处,并在将包裹交给他们之前提供发件人的信息。根据您所在的国家/地区,系统可能会要求您出示身份证。此过程与 SMTP 会话没有太大区别。
让我们介绍一下您的邮件客户端在将电子邮件传输到 SMTP 服务器时使用的一些命令:
HELO
或启动 SMTP 会话EHLO
MAIL FROM
指定发件人的电子邮件地址RCPT TO
指定收件人的电子邮件地址DATA
指示客户端将开始发送电子邮件的内容。.
在一行中单独发送,以指示
下面的终端显示了通过 .默认情况下,SMTP 服务器侦听 TCP 端口 25。telnet
显然,使用 发送电子邮件非常麻烦;但是,它可以帮助您更好地了解电子邮件客户端在后台发出的命令。Wireshark 捕获以颜色显示交换;客户端的消息为红色,而服务器的响应为蓝色。telnet
现在我们已经介绍了一些基本的 HTTP、FTP 和 SMTP 命令,您应该已经对协议的设计和使用方式有了深入的了解。了解其他基于文本的协议(如 POP3 和 IMAP)的工作原理应该毫不费力。
显然,使用 发送电子邮件非常麻烦;但是,它可以帮助您更好地了解电子邮件客户端在后台发出的命令。Wireshark 捕获以颜色显示交换;客户端的消息为红色,而服务器的响应为蓝色。telnet
现在我们已经介绍了一些基本的 HTTP、FTP 和 SMTP 命令,您应该已经对协议的设计和使用方式有了深入的了解。了解其他基于文本的协议(如 POP3 和 IMAP)的工作原理应该毫不费力。
任务7:POP3: Receiving Email(POP3:接收电子邮件)
您收到了一封电子邮件,并希望将其下载到本地邮件客户端。邮局协议版本 3 (POP3) 旨在允许客户端与邮件服务器通信并检索电子邮件消息。
无需深入的技术细节,电子邮件客户端依靠 SMTP 发送其消息,并使用 POP3 检索它们。SMTP 类似于将信封或包裹交给邮局,而 POP3 类似于检查本地邮箱是否有新的信件或包裹。
一些常见的 POP3 命令包括:
USER <username>
标识用户PASS <password>
提供用户的密码STAT
请求消息数量和总大小LIST
列出所有邮件及其大小RETR <message_number>
检索指定的消息DELE <message_number>
将邮件标记为删除QUIT
结束 POP3 会话,应用更改,例如删除
在下面的终端中,我们可以看到一个通过 telnet 的 POP3 会话。由于 POP3 服务器默认监听 TCP 端口 110,因此连接到 TELNET 端口的命令是 。下面的 exchange 检索在上一个任务中发送的电子邮件。telnet 10.10.251.22 110
捕获网络数据包的人将能够拦截交换的流量。根据之前的 Wireshark 捕获,红色的命令由客户端发送,蓝色的行是服务器的命令。同样明显的是,捕获流量的人可以读取密码。
连接到 POP3 服务器需要身份验证。需要时使用以下登录凭证:
- 用户名:
linda
- 密码:
Pa$$123
任务8:IMAP: Synchronizing Email(IMAP:同步电子邮件)
在一台设备上工作时,POP3 就足够了,例如,您台式计算机上您最喜欢的电子邮件客户端。但是,如果您想从办公室台式计算机和笔记本电脑或智能手机查看电子邮件,该怎么办?在这种情况下,您需要一个协议,该协议允许同步消息,而不是在检索消息后删除消息。在多个设备之间保持同步邮箱的一种解决方案是 Internet 消息访问协议 (IMAP)。
IMAP 允许同步已读、已移动和已删除的邮件。当您通过多个客户端查看电子邮件时,IMAP 非常方便。与 POP3 不同,POP3 在从远程服务器下载和删除电子邮件时往往会最大限度地减少服务器存储空间,而 IMAP 往往会使用更多存储空间,因为电子邮件保存在服务器上并在电子邮件客户端之间同步。
IMAP 协议命令比 POP3 协议命令更复杂。我们在下面列出了几个示例:
LOGIN <username> <password>
对用户进行身份验证SELECT <mailbox>
选择要使用的邮箱文件夹FETCH <mail_number> <data_item_name>
获取消息编号 3、标头和正文的示例。fetch 3 body[]
MOVE <sequence_set> <mailbox>
将指定的邮件移动到另一个邮箱COPY <sequence_set> <data_item_name>
将指定的邮件复制到另一个邮箱LOGOUT
注销
知道 IMAP 服务器默认监听 TCP 端口 143,我们将使用 连接到 的端口 143 并获取我们在之前任务中发送的消息。telnet
10.10.251.22
任务9:Conclusion(结论)
在上一个房间里,我们讨论了 TELNET 协议;这个房间专注于其他基本协议:DNS、HTTP、FTP、SMTP、POP3 和 IMAP。了解了这些协议后,我们现在对域名的解析方式、网页的提供方式以及电子邮件的发送和接收方式有了更好的了解。这个房间的另一个主要目的是让您很好地了解协议在图形界面后面是如何工作的。
下表总结了我们目前介绍的协议的默认端口号。
协议 | 传输协议 | 默认端口号 |
---|---|---|
TELNET | TCP 协议 | 23 |
DNS | UDP 或 TCP | 53 |
HTTP | TCP 协议 | 80 |
HTTPS | TCP 协议 | 443 |
FTP | TCP 协议 | 21 |
SMTP | TCP 协议 | 25 |
POP3 | TCP 协议 | 110 |
IMAP | TCP 协议 | 143 |