SMTP - Simple Mail Transfer Protocol
邮件传输协议
Default Configuration
AcesMin@htb[/htb]$ cat /etc/postfix/main.cf | grep -v "#" | sed -r "/^\s*$/d"
smtpd_banner = ESMTP Server
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 2
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
myhostname = mail1.inlanefreight.htb
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
smtp_generic_maps = hash:/etc/postfix/generic
mydestination = $myhostname, localhost
masquerade_domains = $myhostname
mynetworks = 127.0.0.0/8 10.129.0.0/16
mailbox_size_limit = 0
recipient_delimiter = +
smtp_bind_address = 0.0.0.0
inet_protocols = ipv4
smtpd_helo_restrictions = reject_invalid_hostname
home_mailbox = /home/postfix发送和通信也是通过特殊命令完成的,这些命令使 SMTP 服务器执行用户需要的操作。
命令
描述
AUTH PLAIN
AUTH 是用于验证客户端身份的服务扩展。
HELO
客户端使用其计算机名登录并启动会话。
MAIL FROM
客户命名电子邮件发件人。
RCPT TO
客户命名电子邮件收件人。
DATA
客户端发起电子邮件的传输。
RSET
客户端中止发起的传输,但保持客户端和服务器之间的连接。
VRFY
客户端检查邮箱是否可用于消息传输。
EXPN
客户端还会检查邮箱是否可用于使用此命令发送消息。
NOOP
客户端向服务器请求响应,以防止因超时而断开连接。
QUIT
客户端终止会话。
Telnet - HELO/EHLO
为了与 SMTP 服务器交互,我们可以使用该telnet工具初始化与 SMTP 服务器的 TCP 连接。会话的实际初始化是使用上面提到的命令完成的,HELO或者EHLO。
Telnet - VRFY
VRFY 命令可用于枚举系统中的现有用户。但是,这并不总是有效。根据 SMTP 服务器的配置,SMTP 服务器可能会发出代码 252 并确认系统中不存在的用户。所有 SMTP 响应代码的列表可在此处找到。
因此,永远不应该完全依赖自动化工具的结果。毕竟,它们执行预先配置的命令,但没有一个函数明确说明管理员如何配置测试服务器。
有时,我们可能需要通过网络代理服务器来工作。我们也可以让网络代理服务器连接到 SMTP 服务器。我们发送的命令如下
connect 10.129.14.128:25 http/1.0
Send an Email
我们在命令行中输入的所有发送电子邮件的命令,在 Thunderbird、Gmail、Outlook 等所有电子邮件客户端程序中都能找到。我们可以指定邮件主题、收件人、抄送、密送以及要与他人分享的信息。当然,在命令行中也可以这样做。
邮件头是电子邮件中大量有趣信息的载体。除其他外,它还提供有关发件人和收件人、发送和到达时间、电子邮件途中经过的站点、邮件内容和格式以及发件人和收件人的信息。
其中有些信息是必须提供的,如发件人信息和电子邮件的创建时间。其他信息则是可选的。不过,电子邮件标头并不包含技术传送所需的任何信息。它是作为传输协议的一部分进行传输的。发件人和收件人都可以访问电子邮件的标题,尽管一眼看不到。RFC5322 规定了电子邮件标头的结构。
Dangerous Settings
为防止发送的电子邮件被垃圾邮件过滤器过滤而无法送达收件人,发件人可以使用收件人信任的中继服务器。中继服务器是一个已知并通过所有其他服务器验证的 SMTP 服务器。通常情况下,发件人在使用中继服务器之前必须向其进行身份验证。
管理员往往不知道他们必须允许哪些 IP 范围。这会导致 SMTP 服务器配置错误,我们在外部和内部渗透测试中经常会发现这种情况。因此,他们允许所有 IP 地址,以免造成电子邮件流量错误,从而避免干扰或无意中断与潜在客户和现有客户的通信。
Open Relay Configuration
通过这种设置,该 SMTP 服务器可以发送伪造电子邮件,从而初始化多方之间的通信。另一种攻击方式是伪造电子邮件并读取它。
Footprinting the Service
默认的 Nmap 脚本包括smtp-commands,它使用该EHLO命令列出可以在目标 SMTP 服务器上执行的所有可能的命令。
但是,我们还可以使用smtp-open-relay NSE 脚本通过 16 种不同的测试将目标 SMTP 服务器识别为开放中继。如果我们还详细打印出扫描的输出,我们还可以看到脚本正在运行哪些测试。
Nmap - Open Relay
最后更新于
这有帮助吗?