2014-01-17 18 views
0

,我尝试使用vsftpd的自学蟒蛇我在我的笔记本电脑打开FTP服务器(Ubuntu的12.04)。是(对于尝试着想)NINJA123的配置,我可以使用 ftp localhost 笔记本电脑本身,我选择的用户名和密码登录后。 在我的电脑上(在局域网中)我打开浏览器,输入ftp://192.168.1.108/。当我得到一个弹出式用户名和密码,我输入上面的细节 - 所以 - 一切工作FTP明智。Python的bruteforcer的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" 

似乎由于工作抢

+0

你能检查vsftpd的日志?有没有任何信息表明脚本试图登录? –

+0

简化您的示例。摆脱密码文件,并尝试直接与'ftp.login(“NINJA”,“123”)'连接。 –

+0

@UliKöhler我会很乐意这样做,如果你们会有一种足以告诉我,它位于 Robᵩ我改变了它,但仍不起作用 – Giladiald

回答

3

我只学习自己蟒但不是你想的不正确引用FTPLIB库中的尝试阻止?您正在使用ftp.ftplib.FTP(ip) ...不应该只是ftplib.FTP(ip)ftp.login("NINJA", password)也一样。

+2

+1因此,证明一个人不应该使用catch-all“except:”子句。从[Python教程](http://docs.python.org/2/tutorial/errors.html#handling-exceptions):“*请特别小心,因为在这里很容易掩盖真正的编程错误办法!” –

+0

@checknate可以尝试帮助我理解吗?我切换到'ftplib.FTP(IP)',但我不知道我应该更换@Rob了'ftp.login'老实说,我讨厌看到,除了它无效几乎一切,我只是unsuck什么其他的环我可以在这种情况下使用 – Giladiald

+1

@Giladiald,试试这个:'try:'/'ftp = ftplib.FTP(ip)'/'ftp.login(“NINJA”,password)'/'print“密码是:” ,密码'/'除了ftplib.error_perm:'/'打印“不正确”'。看看1)'ftp ='行创建你在下一行使用的'ftp'变量,'ftplib.error_perm:'除外明确地指出它感兴趣的异常,忽略所有其他异常。 –