我可以访问预配置的Windows XP 32位工作站。 它在防火墙下,并且在外面它使用http代理服务器。 要获取代理设置,我需要主机,端口,用户名和密码。
http:// username:password @ server:port
我能找到代理网址和端口(来自PAC - 自动配置文件), 但我不知道如何获得用户名/密码。有没有办法以某种方式阅读它?至少用户名?我可能会获得管理员权限。
你知道任何有用的工具吗?
我只发现了一些关于获取代理配置连接的方法的MS文档,但我不知道如何确定提供的凭据是什么:
WinHttpGetIEProxyConfigForCurrentUser function
WINHTTP_CURRENT_USER_IE_PROXY_CONFIG structure
WinHttpGetProxyForUrl function
我也找到了这个lib,但它更适合解析PAC: http://code.google.com/p/pacparser/
答案 0 :(得分:3)
在Windows中,您无法获取密码。 要获得连接抛出代理,您必须使用SSPI,检查libcurl,您可以获得连接的套接字抛出代理,使用enable-sspi和openssl构建它。
答案 1 :(得分:0)
根据费尔南多·桑切斯(Fernando Sanchez)的回答和罗伯特(Robert)的评论,您需要通过SSPI进行身份验证。就我而言,我已使用this link
使用NTLM连接使用curl使用ntlm:
curl.exe --proxy <proxy_name>:<proxy_port> --proxy-ntlm -U : https://www.google.com
也可以部分回答curl man page中-U :
的意思:
如果您使用支持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