ソックス付き逆 SSH トンネル

ソックス付き逆 SSH トンネル

私の状況は次のとおりです:

  • ファイアウォールの背後にある作業用 Mac で、「Victim」という名前が付けられています。(High Sierra 10.13.3)
  • ネット上の Ubuntu VHS。名前は「server」。ポート 2222 で ssh が動作しています。(Ubuntu 16.04)
  • 他の Mac もファイアウォールの背後にあり、「攻撃者」として指定されています。(High Sierra 10.13.3)

ソックスを使用して、「被害者」からのみアクセス可能な内部 Web サイトにアクセスしたいと考えています。

「被害者」から実行し、攻撃者から「サーバー」に ssh して実行すると、攻撃者から被害者へのシェル アクセスが可能になります。ssh -R 5555:localhost:22 [email protected] -P 2222ssh victim@localhost -p 5555

私が達成する必要があるのは、ソックスを使用して「被害者」だけがアクセスできる Web サイトにアクセスすることです。

被害者からサーバーへの逆トンネルを設定し、サーバー上で着信ポートから逆接続ポートへの転送を設定し、攻撃者上でローカルホストからリモート(サーバーに接続する)への転送も設定する必要があることは理解していますが、これをどのように行うのでしょうか?

攻撃者からサーバーに直接 SOCKS を設定する場合、Firefox で proxy socks v5 localhost:8080 を実行して設定するだけですが、サーバーに転送を設定する方法がわかりません...ssh -D 8080 [email protected] -p 2222

誰か説明してくれる人いませんか?ありがとう

答え1

どうやら誰もこの質問に答えられないようですが、大丈夫です。私自身が答えを見つけたからです。

答えは次のとおりです:

  • の上被害者:ssh -N -f -R 5555:localhost:22 -p <port_of_serv> <ip_of_serv>
  • の上アタッカー#1:ssh (-N -f) -L 4444:localhost:5555 -p <port_of_serv> <ip_of_serv>
  • の上アタッカー#2:ssh -p 4444 -D localhost:3333 user_on_victim@localhost
  • の上アタッカー#3: Firefox または irc、または一般的なネットワーク設定の場合: Socks (v5) プロキシ設定: 127.0.0.1 ポート 3333

ホストlocalhostのポート3333に設定したすべてのアプリケーションは、被害者にserv経由でトンネルされ、次のようなものにアクセスすると、翻訳元被害者のIP/ホストが表示されます。ここからは、GUIアプリケーションを使用することもできます。アタッカー(特定のアプリまたはシステム全体にSOCKS設定を設定した場合)これは、サービス被害者そしてあなたは被害者そのような。

私が思考プロセスで犯した間違いは、リバース ポート スキームがどのようになっているのかを実際に理解していなかったことです。これを簡単な言葉で説明してみたいと思います。

被害者の行動

ssh -N -f -R 5555:localhost:22 -p <port_of_serv> <ip_of_serv>
  • -N= シェルでコマンドを実行するつもりはありません
  • -f= プロセスをバックグラウンドに置く(ターミナルウィンドウを閉じることができる)
  • -R= 逆トンネル
  • 5555:localhost:22= 5555は、サーバが内部的にポート22にデータを転送するためにリッスンしているポートです。被害者被害者がポート 2222 で ssh を実行するように設定している場合は、22 を 2222 に変更する必要があります。
  • -p= SSHが接続しているポートサービスが走っています。

1回目の攻撃アクション

ssh (-N -f) -L 4444:localhost:5555 -p <port_of_serv> <ip_of_serv>`

最初に行うコマンドアタッカー-L 4444:localhost:5555)はトンネルを設定し、3番目のコマンドとの接続が直接トンネルされるようになります。被害者(これはダイナミックポート転送/Socksアプリケーション専用です)

シェルアクセスだけが必要な場合被害者このコマンドの代わりに、サーバーに ssh で接続し、コマンド「ssh user_on_victim@localhost -p 5555」を実行します。

しかし、シェル アクセスは必要なく、すべてのデータを動的にトンネリングしたいので、ポート転送を行う必要があります。

あるいは概略的な説明

  • -L= ローカルポート転送(オン)サービス
  • - 4444:localhost:5555ポート 4444 から入ってくるすべてのデータをポート 5555 に送信します。

2回目の攻撃アクション

2番目のコマンドはアタッカー

ssh -p 4444 -D ローカルホスト:3333 被害者のユーザー@ローカルホスト

は、2つのトンネルを介した接続を初期化する実際のコマンドです。ポート4444に接続し、(ローカルホストのポート3333)から入ってくるすべてのデータを4444に送ります。(ローカルホストのポート3333から送られます)サービスポート5555へ -> ポート22へプッシュされます被害者

あるいは概略的な説明

  • -D= 動的転送
  • localhost:3333= ポート 3333 でリッスンし、ポート 4444 への SSH 接続を介してデータをプッシュします。
  • -p 4444= ポートサービスデータをポート5555に転送し、ポート22に出力するために待機しています被害者

3回目の攻撃

アプリケーションまたはシステム全体を、アドレス: localhost ポート: 3333 の SOCKS (v5) プロキシ サーバーを使用するように設定します。これらのアプリケーションが通常どのポートで実行されるかは、プロキシ サーバーによって処理されるため、問題ではありません。理論上は、すべてのアプリケーションは SOCKS プロキシの動的ポート転送を介して実行できます。設定するだけで済みます。:)

3回目のアクションアタッカートンネルする実際のデータです被害者これがどのようなデータまたはアプリケーションであるかは問題ではありません。これが動的転送である理由です。これらのアプリケーションがどのポートで実行されるかは問題ではありません。それは SOCKS によって処理されるからです。

私の説明が誰かの役に立つことを願っています。

良い1日を....

関連情報