为啥 CNTLM 要求输入密码?

Posted

技术标签:

【中文标题】为啥 CNTLM 要求输入密码?【英文标题】:Why is CNTLM asking for password?为什么 CNTLM 要求输入密码? 【发布时间】:2013-10-24 10:51:35 【问题描述】:

我已经在 Windows 上配置了 CNTLM 代理授权,配置文件看起来像,

Auth            NTLM
PassNT          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
PassLM          YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
PassNTLMv2      ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

Proxy           proxy.xxxx.com:8080

Listen          3130

我在 LAN 设置中使用localhost:3130 作为代理,点击浏览器上的任何 URL,它再次要求输入密码!。如果我输入与生成哈希相同的密码,它就可以工作。只是 Cntlm 的目的被打败了。有人遇到过这个吗?这是如何运作的?有什么办法可以解决这个问题吗?

【问题讨论】:

【参考方案1】:

编辑> 如果您使用的是 Windows,那么我强烈推荐 px 而不是 Cntlm,因为它不需要任何握手机制。

关于像素的注释:

它主要设计用于在 Windows 系统上运行并进行身份验证 代表应用程序使用当前登录的 Windows 用户帐号

/编辑>

1) 将 CNTLM 安装到默认目录(在 Windows 上,C:\Program Files (x86)\cntlm\)。

2) 运行cmd.exe

3) 输入:cd "C:\Program Files (x86)\cntlm\"

4) 类型:cntlm.exe -H -d your_domain -u your_username

它会询问您的密码。输入你的密码,cntlm 会给你一些哈希值。 像这样的:

c:\Program Files (x86)\Cntlm>cntlm -H -d your_domain -u your_username
Password:
PassLM          4E9C185900C7CF0B6FFCB2044F81920C
PassNT          6E9F120B83EEA0E875CE8E6F9730EC9A
PassNTLMv2      2A0B7C2457FB7DD8DA4EB737C4FA224F  

现在您已经对密码进行了哈希处理。将它们保存到文本编辑器中。

5) 类型:cntlm -M http://www.google.com

再次输入您的密码。 它会给你这样的东西:

c:\Program Files (x86)\Cntlm>cntlm -M http://www.google.com
Password:
Config profile  1/4... Credentials rejected
Config profile  2/4... OK (HTTP code: 302)
----------------------------[ Profile  1 ]------
Auth            NTLM
PassNT          6E9F120B83EEA0E875CE8E6F9730EC9A
PassLM          4E9C185900C7CF0B6FFCB2044F81920C
------------------------------------------------

现在您看到配置文件 2 是成功的。因为它对配置文件 2 表示 OK。它可能在您的系统上有所不同。

诀窍是,

如果 Auth 是 NT,那么您只能使用 PassNT 如果 Auth 是 LM,那么您只能使用 PassLM 如果 Auth 是 NTLM,那么您必须同时使用 PassNT 和 PassLM 如果 Auth 是 NTLMv2,那么您只能使用 PassNTLMv2

现在我们得到了我们想要的一切。 对于我的配置,Auth 说 NTLM,所以我将在 cntlm.ini 配置文件中同时使用 PassNT 和 PassLM。

这是一个示例配置文件 NTLM(不是 NTLMv2!):

#
# Cntlm Authentication Proxy Configuration File
#

Username yourusername
Domain yourdomain

Auth NTLM
PassNT 6E9F120B83EEA0E875CE8E6F9730EC9A
PassLM 4E9C185900C7CF0B6FFCB2044F81920C

Workstation yourhostname.yourdomain

# Most probably proxy.yourdomain:8080
Proxy  yourProxyIP:yourProxyPort

NoProxy  localhost, 127.0.0.*, 10.*, 192.168.*

Listen  3132

Gateway yes
# end of config

6) 要测试您的配置,请输入:cntlm -c cntlm.ini -I -M http://www.google.com

7) 要启动 cntlm,请输入:net start cntlm

现在您可以使用计算机的 IP 地址和端口 3132 作为代理。


您可以在此处获取最新的 Cntlm 二进制文件:http://cntlm.sourceforge.net/

【讨论】:

提供cntlm的链接也无妨 @Adelin,链接到 cntlm 做什么?下载?顺便说一句,有一个新的替代品可以代替cntlm,github.com/genotrance/px 是的,有下载链接 @Adelin,你可以问谷歌,但这里是:sourceforge.net/projects/cntlm/files/cntlm 我知道 - 我是通过 google 找到的,但我的意思是直接在您的帖子中,为方便起见

以上是关于为啥 CNTLM 要求输入密码?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 ssh 不要求时 git 要求输入密钥密码?

为啥浏览器不要求记住密码? [复制]

为啥检查错误的密码比检查正确的密码要花更长的时间?

映射网络硬盘的时候,明明没有设置密码为啥提示密码错误?

为啥质询-响应方法是忘记密码的糟糕解决方案?

为啥火狐老提示请为 软件安全设备 输入密码