Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
assless-chaps — Быстрый взлом вызовов/ответов MSCHAPv2 с использованием базы NT-хешей. | Kitploit
Инструменты/GitHubGitHub/sensepost/assless-chaps
Взлом паролейАудит Wi-FiАнализ хэшейКриптографияТестирование на Проникновение
GitHubsensepost/assless-chaps

assless-chaps

Быстрый взлом вызовов/ответов MSCHAPv2 с использованием базы NT-хешей.

Репозиторий
14119222 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

assless-chaps

Быстро взламывайте challenge/response'ы MSCHAPv2/NTLMv1 с помощью базы NT-хэшей

Введение

Assless CHAPs — это эффективный способ восстановить NT-хэш, используемый в обмене MSCHAPv2/NTLMv1, если у вас есть challenge и response (например, из атаки WiFi EAP WPE).

Требуется база NT-хэшей, инструкции по её созданию из существующих списков или с помощью hashcat со словарями и правилами приведены ниже. Я включил пример базы из SecLists. Вам нужно распаковать её с помощью bunzip.

Техника

Обмен MSCHAPv2 не требует «взлома» пароля в открытом виде, нам нужен только используемый NThash.

MSCHAPv2 делит NThash на три части и использует каждую часть как разные ключи для DES-шифрования одного и того же challenge (полученного из peer и authenticator challenges). NTHash разбивается на два 7-байтовых ключа и один 2-байтовый ключ. Это означает, что последний ключ дополняется NULL для получения ключа необходимой длины. Его можно быстро перебрать благодаря эффективности DES и пространству ключей в 65 535. Получив эти два байта, мы можем найти в нашей базе все NThash'и, оканчивающиеся на эти два байта. Это даёт гораздо меньшее множество возможных хэшей для проверки.

Это форма компромисса между пространством и временем, похожая на радужную таблицу. Это также форма hash shucking.

Презентация

Впервые это было представлено на Defcon 29's RF Hacking Village. Слайды включены в этот репозиторий.

Скорость

Вот сравнение для трёх примеров challenge/response и трёх разных словарей: небольшого частного, rockyou и списка Have I Been Pwned. Тесты проводились на моём Macbook Pro 2016. Hashcat использует это hash schucking ядро и два встроенных GPU, а также чистое, а не оптимизированное ядро (последнего пока не существует). Hash3 отсутствует в списках для имитации наихудшей производительности. Я не включаю время, которое hashcat тратит на построение кэша словаря при первом запуске.

Hash1

Small hashlist:

hashcat 0.50s user 0.27s system 55% cpu 1.405 total (8597.8 kH/s)
assless 0.05s user 0.00s system 294% cpu 0.018 total

Rockyou hashlist:

hashcat 2.67s user 0.51s system 93% cpu 3.413 total
assless 0.05s user 0.01s system 281% cpu 0.021 total

HIBP hashlist:

hashcat 59.97s user 11.72s system 136% cpu 52.603 total (5620.6 kH/s)
assless 0.05s user 0.00s system 292% cpu 0.018 total

Hash 2

Small hashlist:

hashcat 0.51s user 0.27s system 55% cpu 1.409 total (8704.7 kH/s)
assless 0.03s user 0.00s system 248% cpu 0.012 total

Rockyou hashlist:

hashcat 2.20s user 0.46s system 110% cpu 2.409 total (5798.4 kH/s)
assless 0.03s user 0.00s system 231% cpu 0.015 total

HIBP hashlist:

hashcat 65.37s user 12.74s system 135% cpu 57.712 total (5768.7 kH/s)
assless 0.03s user 0.00s system 249% cpu 0.013 total

Hash 3

Hash 3 doesn't exist in any of the hashlists to simulate a worst case lookup performance.

Small hashlist:

hashcat 0.67s user 0.34s system 66% cpu 1.526 total (7550.1 kH/s)
assless 0.02s user 0.00s system 211% cpu 0.012 total

Rockyou hashlist:

hashcat 2.71s user 0.52s system 94% cpu 3.415 total (5685.4 kH/s)
assless 0.02s user 0.01s system 181% cpu 0.014 total

HIBP hashlist:

hashcat 125.19s user 27.62s system 139% cpu 1:49.75 total (5634.9 kH/s)
assless 0.06s user 0.03s system 115% cpu 0.075 total

Установка

Версия на Rust требует SQLite 3.6.8 или новее.

Версия на Python требует python3, sqlite3 и pycryptodome.

Утилита создания базы данных требует python3 и CLI sqlite3.

Компиляция

Это относится только к версии на Rust. Вам понадобится cargo.

Установив cargo, просто перейдите в каталог assless-chaps-rs и соберите с помощью: cargo build --release

Полученный бинарник будет в каталоге target/release/.

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

Для assless требуются challenge, response и база NThash'ей. Опционально версия на Python может использовать встроенный оптимизированный файл поиска двух байтов. Простейшее использование выглядит так:

./assless-chaps <Challenge> <Response> <hashes.db>

Например:

./assless-chaps 5d79b2a85966d347 556fdda5f67d2b746ca3315fd8b93adcab5c792790a92e87 rockyou.db

Вывод должен выглядеть так:

[-] Two byte lookup file not provided, will brute force instead.
[+] Found in 22636 tries: 586c
[-] Found 222 hashes ending in 586c
[+] Found hash: 8846f7eaee8fb1
[-] Found after 186 hashes.
[+] Found hash: 17ad06bdd830b7
[+] Full hash: 8846f7eaee8fb117ad06bdd830b7586c

Итоговый полный хэш 8846f7eaee8fb117ad06bdd830b7586c — это NT-хэш для password.

Поиск по двум байтам — только Python

Я потратил некоторое время на построение списка всех 65 535 возможных двухбайтовых значений, отсортированных по наиболее часто встречающимся в большом корпусе паролей. Этот файл включён как twobytes. Вы можете просто передать его четвёртым аргументом assless.

Обычно это экономит несколько раундов DES, но не даёт большого прироста скорости. Возможно, если вы обрабатываете много хэшей.

python3 assless-chaps.py 5d79b2a85966d347 556fdda5f67d2b746ca3315fd8b93adcab5c792790a92e87 rockyou.db twobytes

[+] Found in 65533 tries: 586c
[-] Found 222 hashes ending in 586c
[+] Found hash: 8846f7eaee8fb1
[-] Found after 186 hashes.
[+] Found hash: 17ad06bdd830b7
[+] Full hash: 8846f7eaee8fb117ad06bdd830b7586c

Создание собственного словаря хэшей

Файл mksqlitedb.py поможет превратить CSV-файл с хэшами в базу данных.

python3 mksqlitedb.py <database name> <csv file>

CSV-файл требует три столбца:

  • Последние два байта хэша (последние четыре символа ASCII)
  • Первые 7 байт (первые 14 символов ASCII)
  • Вторые 7 байт (15-29 символы ASCII)

Например, хэш 8846f7eaee8fb117ad06bdd830b7586c станет:

586c,8846f7eaee8fb1,17ad06bdd830b7

Пример regexp-трансформации для этого: echo 8846f7eaee8fb117ad06bdd830b7586c | sed "s/^\(.\{14\}\)\(.\{14\}\)\(.\{4\}\)$/\3,\1,\2/"

Вы можете либо взять существующий список хэшей (например, списки Have I Been Pwned), либо сгенерировать свои с помощью hashcat и ваших любимых комбинаций словарей/правил.

Использование Have I Been Pwned

Списки паролей HIBP уже доступны для скачивания в виде NT-хэшей, нужно только удалить количество из файла и преобразовать их в формат CSV для импорта в базу данных.

Это можно сделать с помощью стандартной утилиты Unix sed следующим образом:

sed "s/^\(.\{14\}\)\(.\{14\}\)\(.\{4\}\):.*/\3,\1,\2/" pwned-passwords-ntlm-ordered-by-hash.txt > hibp.csv

После чего их можно импортировать с помощью mksqlitedb.py hibp.db hibp.csv.

Преобразование словаря в список хэшей

Чтобы преобразовать обычный словарь в список nthash'ей, можно использовать nthasher, который быстро обрабатывает большие словари. Полученные хэши нужно будет преобразовать в требуемый формат CSV, как описано выше.

Гораздо более медленный nthasher, который выводит хэши сразу в нужном формате CSV, включён в этот репозиторий, и запускается просто так:

python3 nthash-from-clear.py <wordlist> > hashlist.csv

Если вы хотите расширить словарь с помощью правил, смотрите следующий раздел об использовании hashcat.

Использование hashcat для создания CSV-файла хэшей из словарей и правил

Вам нужно сделать небольшое изменение в коде модуля OpenCL для режима 1000, чтобы он выводил каждый хэш, а не только те, что соответствуют вашему кандидату. По умолчанию он генерирует хэш в правильном формате CSV.

Скачать инструмент