因此,我正在编写一些代码,并引入第三方项目来实现一组特定的功能。即,与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("-----------------");
}
答案 0 :(得分:0)
不幸的是,.NET Core本身不不支持SOCKS代理,无论是4还是5,它仅支持HTTP proxies。
但是,有一个开放源代码库,可以 向您的应用程序添加SOCKS5代理支持。试试这个:https://github.com/MihaZupan/HttpToSocks5Proxy
结合以上两种方法,您的应用程序应该能够通过SOCKS5代理访问Internet资源。