ChatGPT解决这个技术问题 Extra ChatGPT

如何在cntlm配置文件中填写代理信息?

Cntlm 是一个 NTLM / NTLM 会话响应 / NTLMv2 身份验证 HTTP 代理,旨在帮助您摆脱微软专有世界的束缚。

我的代理 URL 采用以下格式:

http://user:passwords@my_proxy_server.com:80

我必须将此信息提供给 cntlm。其配置文件 cntlm.ini 具有以下结构和参数:

Username 
Domain
Password    
Proxy   

我不确定,如何分解我原来的代理属性来填充这四个选项?


a
alexandrul

cntlm.ini 中更新您的用户、域和代理信息,然后使用以下命令测试您的代理(在您的 Cntlm 安装文件夹中运行):

cntlm -c cntlm.ini -I -M http://google.ro

它会询问您的密码,并希望打印您所需的身份验证信息,这些信息必须保存在您的 cntlm.ini

示例 cntlm.ini

Username            user
Domain              domain

# provide actual value if autodetection fails
# Workstation         pc-name

Proxy               my_proxy_server.com:80
NoProxy             127.0.0.*, 192.168.*

Listen              127.0.0.1:54321
Listen              192.168.1.42:8080
Gateway             no

SOCKS5Proxy         5000
# provide socks auth info if you want it
# SOCKS5User          socks-user:socks-password

# printed authentication info from the previous step
Auth            NTLMv2
PassNTLMv2      98D6986BCFA9886E41698C1686B58A09

注意: 在 linux 上配置文件是 cntlm.conf


我可以从 http://user:passwords@my_proxy_server.com:80 中找出域还是应该询问 system-admin ?
尝试注释 Domain domain 行并运行测试,它可能会起作用。
您也可以尝试添加 Password my-password 行。可悲的是,我无法在此处复制您的设置。
注意在 linux (Mint) 上的配置文件是 cntlm.conf 并且这个命令有效(没有 .exe 部分)
有趣的。为了后代,我刚刚在 Ubuntu 14.04 上的 /etc/cntlm.conf 找到了它。
n
nulltoken

解决方案分两步!

首先,填写 cntlm.ini 中的用户、域和代理字段。用户名和域可能应该是您在办公室登录 Windows 时使用的任何内容,例如。

Username            employee1730
Domain              corporate
Proxy               proxy.infosys.corp:8080

然后使用命令测试cntlm,例如

cntlm.exe -c cntlm.ini -I -M http://www.bbc.co.uk

它会询问您的密码(同样是您用于登录 Windows_ 的密码)。希望它会在某处打印“http 200 ok”,并打印一些神秘的令牌身份验证信息。现在将 这些 添加到 cntlm.ini,例如:

Auth            NTLM
PassNT          A2A7104B1CE00000000000000007E1E1
PassLM          C66000000000000000000000008060C8

最后,将 Windows 中的 http_proxy 环境变量(假设您没有更改默认设置为 3128Listen 字段)设置为以下

http://localhost:3128

A
Anthony O.

无需任何配置,您只需发出以下命令(使用您自己的信息修改 myusernamemydomain):

cntlm -u myusername -d mydomain -H

或者

cntlm -u myusername@mydomain -H

它将询问您 myusername 的密码,并为您提供以下输出:

PassLM          1AD35398BE6565DDB5C4EF70C0593492
PassNT          77B9081511704EE852F94227CF48A793
PassNTLMv2      A8FC9092D566461E6BEA971931EF1AEC    # Only for user 'myusername', domain 'mydomain'

然后使用以下内容创建文件 cntlm.ini(或在 Linux 上使用默认路径的 cntlm.conf)(将您的 myusernamemydomainA8FC9092D566461E6BEA971931EF1AEC 替换为您的信息和上一个命令的结果):

Username    myusername
Domain      mydomain

Proxy       my_proxy_server.com:80
NoProxy     127.0.0.*, 192.168.*

Listen      127.0.0.1:5865
Gateway     yes

SOCKS5Proxy 5866

Auth        NTLMv2
PassNTLMv2  A8FC9092D566461E6BEA971931EF1AEC

然后,您将在本地端口 5865 上拥有一个本地开放代理,并且在本地端口 5866 上拥有另一个理解 SOCKS5 协议的代理。


С
Саша Зезюлинский

这是有关如何使用cntlm的指南

什么是cntlm?

cntlm 是一个 NTLM/NTLMv2 身份验证 HTTP 代理

它获取您代理的地址并打开一个侦听套接字,将每个请求转发到父代理

为什么是cntlm?

使用 cntlm,我们可以从命令行运行像 choro, pip3, apt-get 这样的工具

pip3 install requests
choco install git

cntlm 的主要优点是密码保护。

使用cntlm,您可以使用密码哈希。

所以在 %HTTP_PROXY%%HTTPS_PROXY% 环境变量中 NO PLAINTEXT PASSWORD

安装cntlm

您可以从 sourceforge 获取最新的 cntlm 版本

笔记!用户名和域

我的用户名是 zezulinsky

我的域是 local

当我运行命令时,我使用 zezulinsky@local

运行命令时放置您的用户名

生成密码哈希

运行命令

cntlm -u zezulinsky@local -H

输入您的密码:

Password:

结果,您将获得散列密码:

PassLM          AB7D42F42QQQQ407552C4BCA4AEBFB11
PassNT          PE78D847E35FA7FA59710D1231AAAF99
PassNTLMv2      46738B2E607F9093296AA4C319C3A259

验证您生成的哈希是否有效

运行命令

cntlm -u zezulinsky@local -M http://google.com

输入您的密码

Password:

结果输出

Config profile  1/4... OK (HTTP code: 301)
----------------------------[ Profile  0 ]------
Auth            NTLMv2
PassNTLMv2      46738B2E607F9093296AA4C319C3A259
------------------------------------------------

笔记!检查 PassNTLMv2 哈希是否相同两个命令的结果哈希相同

PassNTLMv2      46738B2E607F9093296AA4C319C3A259

更改配置文件

将生成的哈希放入 cntlm.ini 配置文件

C:\Program Files (x86)\Cntlm\cntlm.ini

以下是您的 cntlm.ini 的外观

Username    zezulinsky
Domain      local
PassLM      AB7D42F42QQQQ407552C4BCA4AEBFB11
PassNT      PE78D847E35FA7FA59710D1231AAAF99
PassNTLMv2  46738B2E607F9093296AA4C319C3A259

Proxy       PROXYSERVER:8080
NoProxy     localhost, 127.0.0.*
Listen      3128

笔记! cntlm.ini 末尾的换行符

cntlm.ini 配置文件末尾添加换行符很重要

设置环境变量

HTTPS_PROXY=http://localhost:3128
HTTP_PROXY=http://localhost:3128

检查您的 cntlm 是否有效

使用进程资源管理器停止所有名为 cntlm.exe 的进程

运行命令

cntlm -u zezulinsky@local -H

输出看起来像

cygwin warning:
  MS-DOS style path detected: C:\Program Files (x86)\Cntlm\cntlm.ini
  Preferred POSIX equivalent is: /Cntlm/cntlm.ini
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
section: local, Username = 'zezulinsky'
section: local, Domain = 'local'
section: local, PassLM = 'AB7D42F42QQQQ407552C4BCA4AEBFB11'
section: local, PassNT = 'PE78D847E35FA7FA59710D1231AAAF99'
section: local, PassNTLMv2 = '46738B2E607F9093296AA4C319C3A259'
section: local, Proxy = 'PROXYSERVER:8080'
section: local, NoProxy = 'localhost, 10.*, 127.0.0.*
section: local, Listen = '3128'
Default config file opened successfully
cntlm: Proxy listening on 127.0.0.1:3128
Adding no-proxy for: 'localhost'
Adding no-proxy for: '10.*'
Adding no-proxy for: '127.0.0.*'
cntlm: Workstation name used: MYWORKSTATION
cntlm: Using following NTLM hashes: NTLMv2(1) NT(0) LM(0)
cntlm: PID 1234: Cntlm ready, staying in the foreground

打开一个新的 cmd 并运行一个命令:

pip3 install requests

你应该安装 requests python 包

重启你的机器

恭喜,现在你已经安装并配置了cntlm


A
Arindam Roychowdhury

只需添加,如果您正在执行“pip”操作,您可能需要添加额外的“--proxy=localhost:port_number”

例如pip install --proxy=localhost:3128 matplotlib

访问此 link 以查看完整的详细信息。


J
Jobin Mathew

生成文件并更改密码后,您可以按如下方式运行,

cntlm -H

用户名将相同。它会要求输入密码,给它,然后复制 PassNTLMv2,编辑 cntlm.ini,然后运行以下命令

cntlm -v

t
technoline

谢谢萨沙·泽祖林斯基。

在 Windows 中:我使用了 SET HTTPS_PROXY=http://localhost:3128

当它设置为 SET HTTPS_PROXY=http://127.0.0.1:3128 时,它从来没有工作过。

下面的帖子也很有帮助。 How to use pip on windows behind an authenticating proxy


F
Fruchtzwerg

对我来说,仅使用 cntlm -H 并没有生成正确的哈希,但它使用下面提供用户名的命令来生成。

如果您需要为 cntlm 生成新的密码哈希,因为您已更改或被迫更新它,您只需键入以下命令并使用输出更新您的 cntlm.conf 配置文件:

$ cntlm -u test -H
Password: 
PassLM          D2AABAF8828482D5552C4BCA4AEBFB11
PassNT          83AC305A1582F064C469755F04AE5C0A
PassNTLMv2      4B80D9370D353EE006D714E39715A5CB    # Only for user 'test', domain ''

这篇文章完全缺少信息,必须设置域和用户名才能使 NTLMv2 哈希正常工作,以及如何以及在何处存储此信息。