ncatループを作成できますか?

ncatループを作成できますか?

2台のコンピュータがあり、telnet、ssh、または他のネットワークツールを使用せずにncatのみを使用して他のコンピュータを制御し、シェルが2台しかない場合はどうすればよいですか?

私は3つのシェルを使ってこれを成功させました。

  1. cat | ncat 192.168.0.11
  2. ncat -l | bash | ncat 192.168.0.16
  3. ncat -l

あるncatの入力が画面に表示され、シェルの入力が別のncatにパイプされるシェルを持つことはできますか?

これまで、次のような問題が発生しました。

  1. ncatがデータ転送を開始する前に他のncatがそれを入力する必要があるため、ncatにデータを転送するように強制する方法が必要です。
  2. そのような操作を行うと、ncat -l | cat | ncat 192.168.0.11データがncat転送(不要)に戻り、画面に表示されず(希望)キーボード入力は無視されます。それも望んでいません)。最初の2つの問題は、受信したデータを何らかの方法でstderrにリダイレクトすることで解決できますが、KB入力をどのようにキャプチャしますか?

動作している限り(fish、bash、zshなど)、どのシェルでこれを実行できるかは重要ではありません。

深刻な状況ではなく、ただ気になりました。

ベストアンサー1

明確に言えば、この答えでは、「ローカル」は実行中のコンピュータ(1)を意味し、「リモート」は実行中のコンピュータ(2)を意味します。

リモートコンピュータで(2)ncat -e /bin/bashまたはncat -c 'exec /bin/bash -i 2>&1';を実行しないと、(3)はローカルで必要ありません。これらのオプションは、何かを実行し、標準入力と標準出力をネットワーク接続に接続するように特別に設計されています。

とにかくcat(1)は必要ないと思います。ローカルコンピュータでは、ソールがncat 192.168.0.11機能するはずです。

このソリューションはリモート側にttyを割り当てません。ローカルに入力すると、リモートシェルに端末と対話しようとするコマンドを実行させることができます。これらのコマンドは失敗せずに端末を検索しますが、これはncat(2)で呼び出された端末になります。一方、標準出力または標準入力が端末になると予想するコマンドは動作を拒否することができます。

Ctrlまた、ローカル+がcリモート側に到達してそこからSIGINTを上げることを期待しないでください。

比較のために(sshまたはsshdリモート側で)ttyを割り当てることができます。リモートコマンドを指定しない場合は、デフォルトでこれとそれ以上を行います。これは、ローカルと同様にリモートシェルで対話的に作業できるようになります。私たちのデバイスは同様のことをしません。

おすすめ記事