Skip to content

Latest commit

 

History

History
893 lines (565 loc) · 29.1 KB

File metadata and controls

893 lines (565 loc) · 29.1 KB

六、审计邮件服务器

本章向您展示了如何做一些在许多情况下可能是非法的、不道德的、违反服务条款的或不是好主意的事情。这里提供的信息可用于保护您免受威胁,并使您自己的系统更安全。在遵循这些说明之前,请确保您站在法律和道德的正确一边。。。善用你的力量!

在本章中,我们将介绍:

  • 使用 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.nsehttp://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 脚本

如果在运行任何 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中找到服务smtpsmtpssubmission,则执行脚本smtp-open-relay

还有更多。。。

您可以通过指定脚本参数smtp-open-relay.ipsmtp-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.tosmtp-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 脚本

如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d标志进行调试,可以设置 0 到 9 之间的任意整数:

$ nmap -p80 --script http-google-email -d4 <target>

另见

  • 使用谷歌搜索方法发现有效电子邮件帐户
  • SMTP 服务器配方中的枚举用户
  • 检测后门 SMTP 服务器配方
  • 检索 IMAP 邮件服务器的功能
  • 检索 POP3 邮件服务器的功能
  • 检测易受攻击的 Exim SMTP 服务器版本 4.70 至 4.75配方

强制使用 SMTP 密码

邮件服务器通常存储非常敏感的信息,渗透测试人员需要对其执行暴力密码审计,以检查弱密码。

此配方将向您展示如何使用 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 服务器执行强制密码审计。支持以下认证方式:LOGINPLAINCRAM-MD5DIGEST-MD5NTLM

默认情况下,脚本使用单词列表/nselib/data/usernames.lst/nselib/data/passwords.lst,但可以很容易地更改为使用备用单词列表。

如果发现 SMTP 服务器在端口 25 上运行,参数-p25 --script smtp-brute使 Nmap 启动 NSE 脚本smtp-brute

还有更多。。。

脚本smtp-brute依赖于 NSE 库unpwdbbrute。这些库有几个脚本参数,可用于优化蛮力密码审计。

  • 要使用不同的用户名和密码列表,请设置参数userdbpassdb

    $ 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 脚本

如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d标志进行调试,可以设置 0 到 9 之间的任意整数:

$ nmap -p80 --script http-google-email -d4 <target>

另见

  • 使用谷歌搜索方法发现有效电子邮件帐户
  • SMTP 服务器配方中的枚举用户
  • 暴力强制 IMAP 密码配方
  • 检索 IMAP 邮件服务器的功能
  • 暴力强制 POP3 密码配方
  • 检索 POP3 邮件服务器的功能

正在枚举 SMTP 服务器中的用户

用作用户名的电子邮件帐户在 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 命令RCPTVRFYEXPN枚举 SMTP 服务器中的用户。

SMTP 命令RCPTVRFYEXPN可用于确定邮件服务器上是否存在帐户。让我们只看一下 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选择要尝试的方法(RCPTVRFYEXPN),以及尝试的顺序:

$ 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 库unpwdbbrute。这些库有几个脚本参数,可用于优化蛮力密码审计。

  • 要使用不同的用户名列表,请设置参数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 脚本

如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d标志进行调试,可以设置 0 到 9 之间的任意整数:

$ nmap -p80 --script http-google-email -d4 <target>

另见

  • 使用谷歌搜索方法发现有效电子邮件帐户
  • 强制 SMTP 密码配方
  • SMTP 服务器配方中的枚举用户
  • 检测后门 SMTP 服务器配方
  • 暴力强制 IMAP 密码配方
  • 检索 IMAP 邮件服务器的功能
  • 暴力强制 POP3 密码配方
  • 检索 POP3 邮件服务器的功能

检测后门 SMTP 服务器

受损服务器可能安装了恶意 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配方

强制使用 IMAP 密码

电子邮件帐户存储非常敏感的信息,而审计邮件服务器的渗透测试人员必须检测到可能危及电子邮件帐户及其可访问信息的弱密码。

在此配方中,我们将使用 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 服务器执行暴力密码审计。支持LOGINPLAINCRAM-MD5DIGEST-MD5NTLM认证。

默认情况下,此脚本使用单词列表/nselib/data/usernames.lst/nselib/data/passwords.lst,但您可以通过配置 brute 库来更改此设置。

参数-p143 --script imap-brute告诉 Nmap,如果发现 IMAP 在端口 143 上运行,则启动脚本imap-brute

还有更多。。。

脚本imap-brute依赖于 NSE 库unpwdbbrute。这些库有几个脚本参数,可用于优化蛮力密码审计。

  • 要使用不同的用户名和密码列表,请分别设置参数userdbpassdb

    $ 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 脚本

如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d标志进行调试,可以设置 0 到 9 之间的任意整数:

$ nmap -p80 --script http-google-email -d4 <target>

另见

  • 使用谷歌搜索方法发现有效电子邮件帐户
  • 强制 SMTP 密码配方
  • SMTP 服务器配方中的枚举用户
  • 检索 IMAP 邮件服务器的功能
  • 暴力强制 POP3 密码配方
  • 检索 POP3 邮件服务器配方的功能

检索 IMAP 邮件服务器的功能

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 脚本

如果在运行任何 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配方

暴力强制 POP3 密码

电子邮件帐户存储敏感信息。审查邮件服务器的渗透测试人员必须测试可能帮助攻击者危害重要帐户的弱密码。

这个方法向您展示了如何使用 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。此库有多个脚本参数,可用于优化蛮力密码审计。

  • 要使用不同的用户名和密码列表,请设置参数userdbpassdb

    $ 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 脚本

如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d标志进行调试,可以设置 0 到 9 之间的任意整数:

$ nmap -p80 --script http-google-email -d4 <target>

另见

  • 使用谷歌搜索方法发现有效电子邮件帐户
  • 强制 SMTP 密码配方
  • SMTP 服务器配方中的枚举用户
  • 检测后门 SMTP 服务器配方
  • 暴力强制 IMAP 密码配方
  • 检索 IMAP 邮件服务器的功能
  • 暴力强制 POP3 密码配方
  • 检索 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 脚本

如果在运行任何 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配方

检测易受攻击的 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.mailfromsmtp-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 脚本

如果在运行任何 NSE 脚本时发生意外情况,请启用调试以获取其他信息。Nmap 使用-d标志进行调试,可以设置 0 到 9 之间的任意整数:

$ nmap -p80 --script http-google-email -d4 <target>

另见

  • 检测开路继电器配方
  • 强制 SMTP 密码配方
  • SMTP 服务器配方中的枚举用户
  • 检测后门 SMTP 服务器配方
  • 暴力强制 IMAP 密码配方
  • 检索 IMAP 邮件服务器的功能
  • 暴力强制 POP3 密码配方
  • 检索 POP3 邮件服务器的功能