Cntlm 은 NTLM / NTLM 세션 응답 / NTLMv2 인증 HTTP 프록시로서 Microsoft 독점 세계의 사슬에서 벗어날 수 있도록 도와줍니다.
다음 형식의 프록시 URL이 있습니다.
http://user:passwords@my_proxy_server.com:80
그리고이 정보를에 제공해야합니다 cntlm. 구성 파일 cntlm.ini에는 다음과 같은 구조와 매개 변수가 있습니다.
Username
Domain
Password
Proxy
이 네 가지 옵션을 채우기 위해 원래 프록시 속성을 어떻게 분리해야하는지 잘 모르겠습니다.
답변
에서 사용자, 도메인 및 프록시 정보를 업데이트 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
답변
솔루션은 두 단계를 거쳐야합니다!
먼저에서 사용자, 도메인 및 프록시 필드를 완료합니다 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_proxyWindows 에서 환경 변수를 다음과 같이 Listen설정합니다 (기본적으로 설정되어 있는 필드를 변경하지 않았다고 가정 3128).
http://localhost:3128
답변
구성없이 다음 명령을 실행하기 만하면 됩니다 (사용자 정보 수정 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
그러면 로컬 포트에 로컬 오픈 프록시가 있고 로컬 포트에 5865SOCKS5 프로토콜을 이해하는 다른 프록시가 있습니다 5866.
답변
다음은 cntlm 사용 방법에 대한 가이드입니다.
cntlm이란 무엇입니까?
cntlm은 NTLM / NTLMv2 인증 HTTP 프록시입니다.
프록시의 주소를 받아 청취 소켓을 열어 각 요청을 상위 프록시로 전달합니다.
왜 cntlm인가?
cntlm을 사용 choro, pip3, apt-get하면 명령 줄에서 와 같은 도구를 실행할 수 있습니다.
pip3 install requests
choco install git
cntlm의 주요 장점은 암호 보호입니다.
cntlm을 사용하면 암호 해시를 사용할 수 있습니다.
그래서 NO 평문 암호 에 %HTTP_PROXY%와 %HTTPS_PROXY%환경 변수
cntlm 설치
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 끝의 줄 바꿈
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이 설치 및 구성되었습니다.
답변
을 추가하기 위해 “pip”작업을 수행하는 경우 “–proxy = localhost : port_number”를 추가해야 할 수 있습니다.
예 : pip install --proxy=localhost:3128 matplotlib
자세한 내용을 보려면 이 링크 를 방문 하십시오.
답변
파일을 생성하고 비밀번호를 변경하면 아래와 같이 실행할 수 있습니다.
cntlm -H
사용자 이름은 동일합니다. 암호를 묻고, 부여한 다음 PassNTLMv2를 복사하고 cntlm.ini를 편집 한 다음 다음을 실행합니다.
cntlm -v
답변
나를 위해 사용하는 cntlm -H것은 올바른 해시를 생성하지 않았지만 사용자 이름을 제공하는 아래 명령으로 수행됩니다.
cntlm에 대한 새 암호 해시를 생성해야하는 경우 변경했거나 강제로 업데이트해야했기 때문에 아래 명령을 입력하고 출력으로 cntlm.conf 구성 파일을 업데이트하면됩니다.
$ cntlm -u test -H
Password:
PassLM D2AABAF8828482D5552C4BCA4AEBFB11
PassNT 83AC305A1582F064C469755F04AE5C0A
PassNTLMv2 4B80D9370D353EE006D714E39715A5CB # Only for user 'test', domain ''
