Jak wypełnić informacje o serwerze proxy w pliku konfiguracyjnym cntlm?

80

Cntlm to uwierzytelniający serwer proxy HTTP NTLM / NTLM Session Response / NTLMv2, który ma pomóc Ci uwolnić się od łańcuchów zastrzeżonego świata firmy Microsoft.

Mam swój adres URL serwera proxy w następującym formacie:

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

I muszę przekazać te informacje cntlm. Jego plik konfiguracyjny cntlm.inima następującą strukturę i parametry:

Username 
Domain
Password    
Proxy   

Nie jestem pewien, jak rozbić moją pierwotną właściwość proxy, aby wypełnić te cztery opcje?

Dilawar
źródło

Odpowiedzi:

111

Zaktualizuj informacje o użytkowniku, domenie i cntlm.iniserwerze proxy w programie , a następnie przetestuj serwer proxy za pomocą tego polecenia (uruchom w folderze instalacyjnym Cntlm):

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

Poprosi o podanie hasła i, miejmy nadzieję, wydrukuje wymagane informacje uwierzytelniające, które muszą być zapisane w pliku cntlm.ini

Próbka 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

Uwaga: w systemie Linux plik konfiguracyjny tocntlm.conf

alexandrul
źródło
Czy mogę ustalić domenę od http://user:passwords@my_proxy_server.com:80administratora systemu lub zapytać o nie?
Dilawar
Spróbuj skomentować Domain domainlinię i uruchom test, może zadziałać.
alexandrul
Możesz także spróbować dodać Password my-passwordlinię. Niestety, nie mogę tutaj odtworzyć twojej konfiguracji.
alexandrul
2
Uwaga w systemie Linux (Mint) plik konfiguracyjny to cntlm.conf i to polecenie działa (bez części .exe)
Carl Pritchett
1
Ciekawy. Dla potomnych właśnie znalazłem go /etc/cntlm.confna Ubuntu 14.04.
weberc2
54

Rozwiązanie wymaga dwóch kroków!

Najpierw wypełnij pola użytkownika, domeny i serwera proxy w cntlm.ini. Nazwa użytkownika i domena powinny prawdopodobnie być takie, jakich używasz do logowania się do systemu Windows w biurze, np.

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

Następnie przetestuj cntlm za pomocą polecenia, takiego jak

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

Poprosi Cię o hasło (ponownie cokolwiek używasz do logowania się do Windows_). Miejmy nadzieję, że wydrukuje gdzieś „http 200 ok” i wydrukuje jakieś tajemnicze informacje uwierzytelniające tokenów. Teraz dodać je do cntlm.ini, na przykład:

Auth            NTLM
PassNT          A2A7104B1CE00000000000000007E1E1
PassLM          C66000000000000000000000008060C8

Na koniec ustaw http_proxyzmienną środowiskową w systemie Windows (zakładając, że nie zmieniłeś się z Listenpolem, które domyślnie jest ustawione na 3128) na następujące

http://localhost:3128
Colonel Panic
źródło
15

Bez żadnej konfiguracji możesz po prostu wydać następujące polecenie (modyfikując myusernamei mydomainpodając własne informacje):

cntlm -u myusername -d mydomain -H

lub

cntlm -u myusername@mydomain -H

Zapyta Cię o hasło myusernamei da następujące dane wyjściowe:

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

Następnie utwórz plik cntlm.ini(lub cntlm.confw systemie Linux przy użyciu domyślnej ścieżki) z następującą zawartością (zastępując swoją myusername, mydomaina A8FC9092D566461E6BEA971931EF1AECtakże swoimi informacjami i wynikiem poprzedniego polecenia):

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

Wtedy będziesz mieć lokalny otwarty serwer proxy na porcie lokalnym 5865i inny rozumiejący protokół SOCKS5 na porcie lokalnym 5866.

Anthony O.
źródło
3

Oto przewodnik dotyczący korzystania z cntlm

Co to jest cntlm?

cntlm to uwierzytelniający serwer proxy HTTP NTLM / NTLMv2

Pobiera adres serwera proxy i otwiera gniazdo nasłuchujące, przekazując każde żądanie do nadrzędnego serwera proxy

Dlaczego cntlm?

Używając cntlm umożliwiamy uruchamianie narzędzi takich jak choro, pip3, apt-getz linii poleceń

pip3 install requests
choco install git

Główną zaletą cntlm jest ochrona hasłem.

Dzięki cntlm możesz używać skrótów haseł.

Więc NO PLAINTEXT PASSWORD w %HTTP_PROXY%i %HTTPS_PROXY%zmienne środowiskowe

Zainstaluj cntlm

Najnowszą wersję cntlm można pobrać ze strony sourceforge

Uwaga! Nazwa użytkownika i domena

Moja nazwa użytkownika to zezulinsky

Moja domena to local

Kiedy uruchamiam polecenia, których używam zezulinsky@local

Umieść swoją nazwę użytkownika podczas uruchamiania poleceń

Wygeneruj skrót hasła

Uruchom polecenie

cntlm -u zezulinsky@local -H

Wprowadź hasło:

Password:

W rezultacie otrzymujesz zaszyfrowane hasło:

PassLM          AB7D42F42QQQQ407552C4BCA4AEBFB11
PassNT          PE78D847E35FA7FA59710D1231AAAF99
PassNTLMv2      46738B2E607F9093296AA4C319C3A259

Sprawdź, czy wygenerowany hash jest prawidłowy

Uruchom polecenie

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

Wprowadź hasło

Password:

Wynik wynikowy

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

Uwaga! sprawdź, czy hash PassNTLMv2 jest taki sam. Wynikowy skrót jest taki sam dla obu poleceń

PassNTLMv2      46738B2E607F9093296AA4C319C3A259

Zmień plik konfiguracyjny

Umieść wygenerowane skróty w cntlm.inipliku konfiguracyjnym

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

Oto jak cntlm.inipowinien wyglądać Twój

Username    zezulinsky
Domain      local
PassLM      AB7D42F42QQQQ407552C4BCA4AEBFB11
PassNT      PE78D847E35FA7FA59710D1231AAAF99
PassNTLMv2  46738B2E607F9093296AA4C319C3A259

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

Uwaga! nowa linia na końcu cntlm.ini

Ważne jest, aby dodać nową linię na końcu cntlm.inipliku konfiguracyjnego

Ustaw zmienne środowiskowe

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

Sprawdź, czy działa cntlm

Zatrzymaj wszystkie procesy nazwane za cntlm.exepomocą eksploratora procesów

Uruchom polecenie

cntlm -u zezulinsky@local -H

Wynik wygląda jak

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

Otwórz nowy cmd i uruchom polecenie:

pip3 install requests

Powinieneś mieć zainstalowany pakiet żądań pythona

Uruchom ponownie komputer

Gratulacje, teraz masz zainstalowany i skonfigurowany cntlm

Sasha Zezulinsky
źródło
1

Wystarczy dodać, że jeśli wykonujesz operację „pip”, może być konieczne dodanie i dodatkowe „--proxy = localhost: numer_portu”

na przykład pip install --proxy=localhost:3128 matplotlib

Odwiedź ten link, aby zobaczyć szczegółowe informacje.

Arindam Roychowdhury
źródło
0

Po wygenerowaniu pliku i zmianie hasła możesz uruchomić jak poniżej,

cntlm -H

Nazwa użytkownika będzie taka sama. zapyta o hasło, poda je, a następnie skopiuje PassNTLMv2, wyedytuje cntlm.ini, a następnie uruchomi następujące

cntlm -v
Jobin Mathew
źródło
-3

Dla mnie po prostu używam cntlm -H nie generowało odpowiedniego skrótu, ale robi to za pomocą poniższego polecenia, podając nazwę użytkownika.

Jeśli chcesz wygenerować nowy skrót hasła dla cntlm, ponieważ go zmieniłeś lub zostałeś zmuszony do jego aktualizacji, możesz po prostu wpisać poniższe polecenie i zaktualizować plik konfiguracyjny cntlm.conf o wynik:

$ cntlm -u test -H
Password: 
PassLM          D2AABAF8828482D5552C4BCA4AEBFB11
PassNT          83AC305A1582F064C469755F04AE5C0A
PassNTLMv2      4B80D9370D353EE006D714E39715A5CB    # Only for user 'test', domain ''
jairelee
źródło
W tym poście zupełnie brakuje informacji, że domena i nazwa użytkownika muszą być ustawione, aby hash NTLMv2 działał poprawnie, a także jak i gdzie przechowywać te informacje.
Petr