通过Socks4 / 5的代理.NET

时间:2019-04-27 04:00:52

标签: c# .net

因此,我正在编写一些代码,并引入第三方项目来实现一组特定的功能。即,与AD交谈,获取kerberos票,如果将用户名/密码提供给程序,则进行用户模拟等。

我遇到的问题是,其中许多东西都依赖于Windows内核库(netapi.dll,win32.dll仅举几例)。我还需要能够运行这一Linux。所以我尝试了.NET core。好吧,作为核心,我再也找不到这些库的替代品了,当然WINE也不适合它们。所以我有一个选择。袜子代理。

那么,我到底如何通过socks4或socks5代理来代理整个应用程序(控制台应用程序)。 PS,我不是在说HTTP。下面是一个示例(只是一个简单的AD查找):

public void PrintAllUsers()
        {
            Console.WriteLine("[+] Domain Users");
            Console.WriteLine("-----------------");
            GroupPrincipal gp = GetGroup("Domain Users");
            Console.WriteLine("[+] Count (" + gp.Members.Count + ")");
            foreach (Principal pc in gp.Members)
            {
                if (pc.StructuralObjectClass.ToLower() == "user")
                {
                    PrintUserData(pc as UserPrincipal);
                }

                if (pc.StructuralObjectClass.ToLower() == "computer")
                {
                    PrintComputerData(pc as ComputerPrincipal);

                }
            }

            Console.WriteLine("-----------------");
        }

1 个答案:

答案 0 :(得分:0)

不幸的是,.NET Core本身不支持SOCKS代理,无论是4还是5,它仅支持HTTP proxies

但是,有一个开放源代码库,可以 向您的应用程序添加SOCKS5代理支持。试试这个:https://github.com/MihaZupan/HttpToSocks5Proxy

结合以上两种方法,您的应用程序应该能够通过SOCKS5代理访问Internet资源。