Cntlm是一个NTLM / NTLM会话响应/ NTLMv2验证HTTP代理,旨在帮助您摆脱Microsoft专有世界的链条。
我的代理网址格式如下:
http://user:passwords@my_proxy_server.com:80
我必须向cntlm
提供此信息。其配置文件cntlm.ini
具有以下结构和参数:
Username
Domain
Password
Proxy
我不确定,如何分解我的原始代理属性来填充这四个选项?
答案 0 :(得分:99)
更新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
答案 1 :(得分:51)
解决方案需要两个步骤!
首先,填写cntlm.ini
中的用户,域和代理字段。用户名和域名可能应该是您在办公室登录Windows时使用的任何内容,例如
Username employee1730
Domain corporate
Proxy proxy.infosys.corp:8080
然后使用诸如
之类的命令测试cntlmcntlm.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
环境变量(假设您没有将Listen
字段更改为默认设置为3128
)到以下
http://localhost:3128
答案 2 :(得分:15)
http://forum.kde.org/viewtopic.php?f=83&t=119352
你去我自己的线程。我清楚地表明了那里。
我无法更改任何内容,我无法访问我的帐户,idk为什么,但是当您在cntlm.conf文件中设置所有内容时(不需要设置密码) - 保存文件并转到torminal。 type命令:
cntlm -H
并输入您的代理密码。然后它将打印出3行哈希 - 复制所有这些哈希并粘贴到cntlm.conf文件而不是“密码”行。
因此,您将拥有ecnrypted密码,用户将无法使用ettercap找到它;)
答案 3 :(得分:10)
如果没有任何配置,您只需发出以下命令(使用您自己的信息修改myusername
和mydomain
):
cntlm -u myusername -d mydomain -H
或
cntlm -u myusername@mydomain -H
它会询问您myusername
的密码,并会给您以下输出:
PassLM 1AD35398BE6565DDB5C4EF70C0593492
PassNT 77B9081511704EE852F94227CF48A793
PassNTLMv2 A8FC9092D566461E6BEA971931EF1AEC # Only for user 'myusername', domain 'mydomain'
然后使用以下内容在Linux上使用默认路径创建文件cntlm.ini
(或cntlm.conf
)(将myusername
,mydomain
和A8FC9092D566461E6BEA971931EF1AEC
替换为您的信息和上一个命令的结果):
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协议。
答案 4 :(得分:2)
这是有关如何使用cntlm的指南
cntlm是用于验证HTTP代理的NTLM / NTLMv2
它将使用您代理的地址并打开一个监听套接字,将每个请求转发到父代理
使用cntlm,我们可以从命令行运行choro, pip3, apt-get
之类的工具
pip3 install requests
choco install git
cntlm的主要优点是密码保护。
使用cntlm可以使用密码哈希。
因此%HTTP_PROXY%
和%HTTPS_PROXY%
环境变量中的没有纯文本密码
您可以从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
配置文件的末尾添加换行符很重要
HTTPS_PROXY=http://localhost:3128
HTTP_PROXY=http://localhost:3128
使用进程浏览器停止所有名为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
您应该已安装请求python软件包
恭喜,您已经安装并配置了cntlm
答案 5 :(得分:1)
要添加,如果您正在执行“pip”操作,则可能需要添加“--proxy = localhost:port_number”
例如pip install --proxy=localhost:3128 matplotlib
访问此link以查看完整详情。
答案 6 :(得分:0)
生成文件并更改密码后,您可以按以下方式运行,
cntlm -H
用户名将是相同的。它会要求输入密码,给它,然后复制PassNTLMv2,编辑cntlm.ini,然后运行以下内容
cntlm -v
答案 7 :(得分:-3)
对我而言,仅使用cntlm -H
并未生成正确的哈希值,但它使用下面提供用户名的命令。
如果您需要为cntlm生成新的密码哈希,因为您已经更改了它或者您被迫更新它,您只需键入以下命令并使用输出更新您的cntlm.conf配置文件:
$ cntlm -u test -H
Password:
PassLM D2AABAF8828482D5552C4BCA4AEBFB11
PassNT 83AC305A1582F064C469755F04AE5C0A
PassNTLMv2 4B80D9370D353EE006D714E39715A5CB # Only for user 'test', domain ''