SMTP 扫描

2020-08-20 11:10:03 浏览数 (2)

SimpleMail Transfer Protocol

简单邮件传输协议

运行在TCP的25端口上

对于这个服务我相信大家都是同一个态度:“常用而不了解“

如果和 POP3 / IMAP / Exchange 混在一起就更加难以理解了,接下来我就着重介绍一下这几个的区别


POP3

POP3是PostOffice Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。

SMTP

SMTP 的全称是“SimpleMail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。

SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。

  增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。

IMAP

IMAP全称是InternetMail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。

以上是比较官方的一个定义了,我再来给大家简单地翻译成大白话

SMTP 服务器主要就负责传输,相当于邮件传输界的”路由器”,用来指明传输方向,主要负责的就是发送邮件到接收邮箱地址的服务器上

IMAP 和POP3 这两项可以归为一类,就是负责从服务器上收邮件的,区别在上面已经说了,IMAP存在同步的功能,就像我们现在使用的也都是这样,比如在foxmail中删除之后在服务器那边也删除了。

对于企业来说是否有必要搭建SMTP 服务器?

我觉得这是一个可以来讨论甚至辩论的话题,如今像163,腾讯,阿里云等都提供了比较安全的企业邮箱解决方案,就像我们的目标神舟电脑一样,就使用了qq的企业邮箱。

我觉得如果是一个互联网大咖级别的厂商,那么搭建在自己的服务器是有必要的,毕竟我是不想把自己的邮件都托管到其他互联网厂商哪里,毕竟这些邮件可能对他们来说是透明的。还有就是自己搭建的邮件服务器不会受容量的约束。

当然自建邮件服务器的缺点也是很明显的,给了攻击者更加广阔的攻击面,对于互联网大咖来讲这个应该不是问题。

对于大中型厂商,我认为还是使用目前较为安全的解决方案就好,没必要再去建立自己的服务器,毕竟自己建立也是有一定的成本的

对于小型和个人用户,我觉得根本就不需要域名邮箱,使用免费的qq,163等就得了,当然爱折腾的玩家除外,使用域名邮箱的一个好处就是可以随便增加邮件地址,而且即使忘记密码也没有关系。


SMTP 服务器的应用种类特别的多,有很多厂商都在做,很多提供了web管理界面,对于这种的可能就会存在web相关的漏洞,这个我们在http服务处再进行讲解,我们现在只是针对SMTP本身进行一下攻击

VRFY 是我们需要使用的一个指令,可以对有效的用户名进行确认,现在基本都禁用了这个命令

Nmap

检测是否开放中继

nmap smtp.163.com -p25 -Pn--script=smtp-open-relay

检测是否开启了中继,开启了中继就相当于给所有人开放了自己的邮件服务器,此时就可能会被用来进行网络钓鱼等攻击,不过目前开放中继的太少了

暴力破解密码

nmap smtp.163.com -p25 –Pn --script=smtp-brute

枚举用户名

nmap smtp.163.com -p25 --script=smtp-enum-users.nse--script-args=smtp-enum-users.methods={VRFY}

这个脚本只会去检查root这个用户是否存在

SMTP是否开在默认的端口

nmap -sV smtp.163.com --script=smtp-strangeport

这个脚本有一定的后门检测功能

探测SMTP支持的命令

nmap smtp.163.com –p25 --script=smtp-commands [--script-argssmtp-commands.domain=<domain>] -pT:25,465,587 <host>

NTLM 信息泄漏

nmap -p 25,465,587 --script=smtp-ntlm-info--script-args smtp-ntlm-info.domain=domain.com <target>

对于NTLM身份认证的smtp服务器,我们通过发送null请求认证信息,目标会给我们返回 NTLMSSP 信息,其中包括 NetBios ,DNS, OS build信息

剩下的就是对特定的CVE进行确认的了

smtp-user-enum

这个工具主要就是用来枚举用户名的

smtp-user-enum -M VRFY -U users.txt -t smtp.163.com

注意:字典中的用户名不需要 @163.com

关于SMTP的攻击姿势大概就是这些,对于刺探信息有一部分作用,很难直接getshell

0 人点赞