如何通过 Socks5/SSH/HTTPS 隧道重定向应用程序的连接?有什么推荐的 SDK 来完成这样的任务吗?
我需要通过 Socks5、SSH 或 HTTPS 对应用程序建立的连接(主要是 TCP)进行隧道传输。
到目前为止,我已经找到了 3 种方法来做到这一点:api hooks、winsock lsp 和驱动程序。
我正在寻找有关处理此问题的最佳方法的建议,以及任何可以为我抽象此任务的 SDK 的建议(首选免费/开源,但只要价格不高,也欢迎商业的) -人创办公司负担得起)。
附注我正在使用 .Net(C# 和/或 C++/CLI)
编辑:我无法控制目标应用程序。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以直接调用 plink 命令行来创建隧道,然后从您的应用程序连接到本地主机。 Plink 是 Putty 的命令行版本,您有大量的选项,它是一个非常流行、安全且经过测试的应用程序。
您有一个应用程序(SSH 隧道客户端) 可以通过漂亮的 UI 为您完成此操作。它有点问题,但工作得很好。
此示例将远程计算机中的端口 80 连接到本地主机的端口 8000。
我不推荐这种方法的是,命令行包含密码,并且很容易使用任何流程管理器查看,现在 plink 的好处是您拥有可用的源代码,因此您可以将其集成到您的项目中。
编辑
现在假设您的应用程序连接到“yahoo.com”以获取一些数据,您无法修改应用程序,但可以设置中间人。您可以执行下一个命令:
其中 myserver.com 是一个 SSH 服务器,允许您建立隧道并可以访问 google.com
现在以管理员身份转到 C:\windows\system32\drivers\etc\ 中的主机文件并添加下一个条目:
您可以使用浏览器测试设置并导航到 yahoo.com,您将看到 google.com 页面。这看起来很简单,但真正的力量在于所有流量都通过 myserver.com 传递。
一些优点是
请注意,由于证书身份验证,此方法很可能在 HTTPS 连接上出现问题。
As a straight way you can invoke plink command line to create the tunnel and then connect to the localhost from your application. Plink is the commandline version of Putty, you have tons of options and it is a very popular, safe and tested application.
You have an application (SSH Tunnel Client) that does it for you with a nice UI. It is a bit buggy but it works just fine.
This example connects the port 80 in the remote machine to the port 8000 of your local host.
What I don't recommend of this method is that the commandline contains the password and it is easy to see with any process manager, now the good thing of plink is that you have the source code available so you can integrate it in your project.
Edit
Now imagine that your application connects to "yahoo.com" to get some data, you can't modify the application but you can setup a Man in the Middle. You can execute the next command:
Where myserver.com is a SSH sever that allows you to do tunnels and has access to google.com
Now go to your hosts file in C:\windows\system32\drivers\etc\ as administrator and add the next entry:
You can test the setup with your browser and navigate to yahoo.com an you will see the google.com page. It seems simple but the real power is that all the traffic is passing through myserver.com.
Some advantages are
Be aware that this method is very likely to have problems with HTTPS connections because of the certificates authentication.