Wie fülle ich Proxy-Informationen in die cntlm-Konfigurationsdatei ein?

79

Cntlm ist ein NTLM / NTLM-Sitzungsantwort / NTLMv2-authentifizierender HTTP-Proxy, der Ihnen dabei helfen soll, sich aus den Ketten der Microsoft-eigenen Welt zu befreien.

Ich habe meine Proxy-URL im folgenden Format:

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

Und ich muss diese Informationen zur Verfügung stellen cntlm. Die Konfigurationsdatei cntlm.inihat folgende Struktur und Parameter:

Username 
Domain
Password    
Proxy   

Ich bin nicht sicher, wie ich meine ursprüngliche Proxy-Eigenschaft aufteilen soll, um diese vier Optionen zu füllen.

Dilawar
quelle

Antworten:

110

Aktualisieren Sie Ihre Benutzer-, Domänen- und Proxy-Informationen in cntlm.iniund testen Sie Ihren Proxy mit diesem Befehl (führen Sie ihn in Ihrem Cntlm-Installationsordner aus):

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

Es wird nach Ihrem Passwort fragen und hoffentlich Ihre erforderlichen Authentifizierungsinformationen drucken, die in Ihrem gespeichert werden müssen cntlm.ini

Beispiel 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

Hinweis: Unter Linux ist die Konfigurationsdateicntlm.conf

alexandrul
quelle
Kann ich die Domain von herausfinden http://user:passwords@my_proxy_server.com:80oder sollte ich den Systemadministrator fragen?
Dilawar
Versuchen Sie, die Domain domainZeile zu kommentieren , und führen Sie den Test aus. Möglicherweise funktioniert er.
Alexandrul
Sie können auch versuchen, eine Password my-passwordZeile hinzuzufügen . Leider kann ich Ihr Setup hier nicht replizieren.
Alexandrul
2
Hinweis unter Linux (Mint) ist die Konfigurationsdatei cntlm.conf und dieser Befehl funktioniert (ohne den EXE-Teil)
Carl Pritchett
1
Interessant. Für die Nachwelt habe ich es gerade unter /etc/cntlm.confUbuntu 14.04 gefunden.
weberc2
54

Die Lösung besteht aus zwei Schritten!

Füllen Sie zunächst die Felder Benutzer, Domäne und Proxy aus cntlm.ini. Der Benutzername und die Domäne sollten wahrscheinlich so sein, wie Sie sich in Ihrem Büro bei Windows anmelden, z.

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

Testen Sie dann cntlm mit einem Befehl wie

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

Sie werden nach Ihrem Kennwort gefragt (erneut, was auch immer Sie zum Anmelden bei Windows_ verwenden). Hoffentlich wird irgendwo "http 200 ok" gedruckt und einige Authentifizierungsinformationen für kryptische Token gedruckt. Nun fügen Sie diese an cntlm.ini, zum Beispiel:

Auth            NTLM
PassNT          A2A7104B1CE00000000000000007E1E1
PassLM          C66000000000000000000000008060C8

Stellen Sie abschließend die http_proxyUmgebungsvariable in Windows (vorausgesetzt, Sie haben sich nicht mit dem Listenstandardmäßig festgelegten Feld geändert 3128) auf Folgendes ein

http://localhost:3128
Oberst Panik
quelle
15

Ohne Konfiguration können Sie einfach den folgenden Befehl eingeben (ändern myusernameund mydomainmit Ihren eigenen Informationen):

cntlm -u myusername -d mydomain -H

oder

cntlm -u myusername@mydomain -H

Sie werden nach dem Passwort von gefragt myusernameund erhalten die folgende Ausgabe:

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

Erstellen Sie dann die Datei cntlm.ini(oder cntlm.confauf Linux Standardpfad verwendet wird ) mit folgendem Inhalt ( als Ersatz für Ihre myusername, mydomainund A8FC9092D566461E6BEA971931EF1AECmit Ihren Informationen und das Ergebnis des vorherigen Befehls):

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

Dann haben Sie einen lokalen offenen Proxy am lokalen Port 5865und einen anderen, der das SOCKS5-Protokoll am lokalen Port versteht 5866.

Anthony O.
quelle
3

Hier ist eine Anleitung zur Verwendung von cntlm

Was ist cntlm?

cntlm ist ein NTLM / NTLMv2-authentifizierender HTTP-Proxy

Es nimmt die Adresse Ihres Proxys und öffnet einen Listening-Socket, der jede Anforderung an den übergeordneten Proxy weiterleitet

Warum cntlm?

Mit cntlm können Tools wie choro, pip3, apt-getüber eine Befehlszeile ausgeführt werden

pip3 install requests
choco install git

Der Hauptvorteil von cntlm ist der Passwortschutz.

Mit cntlm können Sie Passwort-Hashes verwenden.

Also KEIN PLAINTEXT-PASSWORT in %HTTP_PROXY%und %HTTPS_PROXY%Umgebungsvariablen

Installieren Sie cntlm

Sie können die neueste cntlm-Version von sourceforge herunterladen

Hinweis! Benutzername und Domain

Mein Benutzername ist zezulinsky

Meine Domain ist local

Wenn ich Befehle ausführe, verwende ich zezulinsky@local

Geben Sie Ihren Benutzernamen ein, wenn Sie Befehle ausführen

Passwort-Hash generieren

Führen Sie einen Befehl aus

cntlm -u zezulinsky@local -H

Geben Sie Ihr Passwort ein:

Password:

Als Ergebnis erhalten Sie ein Hash-Passwort:

PassLM          AB7D42F42QQQQ407552C4BCA4AEBFB11
PassNT          PE78D847E35FA7FA59710D1231AAAF99
PassNTLMv2      46738B2E607F9093296AA4C319C3A259

Überprüfen Sie, ob Ihr generierter Hash gültig ist

Führen Sie einen Befehl aus

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

Geben Sie Ihr Passwort ein

Password:

Die Ergebnisausgabe

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

Hinweis! Überprüfen Sie, ob der PassNTLMv2-Hash identisch ist. Der resultierende Hash ist für beide Befehle gleich

PassNTLMv2      46738B2E607F9093296AA4C319C3A259

Konfigurationsdatei ändern

Platzieren Sie generierte Hashes in der cntlm.iniKonfigurationsdatei

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

So cntlm.inisollte dein Aussehen aussehen

Username    zezulinsky
Domain      local
PassLM      AB7D42F42QQQQ407552C4BCA4AEBFB11
PassNT      PE78D847E35FA7FA59710D1231AAAF99
PassNTLMv2  46738B2E607F9093296AA4C319C3A259

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

Hinweis! Zeilenumbruch am Ende von cntlm.ini

Es ist wichtig, am Ende der cntlm.iniKonfigurationsdatei eine neue Zeile hinzuzufügen

Legen Sie Ihre Umgebungsvariablen fest

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

Überprüfen Sie, ob Ihr cntlm funktioniert

Stoppen Sie alle cntlm.exemit dem Prozess-Explorer genannten Prozesse

Führen Sie den Befehl aus

cntlm -u zezulinsky@local -H

Die Ausgabe sieht aus wie

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

Öffnen Sie ein neues cmd und führen Sie einen Befehl aus:

pip3 install requests

Sie sollten Anfragen Python-Paket installiert haben

Starten Sie Ihren Computer neu

Herzlichen Glückwunsch, jetzt haben Sie cntlm installiert und konfiguriert

Sasha Zezulinsky
quelle
1

Nur um hinzuzufügen, wenn Sie eine "pip" -Operation ausführen, müssen Sie möglicherweise ein zusätzliches "--proxy = localhost: port_number" hinzufügen.

z.B pip install --proxy=localhost:3128 matplotlib

Besuchen Sie diesen Link , um alle Details zu sehen.

Arindam Roychowdhury
quelle
0

Sobald Sie die Datei generiert und Ihr Passwort geändert haben, können Sie wie folgt ausführen:

cntlm -H

Der Benutzername ist der gleiche. Es wird nach dem Passwort gefragt, es gegeben, dann die PassNTLMv2 kopiert, die cntlm.ini bearbeitet und dann einfach Folgendes ausführen

cntlm -v
Jobin Mathew
quelle
-3

Für mich hat die Verwendung cntlm -Hvon nicht den richtigen Hash generiert, aber mit dem folgenden Befehl, der den Benutzernamen angibt.

Wenn Sie einen neuen Kennwort-Hash für cntlm generieren müssen, weil Sie ihn geändert haben oder gezwungen wurden, ihn zu aktualisieren, können Sie einfach den folgenden Befehl eingeben und Ihre Konfigurationsdatei cntlm.conf mit der Ausgabe aktualisieren:

$ cntlm -u test -H
Password: 
PassLM          D2AABAF8828482D5552C4BCA4AEBFB11
PassNT          83AC305A1582F064C469755F04AE5C0A
PassNTLMv2      4B80D9370D353EE006D714E39715A5CB    # Only for user 'test', domain ''
Jairelee
quelle
In diesem Beitrag fehlen die Informationen vollständig. Diese Domain und dieser Benutzername müssen festgelegt werden, damit der NTLMv2-Hash ordnungsgemäß funktioniert, sowie wie und wo diese Informationen gespeichert werden sollen.
Petr