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_proxy
Windows 에서 환경 변수를 다음과 같이 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
그러면 로컬 포트에 로컬 오픈 프록시가 있고 로컬 포트에 5865
SOCKS5 프로토콜을 이해하는 다른 프록시가 있습니다 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 ''