NetCatからより多くの出力を得る

NetCatからより多くの出力を得る

netcat -e /bin/sh現在、私は他のコンピューターがアクセスするためのリモート シェルを提供するために標準を使用しています。

しかし、問題は、このシェルは出力が限られているため、かなりひどいということです。たとえば、無効なコマンドを送信した場合xxxxx、マシンからは応答がありませんが、マシンのターミナルには というエラーが表示されます/bin/sh: xxxxx: not found

シェルを使用してコンソール アプリケーションを起動すると、コンソール アプリケーションの出力が何も表示されないことがよくあります。また、シェルを経由するCtrlzとマシン上の netcat が閉じられるため、シェルを経由できません。これは面倒です。SSH (使用できません) と同じように動作するようにしたいと思います。

netcat で行っているようにすべてをパイプする代わりに/bin/sh、すべての出力をターミナルに表示するカスタム アプリケーションを作成することは可能でしょうか? どのプロセスがターミナルに書き込んだかに関係なく、何らかの方法でターミナルからテキストを取得することは可能ですか?

sshdボックス上で起動して、そのように実行することは可能でしょうかnetcat -e "ssh root@localhost"? (試してみましたが、うまくいかないようです)。

何らかの解決策を探しています。

答え1

「カスタム アプリケーション」を作成するには、telnet / ssh を再実装する必要があります。もちろん、これは可能ですが、必須ではありません。

ホストに sshd (または telnetd) がある場合は、たとえば次のようにして netcat-shell セッションから起動し/usr/sbin/sshd -p <port> -D 2>&1ssh -p <port> root@<host>クライアントで実行できます。sshd にさらにオプションを追加する必要がある場合があります。構成ファイルを作成して、コマンド ラインで指定します。/usr/sbin/sshd -f <config-file> ...

そうでない場合は、netcat セッションを使用して telnetd または sshd をアップロードし、必要な環境/構成をセットアップして、任意のポート上で実行できます。

のように、シェルのラッパーを作成して stderr を stdout にリダイレクトすることもできます。/bin/sh 2>&1これにより、netcat セッションで stderr を表示できるようになりますが、「実際の端末」機能は提供されません。

もう 1 つのオプションは、DISPLAY=<client>:0 xtremホストに xterm または同等のソフトウェアがあり、クライアントに X サーバーがある場合です。

関連情報