「
SSHトンネル-ポートを転送する 」という記事に出くわして、それを補足したいと考えました。
したがって、他にどのようなトンネリング方法がありますか:
1. SSHを介した動的アクセス
ネットワークへのSSHアクセスがあり、このネットワーク上の他のホスト/ポートにアクセスしたいとします。 上記の記事で既に説明した方法には、ホスト、つまりアクセスするポートを知ることが含まれます。 しかし、これを知らない場合はどうでしょうか?
ここでは、SSHを介した動的アクセスが役立つ場合があります。 設定するには、ssh -Dオプションを使用します。
ssh -D 127:0.0.1:2222 user@remotehost
接続後、ポート2222でマシンをリッスンし、リモートネットワークへのアクセスを提供する動的なsocks4プロキシサーバーを受信します。
このアクセスの使用方法 1つのオプションは、プロキシチェーンを使用することです。
2番目のオプションは、このプロキシサーバー127.0.0.1:2222のアドレスをブラウザに直接登録することです。 その結果、リモートサブネット上の任意のWebサーバーにアクセスできます。
ProxyChainsには、その名前にチェーン(「チェーン」または「チェーン」と翻訳される)が含まれていることを理解しておくことが非常に重要です。 これは、プロキシのチェーンを構築して、多くのサブネットを介してトンネルを構築できることを意味します。 これを行う方法-自分で勉強することを提案します。
2. NetCatトンネル(nc)
実践では、NetCatのこの機能について多くの人が単に知らないことを示しています。 したがって、仮想的な状況を想像してください。
- 1台のコンピューターにあるリモートにアクセスできます(たとえば、Webシェルを使用)。 このコンピューターを「中間コンピューター」と呼びます。
- このコンピューターでnetcatにアクセスできます。
- Netcatを使用してこのコンピューターからコンピューターに接続できます(ただし、その逆はできません-つまり、いわゆる逆シェルがあります)。
- たとえば、ポート22でsshプロトコルを使用して、リモートネットワーク上のサーバーに接続したいという強い要望がありますが、中間コンピューターにはsshクライアントがなく、インストールできません。
このタスクは、netcatトンネルを使用して簡単に実行できます。 これを行うには、マシンで次のコマンドを実行します。
mknod backpipe -p nc -lvp 1234 0<backpipe | nc -lvp 8443 1>backpipe
この場合、現在のディレクトリへの書き込み権限があり、バックパイプファイルを作成し、他のサービスがポート1234および8443でリッスンしていないことを確認する必要があります。
中間マシンでは次のことを行います。
mknod backpipe -p nc __ 8443 0<backpipe | nc __ 22 1>backpipe
この場合、バックパイプファイルを作成するには、現在のディレクトリへの書き込み権限が必要です。 次に、マシンでssh -p 1234 user@127.0.0.1を実行し、リモートコンピューターに直接sshアクセスします。
わずかに代替のコマンドとして、次を使用できます。
mkfifo backpipe ( mknod -p) nc -lvp 1234 0<backpipe | nc -lvp 8443 | tee backpipe
netcatクライアントとnetcatサーバーは任意の組み合わせで組み合わせることができ、任意の長さのチェーンを構築できることを理解することが重要です。 たとえば、「中間コンピューター」に直接アクセスする場合のオプション。
すべてのマシンでバックパイプを作成することを忘れないでください!車で:
nc -lp 1234 0<backpipe | nc __ 443 1>backpipe
中間コンピューター1:
nc -lp 443 0<backpipe | nc ___ 443 1>backpipe
...
中間コンピューターn:
nc -lp 443 0<backpipe | nc _n+1__ 443 1>backpipe
中間コンピューターn + 1の場合:
nc -lp 443 0<backpipe | nc _ _ 1>backpipe
便利なポートとパイプ名を使用することもできます。
同様に、マシン間でファイルを転送できます。
たとえば。 車で:
nc -lp 443 >file.txt
ファイルがあるマシン上:
nc -lp 443 <file.txt
中間マシンの場合:
nc __ 443 | nc ___ 443
この場合、バックパイプを作成する必要はありません。なぜなら、 セッションはサポートしていませんが、1つのセッションで1つのファイルを転送するだけです。
おそらくそれだけです。 さまざまなCTFを検討する際に非常に役立ちますし、役に立つと思います。