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

80

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

У меня есть URL-адрес прокси в следующем формате:

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

И я должен предоставить эту информацию cntlm. Его конфигурационный файл cntlm.iniимеет следующую структуру и параметры:

Username 
Domain
Password    
Proxy   

Я не уверен, как разбить мое исходное свойство прокси, чтобы заполнить эти четыре варианта?

Dilawar
источник

Ответы:

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)
Карл Притчетт,
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

Просто чтобы добавить, если вы выполняете операцию «pip», вам может потребоваться добавить и дополнительный «--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 ''
jairelee
источник
В этом сообщении полностью отсутствует информация, этот домен и имя пользователя должны быть установлены для правильной работы NTLMv2-хэша, а также как и где хранить эту информацию.
Петр