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 应用程序名称')

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

你可能感兴趣的:(python通过telnet远程执行目标机exe程序)