IMAP/POP3

Introduce

Internet Massage Access Protocol-互联网消息访问协议(IMAP)的帮助下,可以从邮件服务器上访问电子邮件。与Office Protocol - 邮件协议(POP3)不同,IMAP 允许直接在服务器上在线管理电子邮件,并支持文件夹结构。因此,它是一种在远程服务器上在线管理电子邮件的网络协议。该协议以客户端-服务器为基础,允许本地电子邮件客户端与服务器上的邮箱同步,为电子邮件提供了一种网络文件系统,允许在多个独立客户端之间进行无故障同步。而 POP3 则不具备 IMAP 的功能,它只能在电子邮件服务器上提供列表、检索和删除电子邮件的功能。因此,必须使用 IMAP 等协议来实现其他功能,如直接在邮件服务器上建立分层邮箱、在会话期间访问多个邮箱以及预选邮件。

客户端可在线访问这些结构,并可创建本地副本。即使在多个客户端之间,也能形成统一的数据库。电子邮件一直保留在服务器上,直到被删除。IMAP 基于文本,具有扩展功能,如直接在服务器上浏览电子邮件。多个用户还可以同时访问电子邮件服务器。如果没有与服务器的活动连接,就无法管理电子邮件。不过,有些客户端提供离线模式和邮箱的本地副本。当重新建立连接时,客户端会同步所有离线本地更改。

客户端通过端口建立与服务器的连接143。为了进行通信,它使用基于文本的命令ASCII格式。可以连续发送多个命令,无需等待服务器确认。可以使用与命令一起发送的标识符将来自服务器的后续确认分配给各个命令。连接建立后,用户将立即通过服务器的用户名和密码进行身份验证。只有成功验证后才能访问所需的邮箱。

SMTP 通常用于发送电子邮件。通过将已发送的电子邮件复制到 IMAP 文件夹中,所有客户端都可以访问所有已发送的邮件,无论邮件是从哪台计算机发送的。Internet Massage Access Protocol 的另一个优点是在邮箱中创建个人文件夹和文件夹结构。此功能使邮箱更加清晰,更易于管理。然而,电子邮件服务器上的存储空间要求增加。

如果不采取进一步措施,IMAP 将以未加密的方式工作,并以纯文本形式传输命令、电子邮件或用户名和密码。许多电子邮件服务器需要建立加密的 IMAP 会话,以确保电子邮件流量的更高安全性并防止对邮箱进行未经授权的访问。SSL/TLS 通常用于此目的。根据所使用的方法和实现,加密连接使用标准端口143或替代端口,例如993

默认配置

IMAP 和 POP3 都有大量的配置选项,因此很难深入研究每个组件的更多细节。如果你想深入研究这些协议配置,我们建议你在本地创建一个虚拟机,并使用 apt 安装 dovecot-imapddovecot-pop3d 这两个软件包,然后进行配置和实验。

在 Dovecot 的文档中,我们可以找到可用于我们实验的各个核心设置服务配置选项。不过,让我们看一下命令列表,看看如何使用命令行直接与 IMAP 和 POP3 交互和通信。

IMAP 命令

命令

描述

1 LOGIN username password

用户的登录。

1 LIST "" *

列出所有目录。

1 CREATE "INBOX"

创建具有指定名称的邮箱。

1 DELETE "INBOX"

删除邮箱。

1 RENAME "ToRead" "Important"

重命名邮箱。

1 LSUB "" *

active返回用户声明为或 的名称集中的名称子集subscribed

1 SELECT INBOX

选择一个邮箱,以便可以访问该邮箱中的邮件。

1 UNSELECT INBOX

退出选定的邮箱。

1 FETCH <ID> all

检索与邮箱中的邮件关联的数据。

1 CLOSE

删除所有Deleted设置了该标志的消息。

1 LOGOUT

关闭与 IMAP 服务器的连接。

POP3 命令

命令

描述

USER username

识别用户。

PASS password

使用密码对用户进行身份验证。

STAT

从服务器请求已保存电子邮件的数量。

LIST

从服务器请求所有电子邮件的数量和大小。

RETR id

请求服务器通过 ID 传送所请求的电子邮件。

DELE id

请求服务器根据ID删除所请求的电子邮件。

CAPA

请求服务器显示服务器功能。

RSET

请求服务器重置传输的信息。

QUIT

关闭与 POP3 服务器的连接。


危险环境

然而,配置不当的配置选项可能会让我们获得更多信息,例如调试服务上执行的命令或以匿名身份登录,类似于 FTP 服务。大多数公司使用第三方电子邮件提供商,例如 Google、Microsoft 等。然而,由于许多不同的原因,一些公司仍然使用自己的邮件服务器。这些原因之一是维护他们想要保留在自己手中的隐私。管理员可能会犯许多配置错误,在最坏的情况下,这将使我们能够阅读发送和接收的所有电子邮件,其中甚至可能包含机密或敏感信息。其中一些配置选项包括:

环境

描述

auth_debug

启用所有身份验证调试日志记录。

auth_debug_passwords

此设置调整日志详细程度、提交的密码以及记录方案。

auth_verbose

记录不成功的身份验证尝试及其原因。

auth_verbose_passwords

用于身份验证的密码会被记录,也可以被截断。

auth_anonymous_username

这指定使用 ANONYMOUS SASL 机制登录时要使用的用户名。

Footprinting The Server - 足迹服务

默认情况下,端口110143993995用于 IMAP 和 POP3。两个较高的端口用于TLS/SSL加密客户端和服务器之间的通信。使用 Nmap,我们可以扫描服务器上的这些端口。如果服务器使用嵌入式 SSL 证书,扫描将返回相应的信息,如下所示。

nmap

IMAP/POP3

例如,从输出中我们可以看到通用名称为mail1.inlanefreight.htb,电子邮件服务器属于组织Inlanefreight,该组织位于加利福尼亚州。显示的功能向我们展示了服务器上可用的命令以及相应端口上的服务。

如果我们成功地找出其中一名员工的访问凭据,攻击者就可以登录邮件服务器并阅读甚至发送单独的消息。

cURL

如果我们还使用verbose( -v) 选项,我们将看到如何建立连接。从中,我们可以看到用于加密的 TLS 版本、SSL 证书的更多详细信息,甚至横幅,其中通常包含邮件服务器的版本。

要通过 SSL 与 IMAP 或 POP3 服务器交互,我们可以使用openssl, 以及ncat。其命令如下所示:

OpenSSL - TLS 加密交互 POP3

OpenSSL - TLS 加密交互 IMAP

一旦成功启动连接并登录到目标邮件服务器,我们就可以使用上述命令来操作和浏览服务器了。我们要指出的是,通过配置自己的邮件服务器、对其进行研究以及与其他社区成员一起进行实验,我们就能掌握诀窍,了解正在进行的通信以及哪些配置选项对此负责。

最后更新于

这有帮助吗?