Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ntlmv1-multi — NTLMv1 Multitool | Kitploit
도구/GitHubGitHub/evilmog/ntlmv1-multi
Password CrackingEncryption/Decryption ToolsPassword AttacksHash AnalysisCryptographyAuthentication
GitHubevilmog/ntlmv1-multi

ntlmv1-multi

NTLMv1 Multitool

저장소 보기
670991개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

NTLMv1 멀티 툴

이 도구는 NTLMv1 해시를 NTLM으로 변환합니다. 더 정확히는 NTLMv1 챌린지 응답을 hashcat 모드 14000으로 크랙할 수 있는 형식으로 변환합니다.

CT3 계산

--ct3을 지정하면 NTLM의 마지막 4자리를 계산해 줍니다. --json을 지정하면 --ct3이 포함된 것으로 간주되며 pt3 요소로 반환됩니다. 예:

root@kitploit:~
python3 ntlmv1.py --ntlm "DC1$::MOG:AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E:AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E:1122334455667788" --json 

{"ntlmv1": "DC1$::MOG:AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E:AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E:1122334455667788", "user": "DC1$", "domain": "MOG", "challenge": "1122334455667788", "lmresp": "AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E", "ntresp": "AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E", "ct3": "352661ECEF909C5E", "ct3_crack": "ct3_to_ntlm.bin 352661ECEF909C5E 1122334455667788", "pt3": "8c71", "hash1": "AC51EC464A91A35A:1122334455667788", "hash2": "04A862DA3106EC2B:1122334455667788"}

마지막으로 이 업데이트에서는 함수들을 main()으로 이동하여 모듈을 임포트해 바로 사용할 수 있게 했습니다.

2020년 11월 10일 업데이트

--hashcat과 --hcutils라는 두 가지 새로운 옵션을 추가했습니다. 이 옵션들은 각각 hashcat과 hashcat-utils의 경로를 설정하여 도구에서 직접 복사/붙여넣기할 수 있게 합니다.

hashcat 디렉터리가 ~/git/hashcat에 있고 hashcat-utils 디렉터리가 ~/git/hashcat-utils에 있다면 다음과 같이 도구를 실행합니다:

root@kitploit:~
python3 ./ntlmv1.py --ntlm "SERVER1$::MOG:9DE7F41D81C1207400000000000000000000000000000000:DE766A98B60D1C911DCFFFDBB3E521314B2CE34EAB63CC7B:1122334455667788" --hashcat "~/git/hashcat" --hcutils "~/git/hashcat-utils"

2019년 12월 10일 업데이트

네, 이제 파이썬 3와 호환됩니다. 또한 ntlmv1과 ntlmv1-ess를 병합했습니다.

ntlmv1-multi

NTLMv1 멀티툴

이 도구는 NTLMv1/NTLMv1-ESS/MSCHAPv2 해시를 hashcat의 DES 모드 14000으로 크랙할 수 있도록 변환합니다.

이 도구는 Hashcat 팀의 atom이 수행한 작업을 기반으로 합니다. https://hashcat.net/forum/thread-5832.html

또한 https://hashcat.net/forum/thread-5912.html 및 https://www.youtube.com/watch?v=LIHACAct2vo를 기반으로 합니다.

설치

ntlmv1_nextgen.py 차세대 도구를 uv로 전역 ntlmv1-multi 명령으로 설치합니다:

root@kitploit:~
uv tool install .
ntlmv1-multi --ntlmv1 "hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788"

또는 설치 없이 리포지토리에서 직접 실행합니다:

root@kitploit:~
uv run ntlmv1_nextgen.py --ntlmv1 "hashcat::DUSTIN-5AA37877:..."

프로젝트에는 pyproject.toml(Python 3.14+, pycryptodome 의존성)이 포함되어 있어 uv가 모든 것을 알아서 해결합니다. 원래 ntlmv1.py는 여전히 모든 Python 3 인터프리터에서 독립적으로 실행됩니다.

차세대 도구 (ntlmv1_nextgen.py)

ntlmv1_nextgen.py(ntlmv1-multi 명령으로 설치됨)는 최신 파서입니다. NTLMv1, $99$ 블롭, MSCHAPv2를 지원하며 ESS를 자동으로 처리하고, 크랙된 potfile에서 전체 NTLMv1 -> NTLM 변환을 한 번에 완료할 수 있습니다. 사용 가능한 옵션:

사용법

ESS가 없는 NTLMv1

캡처하려면 --lm 플래그와 함께 responder를 사용하세요. --lm 없이 사용하면 ESS가 활성화되어 크랙에 더 오랜 시간이 걸립니다. 또한 ESS를 비활성화하고 다운그레이드를 강제하는 새 플래그 --disable-ess가 나왔습니다. 먼저 --disable-ess를 시도하고, 실패하면 --lm을 시도하세요. --disable-ess 또는 --lm을 사용하는 경우 FPGA를 사용하려면 클라이언트 챌린지가 1122334455667788인지 확인하세요. 다만 해당 트래픽이 감지되면 일부 네트워크 IDS/IPS 보호 기능이 트리거될 수 있습니다.

캡처 결과는 다음과 같습니다.

root@kitploit:~
[SMB] NTLMv1 Client   : 184.64.60.62
[SMB] NTLMv1 Username : DUSTIN-5AA37877\hashcat
[SMB] NTLMv1 Hash     : hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788
[*] Skipping previously captured hash for DUSTIN-5AA37877\hashcat

해시 부분은 다음과 같습니다.

root@kitploit:~
hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788

따라서 멀티 툴을 다음과 같이 사용합니다(파이썬 2와도 호환됩니다).

root@kitploit:~
python3 ntlmv1.py --ntlmv1 hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788

서버 챌린지 등을 수정하지 않고 다음 데이터를 출력합니다.

root@kitploit:~
['hashcat', '', 'DUSTIN-5AA37877', '76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D', '727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595', '1122334455667788']

Hostname: DUSTIN-5AA37877
Username: hashcat
Challenge: 1122334455667788
LM Response: 76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D
NT Response: 727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595
CT1: 727B4E35F947129E
CT2: A52B9CDEDAE86934
CT3: BB23EF89F50FC595

To Calculate final 4 characters of NTLM hash use:
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788

To crack with hashcat create a file with the following contents:
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788

To crack with hashcat:
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1

이 경우 사용된 암호는 "password"이며, 다음 명령으로 NTLM 해시를 확인할 수 있습니다.

root@kitploit:~
echo -n password | iconv -f utf8 -t utf16le | openssl dgst -md4
(stdin)= 8846f7eaee8fb117ad06bdd830b7586c

atom이 작성한 hashcat 유틸리티 ct3_to_ntlm.bin을 사용하면 도구가 출력하는 NTLMv1 챌린지에서 NTLM 해시의 마지막 4자를 계산할 수 있습니다.

root@kitploit:~
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788
586c

이 값은 NTLM 해시의 끝부분과 일치하므로 준비가 끝났습니다. 다음 단계는 hashcat으로 해시를 크랙하는 것이므로 다음 내용으로 hashes.txt 파일을 만들어야 합니다.

root@kitploit:~
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788

이를 hashcat으로 크랙하려면 다음을 사용합니다.

root@kitploit:~
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1

중요한 참고 사항: hashcat은 NTLM 키가 아닌 DES 키를 반환하므로 Hashcat Utils의 deskey_to_ntlm.pl을 사용하여 NTLM으로 변환해야 합니다. 이는 다음 명령으로 수행할 수 있습니다.

root@kitploit:~
./deskey_to_ntlm.pl [cracked des key 1]
./deskey_to_ntlm.pl [cracked des key 2]

그런 다음 두 NTLM 키를 암호의 세 번째 부분(도구가 출력하는 값으로 계산)과 결합합니다.

root@kitploit:~
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788

이 세 부분을 더하면 완료됩니다.

DES 변환기로 테스트

내 코드를 테스트 중이고 이미 암호를 알고 있다면 DES 변환기를 사용할 수 있습니다.

root@kitploit:~
python ntlm-to-des.py --ntlm b4b9b02e6f09a9bd760f388b67351e2b
DESKEY1: b55d6d04e67926
DESKEY2: bcba83e6895b9d

echo "$HEX[b55d6d04e67926]">>des.cand
echo "$HEX[bcba83e6895b9d]">>des.cand

기본적으로 다음을 수행합니다.

root@kitploit:~
echo "$HEX[b55d6d04e67926]">>des.cand
echo "$HEX[bcba83e6895b9d]">>des.cand
root@kitploit:~
./hashcat -m 14000 -a 0 hashes.txt des.cand

그러면 역변환된 해시들을 얻을 수 있습니다.

ESS가 있는 NTLMv1

ESS는 서버 챌린지를 변경합니다. --lm을 사용하지 않았거나 클라이언트가 LM 응답을 제공하지 않도록 설정되어 responder에서 ESS가 표시되면 ESS가 활성화됩니다. 또한 --disable-ess는 ESS를 강제로 끄려고 시도하지만, 이 경우 최신 버전(2021년 8월 이상)의 impacket과 responder가 필요합니다.

ESS 출력은 다음과 같습니다.

root@kitploit:~
[SMB] NTLMv1-SSP Client   : 184.64.60.62
[SMB] NTLMv1-SSP Username : DUSTIN-5AA37877\hashcat
[SMB] NTLMv1-SSP Hash     : hashcat::DUSTIN-5AA37877:85D5BC2CE95161CD00000000000000000000000000000000:892F905962F76D323837F613F88DE27C2BBD6C9ABCD021D0:1122334455667788

실제 해시는 다음과 같습니다.

root@kitploit:~
hashcat::DUSTIN-5AA37877:85D5BC2CE95161CD00000000000000000000000000000000:892F905962F76D323837F613F88DE27C2BBD6C9ABCD021D0:1122334455667788

도구를 사용하려면 다음을 실행합니다(Python 3 호환).

root@kitploit:~
python3 ntlmv1.py --ntlmv1 "hashcat::DUSTIN-5AA37877:85D5BC2CE95161CD00000000000000000000000000000000:892F905962F76D323837F613F88DE27C2BBD6C9ABCD021D0:1122334455667788"

도구는 다음을 출력합니다.

root@kitploit:~
Hashfield Split:
['hashcat', '', 'DUSTIN-5AA37877', '85D5BC2CE95161CD00000000000000000000000000000000', '892F905962F76D323837F613F88DE27C2BBD6C9ABCD021D0', '1122334455667788']

Hostname: DUSTIN-5AA37877
Username: hashcat
LM Response: 85D5BC2CE95161CD00000000000000000000000000000000
NT Response: 892F905962F76D323837F613F88DE27C2BBD6C9ABCD021D0
Client Challenge: 1122334455667788
SRV Challenge: b36d2b9a8607ea77

To Calculate final 4 characters of NTLM hash use:
./ct3_to_ntlm.bin 2BBD6C9ABCD021D0 1122334455667788 85D5BC2CE95161CD00000000000000000000000000000000

To crack with hashcat create a file with the following contents:
892F905962F76D32:b36d2b9a8607ea77
3837F613F88DE27C:b36d2b9a8607ea77

To crack with hashcat:
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1

이 경우 사용 중인 암호는 password이며 NTLM 해시는 b4b9b02e6f09a9bd760f388b67351e2b입니다.

root@kitploit:~
echo -n password | iconv -f utf8 -t utf16le | openssl dgst -md4
(stdin)= 8846f7eaee8fb117ad06bdd830b7586c

따라서 NTLMv1-ESS 챌린지에 대한 NTLM 해시의 마지막 4자를 계산하려면 도구 출력의 다음 명령을 사용하여 586c를 얻습니다.

root@kitploit:~
./ct3_to_ntlm.bin 2BBD6C9ABCD021D0 1122334455667788 85D5BC2CE95161CD00000000000000000000000000000000

ESS를 처리하기 위해 수정된 SRV 챌린지가 포함된 다음 내용으로 도구 안내에 따라 해시 파일을 만들어야 합니다.

root@kitploit:~
892F905962F76D32:b36d2b9a8607ea77
3837F613F88DE27C:b36d2b9a8607ea77

도구 안내에 따라 hashcat으로 크랙하려면 다음을 사용합니다.

root@kitploit:~
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1

중요한 참고 사항: hashcat은 NTLM 키가 아닌 DES 키를 반환하므로 Hashcat Utils의 deskey_to_ntlm.pl을 사용하여 NTLM으로 변환해야 합니다. 이는 다음 명령으로 수행할 수 있습니다.

root@kitploit:~
./deskey_to_ntlm.pl [cracked des key 1]
./deskey_to_ntlm.pl [cracked des key 2]

이제 우리가 직접 만들어서 해당 사례의 NTLM 해시를 이미 알고 있고 도구를 검증하려는 경우 다음을 사용합니다.

root@kitploit:~
python ntlm-to-des.py --ntlm b4b9b02e6f09a9bd760f388b67351e2b

그러면 일부 데이터가 출력됩니다.

root@kitploit:~
DESKEY1: b55d6d04e67926
DESKEY2: bcba83e6895b9d

echo "$HEX[b55d6d04e67926]">>des.cand
echo "$HEX[bcba83e6895b9d]">>des.cand

여기서 중요한 부분은 다음과 같습니다.

root@kitploit:~
echo "$HEX[b55d6d04e67926]">>des.cand
echo "$HEX[bcba83e6895b9d]">>des.cand

이제 8일을 기다리지 않고 다음 명령으로 hashcat을 사용해 크랙할 수 있습니다.

root@kitploit:~
./hashcat -m 14000 -a 0 hashes.txt des.cand

데이터 검증 테스트용 NTLM 해시-DES 키 변환기

root@kitploit:~
python ntlm-to-des.py  --ntlm 8846f7eaee8fb117ad06bdd830b7586c
root@kitploit:~
DESKEY1: b55d6d05e6792652
DESKEY2: bdba82e6895a9d6a

echo "$HEX[b55d6d05e6792652]">>des.cand
echo "$HEX[bdba82e6895a9d6a]">>des.cand

JSON 지원

이 도구는 이제 JSON 출력을 지원합니다. --json 플래그를 설정하면 JSON 출력을 반환합니다:

root@kitploit:~
python3 ntlmv1.py --ntlmv1 "SERVER1$::MOG:7EF3F506F5EA510E00000000000000000000000000000000:1217169BD7BE0270A033899BD440016D3E6DACAF5894D504:ff81dfd6b12c269d" --json
{"ntlmv1": "SERVER1$::MOG:7EF3F506F5EA510E00000000000000000000000000000000:1217169BD7BE0270A033899BD440016D3E6DACAF5894D504:ff81dfd6b12c269d", "user": "SERVER1$", "domain": "MOG", "challenge": "ff81dfd6b12c269d", "lmresp": "7EF3F506F5EA510E00000000000000000000000000000000", "ntresp": "1217169BD7BE0270A033899BD440016D3E6DACAF5894D504", "ct3": "3E6DACAF5894D504", "srvchallenge": "888f8ee0fa031808", "ct3_crack": "ct3_to_ntlm.bin 3E6DACAF5894D504 ff81dfd6b12c269d 7EF3F506F5EA510E00000000000000000000000000000000", "hash1": "1217169BD7BE0270:888f8ee0fa031808", "hash2": "A033899BD440016D:888f8ee0fa031808", "CRACK_SH": "$NETLM$888f8ee0fa031808$1217169BD7BE0270A033899BD440016D3E6DACAF5894D504"}

중요한 필드는 다음과 같습니다:

  • hash1 - hashcat 모드 14000용 첫 번째 해시
  • hash2 - hashcat 모드 14000용 두 번째 해시
  • ct3_crack - hashcat 유틸리티를 사용하여 ct3를 크랙하는 명령
  • ntlmv1 - 원본 NTLMv1 해시
  • user - 사용자 필드
  • domain - 도메인 필드
  • lmresp - LM 응답
  • ntresp - NT 응답
  • challenge - 원본 챌린지 필드
  • srvchallenge - ESS 해시인 경우 서버 챌린지가 채워집니다.

hashcat potfile을 사용한 원샷 NTLMv1 -> NTLM 변환

hashcat으로 모드 14000 DES 해시를 크랙한 후, 크랙된 DES 키는 potfile에 ct:challenge:key 줄로 기록됩니다(키는 원시 바이트이므로 보통 $HEX[...]로 저장됩니다). 키를 --key1/--key2로 수동으로 다시 입력하는 대신 ntlmv1_nextgen.py에 potfile을 지정하면 키를 복구하고 암호문과 대조하여 검증한 후 전체 NTLMv1 -> NTLM 변환을 한 번에 완료합니다:

root@kitploit:~
python3 ntlmv1_nextgen.py --ntlmv1 "hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788" --potfile ~/.local/share/hashcat/hashcat.potfile

복구된 NTLM 해시는 NTLM 필드로 출력됩니다(--json에서는 ntlm). --potfile은 --ntlmv1, --99, --mschapv2와 함께 작동하며, ESS 해시(MD5 파생 챌린지 기준 매칭)를 처리하고 관련 없는 potfile 항목은 무시합니다. 명시적인 --key1/--key2는 여전히 potfile 매칭보다 우선합니다.

hashcat과 rainbowcrackalack potfile 모두 허용됩니다. 크랙된 키 필드는 hashcat $HEX[...] 블롭, 일반 인쇄 가능한 바이트, 16자리 hex 8바이트 키, 또는 14자리 hex 7바이트 키(rainbowcrackalack이 출력하는 형식)일 수 있습니다. 모든 형식은 사용 전에 정규화되고 암호문과 대조하여 다시 검증됩니다.

감사의 말 / 라이선스

이 저장소는 hashcat의 저자인 atom의 포럼 게시물과 moxie marlinspike의 연구를 기반으로 합니다. atom의 코드가 대부분 MIT 라이선스이므로 이 프로젝트도 호환을 위해 해당 라이선스를 채택했습니다. 이 프로젝트는 GPL이 아니므로 어떤 조직도 제한 없이 상업 프로젝트에 통합할 수 있습니다.

도구 다운로드
OptionDescription
--ntlmv1 <hash>Responder 형식의 NTLMv1 해시 (user::host:LM:NT:challenge).
--99 <blob>$99$ 스타일 base64 블롭.
--mschapv2 <hash>John the Ripper 형식의 MSCHAPv2 해시.
--nthash <hex>32자 NTLM 해시; DES 키와 hashcat 후보를 파생합니다.
--password <pw>알려진 암호에서 --key1/--key2 DES 키를 파생합니다.
--key1 <hex> / --key2 <hex>CT1/CT2용 16자리 hex DES 키를 직접 지정합니다(--potfile보다 우선).
--potfile <path>크랙된 모드 14000 키가 있는 hashcat/rainbowcrackalack potfile; key1/key2를 자동으로 복구하여 NTLMv1 -> NTLM 변환을 완료합니다.
--hashcatCT1/CT2에 대한 hashcat 형식 문자열을 출력합니다.
--jsonJSON만 출력합니다(CT3 계산 포함).