本章向您展示了如何做一些在许多情况下可能是非法的、不道德的、违反服务条款的或不是好主意的事情。这里提供的信息可用于保护您免受威胁,并使您自己的系统更安全。在遵循这些说明之前,请确保您站在法律和道德的正确一边。。。善用你的力量!
在本章中,我们将介绍:
- 使用 Google 搜索发现有效的电子邮件帐户
- 检测开路继电器
- 强制 SMTP 密码
- 正在枚举 SMTP 服务器中的用户
- 检测后门 SMTP 服务器
- 强制使用 IMAP 密码
- 检索 IMAP 邮件服务器的功能
- 强制使用 POP3 密码
- 检索 POP3 邮件服务器的功能
- 检测易受攻击的 Exim SMTP 服务器版本 4.70 至 4.75
邮件服务器几乎在任何组织中都可以使用,因为出于显而易见的原因,电子邮件已经成为首选的通信渠道。邮件服务器的重要性取决于其中存储的信息。攻击者通常会破坏电子邮件帐户,并利用几乎所有 web 应用程序中可用的“忘记密码”功能接管所有其他帐户。有时,被泄露的账户会被窃听数月而无人察觉,甚至可能被垃圾邮件发送者滥用。因此,任何优秀的系统管理员都知道拥有一个安全邮件服务器是至关重要的。
在本章中,我将介绍管理和监视邮件服务器的不同 NSE 任务。我还将向渗透测试人员展示进攻的一面。我们将介绍最流行的邮件协议,如 SMTP、POP3 和 IMAP。
我们将回顾一些任务,例如检索功能、枚举用户、强制使用密码,甚至利用易受攻击的 Exim 服务器。最后,您还将学习如何使用 Nmap 自动刮取搜索引擎(如 Google Web 和 Google Groups)的电子邮件帐户,以收集可用于暴力攻击的有效电子邮件帐户。
在渗透测试期间,查找有效的电子邮件帐户是一项重要任务。在某些系统和 web 应用程序中,电子邮件帐户通常用作用户名。攻击者通常以存储在其中的高度敏感信息为目标。
这个方法向您展示了如何使用 Nmap 来发现有效的电子邮件帐户,这些帐户可以在某些 web 应用程序中用作用户名,或者在蛮力密码审计期间用于查找弱凭据。
对于这项任务,我们需要一个 NSE 脚本,它不是与 Nmap 一起正式发布的。从下载 NSE 脚本http-google-search.nse
http://seclists.org/nmap-dev/2011/q3/att-401/http-google-email.nse 。
通过执行以下命令更新 NSE 脚本数据库:
# nmap --script-updatedb
将显示以下消息:
NSE: Updating rule database.
NSE: Script Database updated successfully.
要使用 Google Search 和使用 Nmap 的 Google Groups 查找有效的电子邮件帐户,请输入以下命令:
$ nmap -p80 --script http-google-email <target>
找到的所有电子邮件帐户都将包含在脚本输出部分中:
$ nmap -p80 --script http-google-email insecure.org
PORT STATE SERVICE
80/tcp open http
| http-google-email:
| fyodor@insecure.org
|_nmap-hackers@insecure.org
NSE 脚本http-google-email
由 Shinook 编写。它使用搜索引擎 GoogleWeb 和 GoogleGroups 查找这些服务缓存的公共电子邮件帐户。
脚本查询以下 URI 以获得结果:
参数-p80 --script http-google-email
告诉 Nmap,如果在端口 80 上找到 web 服务器,则启动 NSE 脚本http-google-email
。
要仅显示属于某个主机名的结果,请使用脚本参数http-google-email.domain
:
$ nmap -p80 --script http-google-email --script-args http-google-email.domain=<hostname> <target>
要增加要爬网的页面数,请使用脚本参数http-google-email.pages
。默认情况下,此脚本仅请求五个页面:
$ nmap -p80 --script http-google-email --script-args http-google-email.pages=10 <target>
如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d
标志进行调试,可以设置 0 到 9 之间的任意整数:
$ nmap -p80 --script http-google-email -d4 <target>
- 强制 SMTP 密码配方
- SMTP 服务器配方中的枚举用户
- 暴力强制 IMAP 密码配方
- 暴力强制 POP3 密码配方
开放中继是不安全的邮件服务器,允许第三方域在未经授权的情况下使用它们。它们被垃圾邮件发送者和网络钓鱼者滥用,给组织带来了严重的风险,因为公共垃圾邮件黑名单可能会添加它们并影响整个组织,而整个组织依赖于到达其目的地的电子邮件。
本配方说明了如何使用 Nmap 检测开路继电器。
打开终端并输入以下命令:
$ nmap -sV --script smtp-open-relay -v <target>
输出返回通过的测试数以及使用的命令组合:
Host script results:
| smtp-open-relay: Server is an open relay (1/16 tests)
|_MAIL FROM:<antispam@insecure.org> -> RCPT TO:<relaytest@insecure.org>
脚本smtp-open-relay
由 Arturo‘Buanzo’Busleiman 提交,它尝试了 16 种不同的测试来确定 SMTP 服务器是否允许开放中继。如果启用了详细模式,它还会返回成功中继电子邮件的命令。
命令组合在脚本中硬编码,测试由目标和源地址的不同字符串格式组成:
MAIL FROM:<user@domain.com>
250 Address Ok.
RCPT TO:<user@adomain.com>
250 user@adomain.com OK
如果收到 503 响应,脚本将退出,因为这意味着此服务器受身份验证保护,并且不是开放式中继。
如果端口 25、465 和 587 打开,或者在目标主机(-sV --script smtp-open-relay
中找到服务smtp
、smtps
或submission
,则执行脚本smtp-open-relay
。
您可以通过指定脚本参数smtp-open-relay.ip
和smtp-open-relay.domain
来指定备用 IP 地址或域名:
$ nmap -sV --script smtp-open-relay -v --script-args smtp-open-relay.ip=<ip> <target>
$ nmap -sV --script smtp-open-relay -v --script-args smtp-open-relay.domain=<domain> <target>
通过分别指定脚本参数smtp-open-relay.to
和smtp-open-relay.from
来指定测试中使用的源和目标电子邮件地址:
$ nmap -sV --script smtp-open-relay -v --script-args smtp-open-relay.to=<Destination email address>,smtp-open-relay.from=<Source email address> <target>
如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d
标志进行调试,可以设置 0 到 9 之间的任意整数:
$ nmap -p80 --script http-google-email -d4 <target>
- 使用谷歌搜索方法发现有效电子邮件帐户
- SMTP 服务器配方中的枚举用户
- 检测后门 SMTP 服务器配方
- 检索 IMAP 邮件服务器的功能
- 检索 POP3 邮件服务器的功能
- 检测易受攻击的 Exim SMTP 服务器版本 4.70 至 4.75配方
邮件服务器通常存储非常敏感的信息,渗透测试人员需要对其执行暴力密码审计,以检查弱密码。
此配方将向您展示如何使用 Nmap 对 SMTP 服务器发起字典攻击。
要使用 Nmap 对 SMTP 服务器发起字典攻击,请输入以下命令:
$ nmap -p25 --script smtp-brute <target>
如果找到任何有效凭据,它们将包含在脚本输出部分:
PORT STATE SERVICE REASON
25/tcp open stmp syn-ack
| smtp-brute:
| Accounts
| acc0:test - Valid credentials
| acc1:test - Valid credentials
| acc3:password - Valid credentials
| acc4:12345 - Valid credentials
| Statistics
|_ Performed 3190 guesses in 81 seconds, average tps: 39
NSE 脚本smtp-brute
由 Patrik Karlsson 提交。它对 SMTP 服务器执行强制密码审计。支持以下认证方式:LOGIN
、PLAIN
、CRAM-MD5
、DIGEST-MD5
、NTLM
。
默认情况下,脚本使用单词列表/nselib/data/usernames.lst
和/nselib/data/passwords.lst
,但可以很容易地更改为使用备用单词列表。
如果发现 SMTP 服务器在端口 25 上运行,参数-p25 --script smtp-brute
使 Nmap 启动 NSE 脚本smtp-brute
。
脚本smtp-brute
依赖于 NSE 库unpwdb
和brute
。这些库有几个脚本参数,可用于优化蛮力密码审计。
-
要使用不同的用户名和密码列表,请设置参数
userdb
和passdb
:$ nmap -p25 --script smtp-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt <target>
-
要在找到一个有效帐户后退出,请使用参数
brute.firstOnly
:$ nmap -p25 --script smtp-brute --script-args brute.firstOnly <target>
-
要设置不同的超时限制,请使用参数
unpwd.timelimit
。要无限期运行,请将其设置为0
:$ nmap -p25 --script smtp-brute --script-args unpwdb.timelimit=0 <target> $ nmap -p25 --script smtp-brute --script-args unpwdb.timelimit=60m <target>
brute 库支持改变攻击中使用的用户名/密码组合的不同模式。可用的模式有:
-
user
:对于userdb
中列出的每个用户,passdb
中的每个密码都将在$ nmap --script smtp-brute --script-args brute.mode=user <target>
中进行尝试
-
pass
:对于passdb
中列出的每个密码,userdb
中的每个用户都将进行$ nmap --script smtp-brute --script-args brute.mode=pass <target>
的试用
-
creds
:这需要额外的参数brute.credfile
$ nmap --script smtp-brute --script-args brute.mode=creds,brute.credfile=./creds.txt <target>
如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d
标志进行调试,可以设置 0 到 9 之间的任意整数:
$ nmap -p80 --script http-google-email -d4 <target>
- 使用谷歌搜索方法发现有效电子邮件帐户
- SMTP 服务器配方中的枚举用户
- 暴力强制 IMAP 密码配方
- 检索 IMAP 邮件服务器的功能
- 暴力强制 POP3 密码配方
- 检索 POP3 邮件服务器的功能
用作用户名的电子邮件帐户在 web 应用程序中非常常见,在审计邮件服务器时,查找它们是一项必要的任务。通过 SMTP 命令枚举用户可以获得出色的结果,多亏了 Nmap 脚本引擎,我们可以自动化此任务。
此配方显示如何使用 Nmap 枚举 SMTP 服务器上的用户。
要使用 Nmap 枚举 SMTP 服务器的用户,请输入以下命令:
$ nmap -p25 –script smtp-enum-users <target>
找到的任何用户名都将包含在脚本输出部分:
Host script results:
| smtp-enum-users:
|_ RCPT, webmaster
脚本smtp-enum-users
由 Duarte Silva 编写,它试图使用 SMTP 命令RCPT
、VRFY
和EXPN
枚举 SMTP 服务器中的用户。
SMTP 命令RCPT
、VRFY
和EXPN
可用于确定邮件服务器上是否存在帐户。让我们只看一下 AUTT3 命令,因为它们都以类似的方式工作:
VRFY root
250 root@domain.com
VRFY eaeaea
550 eaeaea... User unknown
请注意,此脚本仅适用于不需要身份验证的 SMTP 服务器。如果是这种情况,您将看到以下消息:
| smtp-enum-users:
|_ Couldn't perform user enumeration, authentication needed
您可以使用脚本参数smtp-enum-users.methods
选择要尝试的方法(RCPT
、VRFY
和EXPN
),以及尝试的顺序:
$ nmap -p25 –script smtp-enum-users --script-args smtp-enum-users.methods={VRFY,EXPN,RCPT} <target>
$ nmap -p25 –script smtp-enum-users --script-args smtp-enum-users.methods={RCPT, VRFY} <target>
要在 SMTP 命令中设置不同的域,请使用脚本参数smtp-enum-users.domain
:
$ nmap -p25 –script smtp-enum-users --script-args smtp-enum-users.domain=<domain> <target>
脚本smtp-enum-users
依赖于 NSE 库unpwdb
和brute
。这些库有几个脚本参数,可用于优化蛮力密码审计。
-
要使用不同的用户名列表,请设置参数
userdb
:$ nmap -p25 --script smtp-enum-users --script-args userdb=/var/usernames.txt <target>
-
要在找到一个有效帐户后退出,请使用参数
brute.firstOnly
:$ nmap -p25 --script smtp-enum-users --script-args brute.firstOnly <target>
-
要设置不同的超时限制,请使用参数
unpwd.timelimit
。要无限期运行,请将其设置为0
:$ nmap -p25 --script smtp-enum-users --script-args unpwdb.timelimit=0 <target> $ nmap -p25 --script smtp-enum-users --script-args unpwdb.timelimit=60m <target>
如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d
标志进行调试,可以设置 0 到 9 之间的任意整数:
$ nmap -p80 --script http-google-email -d4 <target>
- 使用谷歌搜索方法发现有效电子邮件帐户
- 强制 SMTP 密码配方
- SMTP 服务器配方中的枚举用户
- 检测后门 SMTP 服务器配方
- 暴力强制 IMAP 密码配方
- 检索 IMAP 邮件服务器的功能
- 暴力强制 POP3 密码配方
- 检索 POP3 邮件服务器的功能
受损服务器可能安装了恶意 SMTP 服务器,并被垃圾邮件发送者滥用。系统管理员可以使用 Nmap 帮助他们监视网络中的邮件服务器。
此配方显示了如何使用 Nmap 检测恶意 SMTP 服务器。
打开终端并输入以下 Nmap 命令:
$ nmap -sV --script smtp-strangeport <target>
如果在非标准端口上发现邮件服务器,将在脚本输出部分报告:
PORT STATE SERVICE VERSION
9999/tcp open ssl/smtp Postfix smtpd
|_smtp-strangeport: Mail server on unusual port: possible malware
剧本smtp-strangeport
由迪曼·托多罗夫提交。它检测在非标准端口上运行的 SMTP 服务器,这是恶意邮件服务器的指示器。如果发现 SMTP 服务器在 25465 和 587 以外的端口上运行,此脚本将通知您。
参数-sV --script smtp-strangeport
使 Nmap 启动服务检测并启动 NSE 脚本smtp-strangeport
,该脚本将比较找到 SMTP 服务器的端口号与已知的端口号 25、465 和 587。
我们可以使用此脚本为您的邮件服务器设置一个监视系统,该系统将在发现恶意 SMTP 服务器时通知您。首先,创建文件夹/usr/local/share/nmap-mailmon/
。
扫描您的主机并将结果保存在我们刚刚创建的mailmon
目录中:
#nmap -oX /usr/local/share/nmap-mailmon/base.xml -sV -p- -Pn -T4 <target>
结果文件将用于比较结果,它应该反映您已知的服务列表。现在,创建文件nmap-mailmon.sh
:
#!/bin/bash
#Bash script to email admin when changes are detected in a network using Nmap and Ndiff.
#
#Don't forget to adjust the CONFIGURATION variables.
#Paulino Calderon <calderon@websec.mx>
#
#CONFIGURATION
#
NETWORK="YOURDOMAIN.COM"
ADMIN=YOUR@EMAIL.COM
NMAP_FLAGS="-sV -Pn -p- -T4 --script smtp-strangeport"
BASE_PATH=/usr/local/share/nmap-mailmon/
BIN_PATH=/usr/local/bin/
BASE_FILE=base.xml
NDIFF_FILE=ndiff.log
NEW_RESULTS_FILE=newscanresults.xml
BASE_RESULTS="$BASE_PATH$BASE_FILE"
NEW_RESULTS="$BASE_PATH$NEW_RESULTS_FILE"
NDIFF_RESULTS="$BASE_PATH$NDIFF_FILE"
if [ -f $BASE_RESULTS ]
then
echo "Checking host $NETWORK"
${BIN_PATH}nmap -oX $NEW_RESULTS $NMAP_FLAGS $NETWORK
${BIN_PATH}ndiff $BASE_RESULTS $NEW_RESULTS > $NDIFF_RESULTS
if [ $(cat $NDIFF_RESULTS | wc -l) -gt 0 ]
then
echo "Network changes detected in $NETWORK"
cat $NDIFF_RESULTS
echo "Alerting admin $ADMIN"
mail -s "Network changes detected in $NETWORK" $ADMIN < $NDIFF_RESULTS
fi
fi
不要忘记更新以下配置值:
NETWORK="YOURDOMAIN.COM"
ADMIN=YOUR@EMAIL.COM
NMAP_FLAGS="-sV -Pn -p- -T4 --script smtp-strangeport"
BASE_PATH=/usr/local/share/nmap-mailmon/
BIN_PATH=/usr/local/bin/
BASE_FILE=base.xml
NDIFF_FILE=ndiff.log
NEW_RESULTS_FILE=newscanresults.xml
使用以下命令使脚本nmap-mailmon.sh
可执行:
#chmod +x /usr/local/share/nmap-mailmon/nmap-mailmon.sh
您现在可以添加以下crontab
条目来自动运行此脚本:
0 * * * * /usr/local/share/nmap-mon/nmap-mon.sh
重新启动 cron,您应该已经成功地为邮件服务器安装了一个监控系统,该系统将在发现恶意 SMTP 服务器时通知您。
- 检测开路继电器配方
- 检测易受攻击的 Exim SMTP 服务器版本 4.70 至 4.75配方
电子邮件帐户存储非常敏感的信息,而审计邮件服务器的渗透测试人员必须检测到可能危及电子邮件帐户及其可访问信息的弱密码。
在此配方中,我们将使用 Nmap 强制输入 IMAP 密码。
要对 IMAP 执行暴力密码审计,请使用以下命令:
$ nmap -p143 --script imap-brute <target>
找到的所有有效帐户将列在“脚本输出”部分下:
PORT STATE SERVICE REASON
143/tcp open imap syn-ack
| imap-brute:
| Accounts
| acc1:test - Valid credentials
| webmaster:webmaster - Valid credentials
| Statistics
|_ Performed 112 guesses in 112 seconds, average tps: 1
脚本imap-brute
由 Patrik Karlsson 提交,它对 IMAP 服务器执行暴力密码审计。支持LOGIN
、PLAIN
、CRAM-MD5
、DIGEST-MD5
和NTLM
认证。
默认情况下,此脚本使用单词列表/nselib/data/usernames.lst
和/nselib/data/passwords.lst
,但您可以通过配置 brute 库来更改此设置。
参数-p143 --script imap-brute
告诉 Nmap,如果发现 IMAP 在端口 143 上运行,则启动脚本imap-brute
。
脚本imap-brute
依赖于 NSE 库unpwdb
和brute
。这些库有几个脚本参数,可用于优化蛮力密码审计。
-
要使用不同的用户名和密码列表,请分别设置参数
userdb
和passdb
:$ nmap -p143 --script imap-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt <target>
-
要在找到一个有效帐户后退出,请使用参数
brute.firstOnly
:$ nmap -p143 --script imap-brute --script-args brute.firstOnly <target>
-
要设置不同的超时限制,请使用参数
unpwd.timelimit
。要不精确地运行它,请将其设置为 0:$ nmap -p143 --script imap-brute --script-args unpwdb.timelimit=0 <target> $ nmap -p143 --script imap-brute --script-args unpwdb.timelimit=60m <target>
brute 库支持改变攻击中使用的用户名/密码组合的不同模式。可用的模式有:
-
user
:对于userdb
中列出的每个用户,passdb
中的每个密码都将在$ nmap --script imap-brute --script-args brute.mode=user <target>
中进行尝试
-
pass
:对于passdb
中列出的每个密码,userdb
中的每个用户都将进行$ nmap --script imap-brute --script-args brute.mode=pass <target>
的试用
-
creds
:这需要额外的参数brute.credfile
$ nmap --script imap-brute --script-args brute.mode=creds,brute.credfile=./creds.txt <target>
如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d
标志进行调试,可以设置 0 到 9 之间的任意整数:
$ nmap -p80 --script http-google-email -d4 <target>
- 使用谷歌搜索方法发现有效电子邮件帐户
- 强制 SMTP 密码配方
- SMTP 服务器配方中的枚举用户
- 检索 IMAP 邮件服务器的功能
- 暴力强制 POP3 密码配方
- 检索 POP3 邮件服务器配方的功能
IMAP 服务器可能支持不同的功能。有一个名为CAPABILITY
的命令,允许客户端列出这些受支持的邮件服务器功能,我们可以使用 Nmap 来自动执行此任务。
此配方向您展示了如何使用 Nmap 列出 IMAP 服务器的功能。
打开您喜爱的终端并输入以下 Nmap 命令:
$ nmap -p143,993 --script imap-capabilities <target>
结果将包含在脚本输出部分下:
993/tcp open ssl/imap Dovecot imapd
|_imap-capabilities: LOGIN-REFERRALS completed AUTH=PLAIN OK Capability UNSELECT THREAD=REFERENCES AUTH=LOGINA0001 IMAP4rev1 NAMESPACE SORT CHILDREN LITERAL+ IDLE SASL-IR MULTIAPPEND
脚本imap-capabilities
由 Brandon Enright 提交,它试图使用 RFC 3501 中定义的命令CAPABILITY
列出 IMAP 服务器支持的功能。
参数-p143,993 --script imap-capabilities
告诉 Nmap,如果发现 IMAP 服务器在端口 143 或 993 上运行,则启动 NSE 脚本imap-capabilities
。
对于 IMAP 服务器在非标准端口上运行的情况,您可以使用端口选择标志-p
,或启用 Nmap 的服务检测:
#nmap -sV --script imap-capabilities <target>
如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d
标志进行调试,可以设置 0 到 9 之间的任意整数:
$ nmap -p80 --script http-google-email -d4 <target>
- 强制 SMTP 密码配方
- SMTP 服务器配方中的枚举用户
- 检测后门 SMTP 服务器配方
- 暴力强制 IMAP 密码配方
- 检索 IMAP 邮件服务器的功能
- 暴力强制 POP3 密码配方
- 检索 POP3 邮件服务器的功能
- 检测易受攻击的 Exim SMTP 服务器版本 4.70 至 4.75配方
电子邮件帐户存储敏感信息。审查邮件服务器的渗透测试人员必须测试可能帮助攻击者危害重要帐户的弱密码。
这个方法向您展示了如何使用 Nmap 对 POP3 邮件服务器执行暴力密码审计。
要使用 Nmap 对 POP3 发起字典攻击,请输入以下命令:
$ nmap -p110 --script pop3-brute <target>
所有有效帐户都将列在脚本输出部分下:
PORT STATE SERVICE
110/tcp open pop3
| pop3-brute: webmaster : abc123
|_acc1 : password
pop3-brute
由 Philip Pickering 提交,它对 POP3 邮件服务器执行暴力密码审计。默认情况下,它使用单词列表/nselib/data/usernames.lst
和/nselib/data/passwords.lst
作为用户名和密码组合。
脚本pop3-brute
依赖于 NSE 库unpwdb
。此库有多个脚本参数,可用于优化蛮力密码审计。
-
要使用不同的用户名和密码列表,请设置参数
userdb
和passdb
:$ nmap -p110 --script pop3-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt <target>
-
要设置不同的超时限制,请使用参数
unpwd.timelimit
。要无限期运行,请将其设置为0
:$ nmap -p110 --script pop3-brute --script-args unpwdb.timelimit=0 <target> $ nmap -p110 --script pop3-brute --script-args unpwdb.timelimit=60m <target>
如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d
标志进行调试,可以设置 0 到 9 之间的任意整数:
$ nmap -p80 --script http-google-email -d4 <target>
- 使用谷歌搜索方法发现有效电子邮件帐户
- 强制 SMTP 密码配方
- SMTP 服务器配方中的枚举用户
- 检测后门 SMTP 服务器配方
- 暴力强制 IMAP 密码配方
- 检索 IMAP 邮件服务器的功能
- 暴力强制 POP3 密码配方
- 检索 POP3 邮件服务器配方的功能
POP3 邮件服务器可能支持 RFC 2449 中定义的不同功能。通过使用 POP3 命令,我们可以列出它们,多亏了 Nmap,我们可以自动执行此任务,并在扫描结果中包含此服务信息。
本食谱将教您如何使用 Nmap 列出 POP3 邮件服务器的功能。
打开您喜爱的终端并输入以下 Nmap 命令:
$ nmap -p110 --script pop3-capabilities <target>
脚本输出部分将包括服务器功能列表:
PORT STATE SERVICE
110/tcp open pop3
|_pop3-capabilities: USER CAPA UIDL TOP OK(K) RESP-CODES PIPELINING STLS SASL(PLAIN LOGIN)
脚本pop3-capabilities
由 Philip Pickering 提交,它试图检索 POP3 和 POP3 服务器的功能。它使用 POP3 命令CAPA
请求服务器提供支持的命令列表。此脚本还尝试通过IMPLEMENTATION
字符串和任何其他特定于站点的策略检索版本字符串。
脚本pop3-capabilities
与 POP3 和 POP3 配合使用。可以使用 Nmap 的服务扫描检测在非标准端口上运行的邮件服务器:
$ nmap -sV --script pop3-capabilities <target>
如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d
标志进行调试,可以设置 0 到 9 之间的任意整数:
$ nmap -p80 --script http-google-email -d4 <target>
- 检测开路继电器配方
- 强制 SMTP 密码配方
- SMTP 服务器配方中的枚举用户
- 检测后门 SMTP 服务器配方
- 暴力强制 IMAP 密码配方
- 检索 IMAP 邮件服务器的功能
- 暴力强制 POP3 密码配方
- 检测易受攻击的 Exim SMTP 服务器版本 4.70 至 4.75配方
启用 DKIM 的 Exim SMTP 服务器 4.70 至 4.75 容易受到格式字符串错误的攻击,远程攻击者可利用该漏洞执行代码。Nmap NSE 可以帮助渗透测试人员远程检测此漏洞。
此配方说明了使用 Nmap 开发 Exim SMTP 服务器的过程。
打开终端并键入以下命令:
$ nmap --script smtp-vuln-cve2011-1764 --script-args mailfrom=<Source address>,mailto=<Destination address>,domain=<domain> -p25,465,587 <target>
如果 Exim 服务器易受攻击,脚本输出部分将包含更多信息:
PORT STATE SERVICE
587/tcp open submission
| smtp-vuln-cve2011-1764:
| VULNERABLE:
| Exim DKIM format string
| State: VULNERABLE
| IDs: CVE:CVE-2011-1764 OSVDB:72156
| Risk factor: High CVSSv2: 7.5 (HIGH) (AV:N/AC:L/Au:N/C:P/I:P/A:P)
| Description:
| Exim SMTP server (version 4.70 through 4.75) with DomainKeys Identified
| Mail (DKIM) support is vulnerable to a format string. A remote attacker
| who is able to send emails, can exploit this vulnerability and execute
| arbitrary code with the privileges of the Exim daemon.
| Disclosure date: 2011-04-29
| References:
| http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1764
| http://osvdb.org/72156
|_ http://bugs.exim.org/show_bug.cgi?id=1106
剧本smtp-vuln-cve2011-1764
是贾拉尔·哈鲁尼写的。它通过发送格式错误的 DKIM 头并检查连接是否关闭或返回错误来检测具有域密钥标识邮件(DKIM)的易受攻击的 Exim SMTP 服务器 4.70-4.75。
默认情况下,脚本smtp-vuln-cve2011-1764
在初始握手中使用nmap.scanme.org
作为域,但您可以通过指定脚本参数smtp-vuln-cve2011-1764.domain
来更改此设置:
$ nmap --script smtp-vuln-cve2011-1764 --script-args domain=<domain> -p25,465,587 <target>
要更改源地址和目标地址对应的默认值root@<domain>
和postmaster@<target>
,请分别使用参数smtp-vuln-cve2011-1764.mailfrom
和smtp-vuln-cve2011-1764.mailto
:
$ nmap --script smtp-vuln-cve2011-1764 --script-args mailto=admin@0xdeadbeefcafe.com,mailfrom=test@0xdeadbeefcafe.com -p25,465,587 <target>
如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d
标志进行调试,可以设置 0 到 9 之间的任意整数:
$ nmap -p80 --script http-google-email -d4 <target>
- 检测开路继电器配方
- 强制 SMTP 密码配方
- SMTP 服务器配方中的枚举用户
- 检测后门 SMTP 服务器配方
- 暴力强制 IMAP 密码配方
- 检索 IMAP 邮件服务器的功能
- 暴力强制 POP3 密码配方
- 检索 POP3 邮件服务器的功能