暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SMTP 协议 25 端口渗透测试记录

巴韭特锁螺丝 2022-11-26
297

简介

SMTP 为邮件协议,默认端口号为 25,经常被用来邮箱伪造,钓鱼攻击。除此之外还有经典的 SMTP 账号信息泄露,如 Github,oschina 上的源码托管商的代码里面经常也可以看到相关的信息泄露。

建立 TCP 连接

知道了邮件服务器的地址,就可以与它建立 TCP 连接了。SMTP 协议的默认端口是 25。使用 Telnet 或 Netcat 命令,都可以连接该端口。

    BASH


    $ telnet xxxx.com 25 # Widnows下测试
    # 或者
    $ nc xxxxx.com 25 # Linux下测试


    服务器返回 220 状态码,就表示连接成功。


      BASH


      220 MAIL-SERVER Winmail Mail Server ESMTP ready


      接下来,就可以使用 SMTP 协议的各种命令与邮件服务器交互了。

      HELO 命令和 EHLO 命令

      SMTP 协议规定,连接成功后,必须向邮件服务器提供连接的域名,也就是邮件将从哪台服务器发来。

        BASH


        HELO xxxx.com


        邮件服务器返回状态码 250,表示响应成功。

          BASH


          250 MAIL-SERVER Winmail Mail Server


          HELO
           命令现在比较少用,一般都使用 EHLO
           命令。
          邮件服务器收到 EHLO
           命令以后,不仅会返回 250
           状态码,还会返回自己支持的各种扩展的列表。

            BASH


            250-MAIL-SERVER Winmail Mail Server
            250-AUTH LOGIN PLAIN
            250-SIZE 20971520
            250 8BITMIME


            MAIL FROM 命令

            连接者要使用 MAIL FROM 命令,向邮件服务器提供邮件的来源邮箱

              BASH


              MAIL FROM:admin@xxxx.com # 伪造管理员身份来发邮件


              上面代码表示,连接者将从 admin@xxxxx.com
               向邮件服务器发送邮件。邮件服务器返回 250
               状态码,表示响应成功。

                BASH


                250 ok


                RCPT TO 命令

                使用 RCPT TO 命令,验证邮件地址是否存在。如果查询的是一个真实的 Email 地址,邮件服务器就会返回 250
                 状态码。验证邮箱存在的话,还可以给这个接受者邮箱发送邮件。

                  BASH


                  RCPT TO:admin@xxxxx.com
                  250 ok


                  一般来说,状态码 250 和 251 都表示邮箱存在,状态码 5xx 表示不存在,神马影院其他状态码(主要是 4xx)则代表无法确认。

                  DATA 伪造邮箱数据

                  使用 DATA 命令来伪造邮箱内容,客户端告诉服务器自己准备发送邮件正文 ,服务器返回 354,表示自己已经作好接受邮件的准备:

                    BASH


                    DATA
                    354 go ahead, end data with CRLF.CRLF


                    输入邮件伪造正文

                    英文状态的双引号
                    来修饰正文,正文结束后,发送结束符.
                     表明正文的结束。

                      BASH


                      "这是一个邮件伪造测试"
                      .250 ok message accepted for delivery


                      如果合理,服务端返回 250 表示成功

                      退出 TCP 连接

                      邮件发送结束,客户端请求断开连接后,使用 QUIT
                       命令关闭 TCP 连接。服务器返回 211
                      ,提示断开申请被采纳,并主动断开连接,整个邮件发送过程结束。

                        BASH


                        QUIT
                        221 MAIL-SERVER Winmail Mail Server
                        Connection closed by foreign host.


                        完整的流程图

                          版权声明:本文内容来自个人博客:国光,遵循CC 4.0 BY-SA版权协议上原文出接本声明。
                          本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。
                          原文链接:https://www.sqlsec.com/2017/08/smtp.html
                          如有涉及到侵权,请联系,将立即予以删除处理。
                          在此特别鸣谢原作者:国光的创作,Powered by Butterfly/By 国光。
                          本文发布已获原作者国光授权转载。
                          此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作权,商业转载请注明出处。



                          文章转载自巴韭特锁螺丝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                          评论