ピボットまたはポート転送

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のこの機能について多くの人が単に知らないことを示しています。 したがって、仮想的な状況を想像してください。


このタスクは、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を検討する際に非常に役立ちますし、役に立つと思います。

Source: https://habr.com/ru/post/J302168/


All Articles