Mehr Ausgabe von NetCat erhalten

Mehr Ausgabe von NetCat erhalten

Derzeit verwende ich den Standard, netcat -e /bin/shum eine Remote-Shell bereitzustellen, auf die andere Computer zugreifen können.

Das Problem ist jedoch, dass diese Shell ziemlich schrecklich ist, da sie nur begrenzte Ausgabemöglichkeiten bietet. Wenn ich beispielsweise einen ungültigen Befehl sende xxxxx, erhalte ich keine Antwort vom Computer, aber auf dem Computer wird im Terminal ein Fehler mit der Meldung angezeigt /bin/sh: xxxxx: not found.

Wenn ich die Shell verwende, um eine Konsolenanwendung zu starten, kann ich oft nichts sehen, was die Konsolenanwendung ausgibt, und ich kann nicht Ctrlzüber die Shell gehen, weil dadurch Netcat auf dem Computer geschlossen wird. Das ist ein Chaos, ich möchte, dass es genauso funktioniert wie SSH (das ich nicht verwenden kann).

Wäre es möglich , statt alles weiterzuleiten, /bin/shwie ich es mit netcat mache, eine benutzerdefinierte Anwendung zu erstellen, die mir alle Ausgaben in einem Terminal anzeigt? Ist es irgendwie möglich, den Text vom Terminal abzurufen, unabhängig davon, welcher Prozess ihn geschrieben hat?

Wäre es möglich, ein sshdauf der Box zu starten und netcat -e "ssh root@localhost"es dann auf diese Weise zu tun? (Ich habe das versucht, scheint aber nicht zu funktionieren).

Ich suche nach irgendeiner Lösung.

Antwort1

Das Erstellen einer „benutzerdefinierten Anwendung“ würde eine Neuimplementierung von Telnet/SSH bedeuten. Dies ist natürlich möglich, aber nicht notwendig.

Wenn sshd (oder telnetd) auf dem Host vorhanden ist, können Sie es aus Ihrer Netcat-Shell-Sitzung mit z. B. starten /usr/sbin/sshd -p <port> -D 2>&1und dann ssh -p <port> root@<host>auf Ihrem Client ausführen. Möglicherweise müssen Sie sshd weitere Optionen hinzufügen, beispielsweise eine Konfigurationsdatei erstellen und diese in der Befehlszeile eingeben:/usr/sbin/sshd -f <config-file> ...

Wenn nicht, können Sie die Netcat-Sitzung verwenden, um Telnetd oder SSHD hochzuladen, die erforderliche Umgebung/Konfiguration einzurichten und es auf einem bestimmten Port auszuführen.

Sie können auch einen Wrapper um Ihre Shell erstellen, um stderr auf stdout umzuleiten, etwa /bin/sh 2>&1. Dadurch könnten Sie stderr in Ihrer Netcat-Sitzung sehen, aber Sie hätten keine „echte Terminal“-Funktionalität.

Eine weitere Option ist, DISPLAY=<client>:0 xtremwenn Sie xterm oder ein gleichwertiges Programm auf dem Host und einen X-Server auf dem Client haben.

verwandte Informationen