2014-01-17 48 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:'除外明確地指出它感興趣的異常,忽略所有其他異常。 –