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.
Antworten:
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
netcat
Dann 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
quelle
Sie können eine Reverse-Shell unter MacOS (auf Computer 1) wie folgt erstellen:
Stellen Sie dann von einem anderen Computer (Computer 2) mit einem der folgenden Netcat-Befehle eine Verbindung her (abhängig von der Implementierung):
oder
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).
quelle
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!
quelle