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, точнее, приводит ответы на challenge NTLMv1 к формату, который можно взломать с помощью hashcat в режиме 14000.

Вычисление CT3

Если указать --ct3, инструмент сам вычислит последние 4 символа NTLM-хэша; если указать --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(), чтобы модуль можно было просто импортировать для прямого использования.

Обновления от 10 ноября 2020 г.

Я добавил две новые опции: --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"

Обновления от 10 декабря 2019 г.

Да, теперь это совместимо с Python 3. Также я объединил ntlmv1 и ntlmv1-ess.

ntlmv1-multi

Мультиинструмент NTLMv1

Этот инструмент модифицирует хэши NTLMv1/NTLMv1-ESS/MSCHAPv2, чтобы их можно было взломать в hashcat с помощью режима DES 14000.

Инструмент основан на работе atom из команды Hashcat: https://hashcat.net/forum/thread-5832.html

Он также основан на https://hashcat.net/forum/thread-5912.html и https://www.youtube.com/watch?v=LIHACAct2vo

Установка

Установите инструмент нового поколения ntlmv1_nextgen.py как глобальную команду ntlmv1-multi с помощью uv:

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 и может завершить полное преобразование NTLMv1 -> NTLM из взломанного potfile за один шаг. Доступные опции:

Использование

NTLMv1 без ESS

Для перехвата используйте Responder с флагом --lm; без --lm активируется ESS, и взлом займёт больше времени. Также появился новый флаг --disable-ess, который пытается отключить ESS и принудительно выполнить даунгрейд. Сначала попробуйте --disable-ess, а если не получится — --lm. При использовании --disable-ess или --lm убедитесь, что ваш клиентский challenge равен 1122334455667788, чтобы задействовать FPGA; однако это может вызвать срабатывание некоторых сетевых 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

Итак, используйте мультиинструмент следующим образом (он также совместим с Python 2):

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

Он выведет следующие данные без изменения серверных challenge и т.д.:

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

С помощью утилиты ct3_to_ntlm.bin из hashcat-utils, написанной atom, можно вычислить последние 4 символа NTLM-хэша из NTLMv1 challenge, который выводит инструмент:

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 возвращает DES-ключи, а не NTLM-ключи. Их нужно преобразовать в NTLM с помощью deskey_to_ntlm.pl из Hashcat Utils; это делается так:

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

И вы должны получить несколько восстановленных хэшей.

NTLMv1 с ESS

ESS изменяет серверный challenge. Если в вашем Responder появился ESS, потому что вы не использовали --lm или клиент настроен не выдавать LM-ответ, то задействуется ESS. Кроме того, --disable-ess попытается принудительно отключить ESS, но для этого требуется свежая копия (август 2021 года или новее) 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

Итак, чтобы вычислить последние 4 символа NTLM-хэша для нашего challenge NTLMv1-ESS, используем следующую команду из вывода инструмента, чтобы получить 586c:

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

Согласно выводу инструмента, нужно создать файл с хэшами следующего содержания, в котором изменены SRV Challenge для работы с ESS:

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 возвращает DES-ключи, а не NTLM-ключи. Их нужно преобразовать в NTLM с помощью deskey_to_ntlm.pl из Hashcat Utils; это делается так:

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

Теперь мы можем взломать с помощью hashcat, используя следующую команду, и не ждать 8 дней:

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 — первый хэш для режима 14000 hashcat
  • hash2 — второй хэш для режима 14000 hashcat
  • ct3_crack — команда для взлома ct3 с помощью hashcat-utils
  • ntlmv1 — исходный хэш NTLMv1
  • user — поле пользователя
  • domain — поле домена
  • lmresp — LM-ответ
  • ntresp — NT-ответ
  • challenge — исходное поле challenge
  • srvchallenge — если это ESS-хэш, заполняется серверный challenge

Преобразование NTLMv1 в NTLM за один шаг с помощью potfile hashcat

После того как вы взломали DES-хэши режима 14000 с помощью hashcat, взломанные 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 (или ntlm при использовании --json). --potfile работает с --ntlmv1, --99 и --mschapv2, обрабатывает ESS-хэши (сопоставляя по challenge, полученному через MD5) и игнорирует посторонние записи potfile. Явно заданные --key1/--key2 по-прежнему имеют приоритет над совпадениями из potfile.

Принимаются potfile как от hashcat, так и от rainbowcrackalack. Поле взломанного ключа может быть $HEX[...]-блобом hashcat, открытыми печатными байтами, 16-hex 8-байтовым ключом или 14-hex 7-байтовым ключом (в форме, которую выдаёт rainbowcrackalack) — все варианты нормализуются и повторно проверяются по шифротексту перед использованием.

Благодарности / Лицензия

Этот репозиторий основан на сообщениях на форуме от atom, автора hashcat, и на исследованиях moxie marlinspike. Поскольку код atom в значительной степени распространяется под лицензией MIT, этот проект также принял эту лицензию для совместимости. Этот проект не использует GPL, чтобы любая организация могла включить его в коммерческий проект без ограничений.

Скачать инструмент
ОпцияОписание
--ntlmv1 <hash>NTLMv1-хэш в формате Responder (user::host:LM:NT:challenge).
--99 <blob>base64-блоб в стиле $99$.
--mschapv2 <hash>Хэш MSCHAPv2 в формате John the Ripper.
--nthash <hex>32-символьный NTLM-хэш; вычисляет DES-ключи и кандидаты для hashcat.
--password <pw>Вычисляет DES-ключи --key1/--key2 из известного пароля.
--key1 <hex> / --key2 <hex>Задать 16-hex DES-ключи для CT1/CT2 напрямую (имеют приоритет над --potfile).
--potfile <path>Potfile от hashcat/rainbowcrackalack со взломанными ключами режима 14000; автоматически восстанавливает key1/key2 для завершения преобразования NTLMv1 -> NTLM.
--hashcatВыводит строки в формате hashcat для CT1/CT2.
--jsonВыводить только JSON (подразумевает вычисление CT3).