クライアント側で netcat を使用してシェルを生成するにはどうすればよいでしょうか?

クライアント側で netcat を使用してシェルを生成するにはどうすればよいでしょうか?

次を使用してサーバー側でシェルを生成できることはわかっています:

nc -l 1111 -e /bin/bash

しかし、クライアント側でシェルを生成したいのです。

私は次のことを試しました:nc 127.0.0.1 1111 | /bin/bash

動作しますが、実行されたコマンドの出力は表示されません。

そこで質問なのですが、netcat を使用してクライアント側でシェルを生成する方法はあるのでしょうか?

答え1

私の環境では動作するようですが、netcat のバージョンによって異なります。Debian では 2 つがパッケージ化されています: "netcat-伝統的" そして "netcat-openbsd前者は-eクライアント モードとサーバー モードの両方をサポートしますが、後者はまったくサポートしません。

$ nc.traditional localhost 1234 -e /bin/bash

$ nc.openbsd localhost 1234 -e /bin/bash
nc.openbsd: invalid option -- 'e'

私の OSX でもサポートされていません。

をサポートしていない netcat でこれを実行する必要がある場合は-e、次のようなものが必要になる場合があります。2 つのプログラム間で双方向パイプを作成するにはどうすればよいですか?

関連情報