如何使用Python自动执行Windows telnet?

时间:2019-05-02 17:16:03

标签: python-3.x

Telnetlib允许我通过telnet进入Windows pc,但是库使用的命令结构与Windows telnet如此不同,以至于我无法运行所需的命令。

我没有花几个小时,而是花了几天的时间在互联网上搜寻运气,但是没有运气。我发现的几乎所有内容都与Linux主机有关,例如“ Expect”等。我所发现的几乎没有什么指向我使用VB和POWERSHELL的,我对学习它们并不感兴趣。我确实发现了一篇非常古老的文章,它解释了Windows telnet并不是“真正的telnet”,因为它使用ansi操纵屏幕上的光标以及其他一些大的区别,但是程序员放弃了解决方案。

在使用Wireshark进行TCP流之后,我看到Windows telnet逐个回显每个字符,并且包含我经验不足以识别的额外“内容”。使用Telnetlib启动会话,我看到它传递短语而不是单个字符,并且丢失了很多“东西”。  另外,我从没有看到“ 欢迎使用telnet ”,但是无论如何我都可以登录。我可以“ cd ..”,甚至可以将CD插入目录,但无法运行命令“ systeminfo >> S:\ thissysteminfo.txt”。

导入系统
导入telnetlib
  
HOST_IP =“ x.x.x.x”
PORT = 23
超时= 10
TELNET_USER =“用户”
TELNET_PASSWORD =“密码”
NEWLINE =“ cd C:\ Windows \ System32”
  
t = telnetlib.Telnet(HOST_IP,PORT)
t.read_until(b“登录名:”,5)

t.write(TELNET_USER.encode(“ ascii”)+ b“ \ r \ n”)
如果TELNET_PASSWORD:
    t.read_until(b“密码:”)
    t.write(TELNET_PASSWORD.encode(“ ascii”)+ b“ \ r \ n”)
t.read_until(b“>”)
t.write(NEWLINE.encode('ascii')+ b“ \ n”)
NEWLINE =“ systeminfo >> S:\\ thissysteminfo.txt”
t.write(NEWLINE.encode('ascii')+ b“ \ n”)
t.write(b“ exit \ n”)

预计将找到S:\ thissysteminfo.txt。一无所获。

wireshark说:
...........'..............'......用户
用户
密码:密码
********
  
.......................................
C:\ Users \ kingbird> ... cd C:\ Windows \ System32
systeminfo >> S:\ thissysteminfo.txt
退出
cd C:\ Windows \ System32
systeminfo >> S:\ thissys .................................... teminfo.txt
退出
  
本机Telnet服务器已关闭连接

0 个答案:

没有答案