1

Socks5、SSH、またはHTTPSを介してアプリケーションによって確立された接続(主にTCP)をトンネリングする必要があります。

これまでのところ、これを行う3つの方法を見つけました。APIフック、winsock lsp、およびドライバーです。

これを処理するための最良の方法に関するアドバイスと、このタスクを抽象化できるSDKに関する推奨事項を探しています(無料/オープンソースを推奨しますが、価格が高くない限り、商用のものを歓迎します)。 -man-starting-companyに余裕があります)。

ps。.Net(C#および-またはC ++ / CLI)を使用しています

編集:私はターゲットアプリケーションをまったく制御できません。

4

1 に答える 1

1

簡単な方法として、plinkコマンドラインを呼び出してトンネルを作成し、アプリケーションからローカルホストに接続できます。PlinkはPuttyのコマンドラインバージョンであり、豊富なオプションがあり、非常に人気があり、安全で、テスト済みのアプリケーションです。

優れたUIを使用してそれを実行するアプリケーション(SSHトンネルクライアント)があります。少しバグがありますが、問題なく動作します。

この例では、リモートマシンのポート80をローカルホストのポート8000​​に接続します。

plink.exe -L 127.0.0.1:8000:127.0.0.1:80 -C -pw 1234 -2  -l user myserver.com

この方法で私がお勧めしないのは、コマンドラインにパスワードが含まれていて、どのプロセスマネージャーでも簡単に確認できることです。plinkの良いところは、プロジェクトに統合できるようにソースコードを利用できることです。

編集

ここで、アプリケーションが「yahoo.com」に接続してデータを取得するとします。アプリケーションを変更することはできませんが、中間者攻撃を設定することはできます。次のコマンドを実行できます。

plink.exe -L 127.0.0.1:80:google.com:80 -C -pw 1234 -2  -l user myserver.com

myserver.comは、トンネルを実行してgoogle.comにアクセスできるSSHサーバーです。次に、管理者としてC:\ windows \ system32 \ drivers \ etc \にあるhostsファイルに移動し、次のエントリを追加します

127.0.0.1 yahoo.com

ブラウザで設定をテストし、yahoo.comに移動すると、google.comページが表示されます。単純に見えますが、本当の力はすべてのトラフィックがmyserver.comを通過していることです。

いくつかの利点は

  1. yahoo.comへのすべてのトラフィックは暗号化されています
  2. この方法でプロキシ制限を回避できます
  3. myserver.comに外部から接続できる場合は、myserver.comが配置されているイントラネットにアクセスできます。
  4. 接続のデータをログに記録または変更できます

この方法では、証明書認証のためにHTTPS接続で問題が発生する可能性が非常に高いことに注意してください。

于 2010-05-07T06:10:05.887 に答える