我可以访问预配置的Windows XP 32位工作站。它位于防火墙下,要使用HTTP代理服务器来摆脱它。要获取代理设置,我需要主机,端口,用户名和密码。
http://用户名:密码@服务器:端口
我能够找到代理的网址和端口(从PAC-自动配置文件中,但我不知道如何获取用户名/密码。有没有办法以某种方式阅读它?至少用户名?我可能会获得管理员权限。
您知道有什么可以帮助您的工具吗?
我只找到了这些MS docs上有关获得代理配置连接的某些方法的信息,但我不知道如何确定所提供的凭据是什么:
WinHttpGetIEProxyConfigForCurrentUser function
WINHTTP_CURRENT_USER_IE_PROXY_CONFIG structure
WinHttpGetProxyForUrl function
我也找到了这个库,但是它是用于解析PAC的:http://code.google.com/p/pacparser/
在Windows中,您无法获取密码。要获得连接抛出代理,您必须使用SSPI,请检查libcurl,可以获取连接的套接字抛出代理,并使用enable-sspi和openssl进行构建。
迭代Fernando Sanchez的回答和Robert的评论,您需要通过SSPI进行身份验证。就我而言,我已使用this link
使用NTLM连接使用ntlm使用curl:
curl.exe --proxy <proxy_name>:<proxy_port> --proxy-ntlm -U : https://www.google.com
也可以部分回答-U :
从curl man page的意思:
如果您使用支持Windows SSPI的curl二进制文件,请进行任何协商或NTLM身份验证,则可以告诉curl选择用户名和环境中的密码,方法是指定一个冒号此选项:“ -U:”。
您可以从Windows注册表(regedit)获取代理名称和端口。引用罗伯特的评论:
[[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet设置]
可以使用REG_SZ ProxyServer
手动显示,也可以使用REG_SZ AutoConfigURL = https://<configuration_url>
使用自动配置脚本显示>
如果上面的curl命令以Failure when receiving data from the peer
失败,则可能是curl版本没有NTLM,SSPI或OpenSSL。尝试使用最新的curl release