Як заповнити інформацію про проксі в конфігураційному файлі cntlm?


80

Cntlm - це сеансова відповідь NTLM / NTLM / NTLMv2, що автентифікує HTTP-проксі, призначений для того, щоб допомогти вам звільнитися від ланцюгів власного світу Microsoft.

У мене є URL-адреса проксі-сервера у такому форматі:

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

І я повинен надати цю інформацію cntlm. Його конфігураційний файл cntlm.iniмає таку структуру та параметри:

Username 
Domain
Password    
Proxy   

Я не впевнений, як розбити моє початкове властивість проксі, щоб заповнити ці чотири варіанти?

Відповіді:


111

Оновіть інформацію про користувача, домен та проксі 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або мені слід запитати системного адміністратора?
Dilawar

Спробуйте прокоментувати Domain domainрядок і запустіть тест, це може спрацювати.
alexandrul

Також ви можете спробувати додати Password my-passwordрядок. На жаль, я не можу повторити ваші налаштування тут.
alexandrul

2
Примітка в Linux (Mint) файлом конфігурації є cntlm.conf, і ця команда працює (без частини .exe)
Carl Pritchett,

1
Цікаво. Для нащадків я щойно знайшов його /etc/cntlm.confна Ubuntu 14.04.
weberc2,

54

Рішення займає два кроки!

Спочатку заповніть поля користувача, домену та проксі в 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

Нарешті, встановіть http_proxyзмінну середовища у Windows (припускаючи, що ви не змінили Listenполе, яке за замовчуванням встановлено 3128) на наступне

http://localhost:3128

15

Без будь-якої конфігурації ви можете просто виконати таку команду (модифікуючи 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'

Потім створіть файл cntlm.ini(або cntlm.confв Linux за допомогою шляху за замовчуванням) із таким вмістом (замінюючи ваш 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та ще один, що розуміє протокол SOCKS5 у локальному порту 5866.


3

Ось посібник з використання cntlm

Що таке cntlm?

cntlm - це аутентифікуючий HTTP-проксі NTLM / NTLMv2

Він бере адресу вашого проксі-сервера і відкриває сокет прослуховування, пересилаючи кожен запит батьківському проксі-серверу

Чому cntlm?

За допомогою cntlm ми робимо можливим запуск інструментів, як choro, pip3, apt-getз командного рядка

pip3 install requests
choco install git

Головна перевага cntlm - захист паролем.

За допомогою cntlm ви можете використовувати хеші паролів.

Отже, БЕЗ ПЛАНТЕКСТОВОГО ПАРОЛЮ у змінних середовища %HTTP_PROXY%та %HTTPS_PROXY%середовища

Встановіть cntlm

Ви можете отримати найновіший випуск cntlm з sourceforge

Примітка! Ім'я користувача та домен

Моє ім'я користувача 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

Ви повинні встановити пакет запитів python

Перезапустіть машину

Вітаємо, тепер у вас встановлено та налаштовано cntlm


1

Просто для додавання, якщо ви виконуєте операцію "піп", можливо, вам доведеться додати і додатковий "--proxy = localhost: port_number"

напр pip install --proxy=localhost:3128 matplotlib

Перейдіть за цим посиланням, щоб побачити повну інформацію.


0

Після того, як ви створили файл і змінили пароль, ви можете запустити, як показано нижче,

cntlm -H

Ім'я користувача буде однаковим. він запитає пароль, дасть його, потім скопіює PassNTLMv2, відредагує cntlm.ini, а потім просто запустить наступне

cntlm -v

-3

Для мене просто використання cntlm -Hне генерувало правильний хеш, але це відбувається за допомогою команди нижче, що надає ім'я користувача.

Якщо вам потрібно створити новий хеш пароля для cntlm, оскільки ви його змінили або вас змусили оновити, просто введіть команду нижче та оновіть файл конфігурації cntlm.conf з результатом:

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

У цій публікації повністю відсутня інформація, що домен та ім’я користувача повинні бути встановлені для правильної роботи хеш-файлу NTLMv2, а також як і де зберігати цю інформацію.
Петр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.