[Errno 10061] Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte?
Moin,
ich versuche derzeit ein Backdoor-System für mein "Zweitsystem" zu schreiben.
Der Quelltext:
import os
import socket
s = socket.socket()
host = '127.0.0.1'
port = 8080
s.connect((host, port))
print("Verbunden")
print("")
while 1:
command = s.recv(1024)
command = command.decode()
print("Kommando erhalten")
if command == "view_cwd":
files = os.getcwd()
files = str(files)
s.send("".encode())
s.send(command.encode())
print("Ausgefuehrt")
else:
print("")
print("Command regognised")
Der Fehler der auftritt ist:
[Errno 10061] Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte.
--
Wie kann ich das beheben?
PS: Mein OS ist Windows 10 Home.
Vielen Dank für eure Antworten. 😀
3 Antworten
Codeformatierung nutze.
Du willst Dich also mit einem Prozess auf dem lokalen Rechner verbinden. Läuft denn auf dem Port ein Prozess, der die Verbindungen entgegennehmen kann?
Bist Du Dir sicher, daß DU nur ein 1er Backlog willst?
Und auch nur einmalog eine Verbindung annehmen möchtest?
Mache mal ein netstat nachdem Du den 'lauschenden' Prozess gestartet hast.
P.S.: Du bindest ggf. nicht an 127.0.0.1, lasse DIr das Ergbnis von:
host = socket.gethostname()
anzeigen, denn das ist die Adresse, an die Du dann bindest.
Danke, ich hatte das gleiche gestern auch schon, also mit Desktop..., da wollte es nicht funktionieren.
Was muss ich da eingeben, wenn ich von einem anderen Netzwerk aus darauf zugreifen möchte?
gethostname() wird an die primäre Schnittstelle binden - das ist soweit erstmal nicht falsch, nur bindet es eben nicht auf loopback, sodaß es nicht via 127.0.0.1 erreichbar ist. Du mußt dann beim connect die IP nehmen, an die auch gebunden wurde.
Ich empfehle Dir hier dringend Deine Kenntnisse zu IP zu vertiefen.
Für den Anmfang zum testen bindest Du an '*', also alle Interfaces, bzw.:
the empty string represents
INADDR_ANY
Hi ich habe das Youtube video auch gesehen und habe auch das Problehm.
Läuft denn auf Localhost ein Dienst der auf Port 8080 lauscht, so dass du dich auf den connecten kannst?
import os
import socket
s = socket.socket()
host = socket.gethostname()
port = 8080
s.bind((host, port))
print("")
print("Server is running on ", host)
print("")
print("Warte auf verbindung")
s.listen(1)
conn, addr = s.accept()
print("")
print(addr, "Verbunden")
# nach Verbindung
while 1:
command = input(str("Command >>"))
if command == "view_cwd":
conn.send(command.encode())
print("Command gesendet, warte auf antwort")
print("")
conn.recv(1024)
print("Ausgefuehrt")
files = conn.recv(500)
files = files.decode()
print("Command output :", files)
else :
print("")
print("Command regognised")
Der andere Quelltext ist:
import os
import socket
s = socket.socket()
host = socket.gethostname()
port = 8080
s.bind((host, port))
print("")
print("Server is running on ", host)
print("")
print("Warte auf verbindung")
s.listen(1)
conn, addr = s.accept()
print("")
print(addr, "Verbunden")
# nach Verbindung
while 1:
command = input(str("Command >>"))
if command == "view_cwd":
conn.send(command.encode())
print("Command gesendet, warte auf antwort")
print("")
conn.recv(1024)
print("Ausgefuehrt")
files = conn.recv(500)
files = files.decode()
print("Command output :", files)
else :
print("")
print("Command regognised")