渗透测试工作中的SMTP扫描介绍


SMTP扫描主要是为了发现目标系统的邮箱账号。
知道了邮箱账号后,最直接的方式就是发送钓鱼邮件给目标账户,让目标自己跳入陷阱。
SMTP服务都是在25端口的。
知道服务器ip和端口后,简易一点的方案,可以直接用nc去连接一下,比如:# 先连接smtp服务器
nc -nv smtp服务器ip 25
# 校验账号root是否存在
VRFY root但是效率太低,非常不实用。
SMTP扫描:nmapnmap提供了脚本来进行smtp扫描:nmap smtp.163.com -p25 –script=smtp-enum-users.nse –script-args=smtp-enum-users.methods={VRFY}传VRFY的时候脚本查询的是root账户,所以结果显示没找到账户。
实际工作中可以根据需要传递其他参数。
nmap还有一个扫描用户账号的脚本,不过现在主流的smtp服务器都能拒绝这个扫描了,了解一下有这么个东西就行:nmap smtp.163.com -p25 –script=smtp-open-relay.nseSMTP扫描:socket也可以用socket模块自己写一个检查用户是否存在的脚本:#!/usr/bin/python3

import socket
import sys

if len(sys.argv) != 2:
print('Usage: smtp.py <username>')
sys.exit()

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect = s.connect(('220.181.12.16', 25))
banner = s.recv(1024)
print(banner + 'aaaaaa')
s.send('VRFY' + sys.argv[1] + 'rn')
result = s.recv(1024)
print(result)
s.close()不过我尝试了一下,smtp.163.com在脚本中连接的时候路由不到,手动连接也很大概率连接不上,不确定是不是服务器做了什么限制。
换了其他几个主流的邮箱smtp服务器,都用脚本路由不到。
而且就算路由连上了,还有一些前期交互的要求,这个socket脚本其实都需要进行一定修改。
像smtp.163.com需要先发送一个HELLO,服务器回复信息后,才能使用VRFY查询账户。
关于smtp就介绍到这里,其他的等以后有需要再继续分享。

未经允许不得转载:选主机测评网 » 渗透测试工作中的SMTP扫描介绍