用于探测 smtp 服务器的 Python 脚本

标签 python sockets

我编写此脚本是为了测试单个 IP 地址,以探测 smtp 服务器上的特定用户名进行渗透测试。我现在尝试移植此脚本来运行相同的测试,但移植到一系列 IP 地址而不是单个 IP 地址。谁能阐明如何实现这一目标?

#!/usr/bin/python

import socket
import sys


users= []
for line in sys.stdin:
        line = line.strip()
        if line != '':
                users.append(line)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((sys.argv[1], 25))
fp = s.makefile('rwb')

fp.readline()
fp.write('HELO test.example.com\r\n')
fp.flush()
fp.readline

for user in users:
        fp.write('VRFY %s\r\n\ ' % user)
        fp.flush()
        print '%s: %s' % (user, fp.readline().strip())

fp.write('QUIT\r\n')
fp.flush()
s.close()

最佳答案

如果您使用的是 Python3.3+,这很简单

import ipaddress # new in Python3.3

start_ip, end_ip = however_you_get_these_as_strings()

ip_networks = ipaddress.summarize_address_range(
                 ipaddress.IPv4Address(start_ip),
                 ipaddress.IPv4Address(end_ip))
# list of networks between those two IPs

for network in ip_networks:
    for ip in network:
        # ip is an ipaddress.IPv4Address object
        probe(str(ip))
        # which converts nicely to str

关于用于探测 smtp 服务器的 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28371555/

相关文章:

python - 如何在 Visual Studio 代码中使用特定端口和本地主机调试 Django Web 应用程序?

Python struct calsize 与实际不同

c++ - 异步C++

c - 套接字中的网络字节顺序

Python 从嵌套列表中最小数量的重复值创建列表

python - 单元测试 Django 时区感知日期时间

python - 如何在特征重要性图中显示原始特征名称?

c - 我在将值传递给 c 中的 recvfrom 和 sendto 函数时遇到问题

php - 在 PHP 中为 VTS 创建监听器套接字

c - 如何通过 UDP 套接字设置以太网服务等级?