「リバースシェル」 - 人間が制御する入力を使用してリモートホストからシェルコマンドを抽出しますか?

「リバースシェル」 - 人間が制御する入力を使用してリモートホストからシェルコマンドを抽出しますか?

リモートコンピュータ(好ましくはSSH経由)に接続し、そこからコマンドを抽出したいと思います。

正確には、リモートコンピュータをローカルコンピュータに接続して対話型コンソールを使用し、コマンドを送信して出力を確認したいと思います。
機能的には、Windows Remote Assistantまたは他の名前と呼ばれるものと似ています。

私はGUIを使用してHTTPサーバーを実装し、要求に応じて永続的な接続を維持し、入力したすべての行をGUIに送信し、相手が送信したすべてを出力として受け取ることを想像できます。 HTTPヘッダーだけを処理するだけです。しかし、これはあまりエレガントではありません。

既製のソリューションがありますか?または、nc一部のツールを使用してTTYをリスニングポートに接続できますか?

ベストアンサー1

実行する場合:

socat "unix-listen:$HOME/.shell-access,mode=600,fork" \
      "exec:$SHELL,pty,stderr,setsid,ctty"

たとえば、次のことができます。

socat -,raw,echo=0 "unix:$HOME/.shell-access"

ローカルでシェルに接続して対話します。

その後、SSHを介してリモートポート転送を実行できます。

ssh -R "/path/to/socket/on/host:$HOME/.shell-access" user@host

(opensshバージョンが比較的新しいバージョンであるとします(クライアントとサーバー))。

その後、次の手順を実行してシェルと対話userできます。host

socat -,raw,echo=0 "unix:/path/to/socket/on/host"

$SHELL複数の人が同じ画面セッションを表示できるようscreen -xRS some-screen-sessionにするのではなく、特定のセッションを接続するために実行できます。screen

おすすめ記事