Параметр -1 (а также -2, -3, -4) в hashcat задаёт custom charset — пользовательский набор символов, из которого инструмент будет перебирать позиции маски, и именно его отсутствие или неверное определение чаще всего приводит к ошибке вида «Custom-charset 1 is undefined» либо к бессмысленно долгому перебору. Если вы запускаете атаку по маске и видите подобное сообщение, первое действие — проверить, все ли кастомные наборы, на которые ссылается маска, реально объявлены в командной строке.

В этой статье разберём, что такое custom charset, чем он отличается от встроенных наборов символов, как правильно задавать его синтаксис и какие типичные ошибки допускают при составлении масок. Материал ориентирован на легальные сценарии: восстановление доступа к собственным паролям, аудит стойкости корпоративных хешей и тестирование в лабораторной среде.

Что такое custom charset простыми словами

Custom charset (пользовательский набор символов) — это явно перечисленный набор символов, который вы определяете сами и затем подставляете в маску перебора. В hashcat таких наборов может быть до четырёх: они задаются параметрами -1, -2, -3 и -4, а внутри маски обозначаются плейсхолдерами ?1, ?2, ?3 и ?4 соответственно.

Идея проста: вместо того чтобы перебирать все буквы и цифры подряд, вы говорите инструменту: «на этой позиции могут быть только символы из моего списка». Например, если вы точно помните, что пароль состоял только из строчных латинских букв и цифр 0–5, нет смысла перебирать заглавные буквы и спецсимволы — это сокращает объём работы на порядки.

💡

Custom charset — это способ сузить пространство перебора до реально возможных символов. Чем точнее набор, тем быстрее завершится атака по маске.