python通过telnet远程执行目标机exe程序

首先是几个准备工作:
1.打开本机和目标主机的telnet功能,这里需要注意一点的是,讲目标主机用户添加到telnetGroup里面。
2.本机和目标机都要安装python
下面看代码:

# coding=utf8

import telnetlib
import threading
import os
import time

Host = '你自己的目标机ip'
username = 'test'
password = 'GWatt1234!@#'


class myThread(threading.Thread):
    def __init__(self, threadID, name, counter):
        threading.Thread.__init__(self)
        self.threadID = threadID
        self.name = name
        self.counter = counter

    def run(self):
        print "Starting " + self.name
        main()
        print "Exiting " + self.name


def main():
    print("init telnet.")
    tn = telnetlib.Telnet(Host)
    print("init telnet finish.")

    print("connecting......")
    time.sleep(1)

    print("begin login.")
    tn.read_until('login: ')
    tn.write(username + '\r\n')

    tn.read_until('password: ')
    tn.write(password + '\r\n')
    print("login finish.")

    time.sleep(1)

    pid = os.getpid()
    print("current pid:%s" % pid)

    tn.read_until('test')

    print("start gts2main.")
    tn.write('python e:\python_js\start_gts.py' + '\r\n')
    time.sleep(0.5)
    print("start gts2main success.")

    while 1:
        # 这里进行输入获取是为了让线程阻塞,当主进程停止时调用进程结束,所以这里要阻塞,也可以使用sleep阻塞
        input_info = raw_input("enter info:")
        if input_info == "stop":
            break
        else:
            print("input invalid, place input stop.")
            pass
    print("stop gts2main success.")


if __name__ == '__main__':
    t = myThread(1, "Thread-1", 1)
    t.start()
    t.join()

程序相当于模拟telnet进行登录,主要方法是read_util,这是你期望的到什么结果就往里面写,如果有就显示,没有的话可以设置超时时间。

我们这里是去调用目标主机中的python文件,然后再用python的os和os.system来执行windows命令,应为os有很友好的功能函数。
目标机器python文件代码:

# coding=utf8

import os
os.chdir('E:\Server\Main Server')
os.system('start 应用程序名称')

总结,本机调用远程机器脚本文件,使用本地脚本来执行各种操作,修改起来也方便。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • win7 cmd管理员权限设置 net localgroup administrators 用户名 /add 把“...
    f675b1a02698阅读 5,408评论 0 11
  • 部分内容转载自搜狗百科 cmd是command的缩写.即命令提示符(CMD),是在OS / 2 , Windows...
    青冥之上阅读 2,431评论 0 24
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,244评论 2 33
  • 好像无意间看到你在天空下张开手臂 好像有时会注意到你了 好像你感觉到我的目光对我笑了下 好像你和她很亲密 好像有一...
    捡破烂的胡萝卜阅读 339评论 0 0