Введение
При тестировании на проникновение и аудите безопасности часто приходится применять несколько методов подбора паролей к набору хешей. Запуск каждой команды вручную может быть трудоемким и неэффективным. Скрипты Bash предоставляют мощный способ автоматизации этого процесса, создавая цепочку атак, которые выполняются последовательно до тех пор, пока пароль не будет найден.
В этой лабораторной работе вы создадите скрипт Bash для автоматизации серии атак с использованием hashcat — популярного и мощного инструмента для восстановления паролей. Вы научитесь структурировать скрипт для последовательного выполнения атаки по словарю, затем атаки с использованием правил и, наконец, атаки по маске. Этот практический опыт познакомит вас с основами автоматизации в контексте кибербезопасности.
По завершении этой лабораторной работы вы сможете:
- Создавать и делать скрипты Bash исполняемыми.
- Добавлять последовательность команд
hashcatв скрипт. - Понимать и реализовывать различные режимы атак
hashcat. - Выполнять скрипт для автоматизации рабочего процесса.
Создание нового файла скрипта Bash
На этом шаге вы создадите пустой файл скрипта Bash, добавите необходимую строку shebang и сделаете его исполняемым. Скрипт Bash — это обычный текстовый файл, содержащий последовательность команд. Строка shebang (#!/bin/bash) в начале скрипта указывает системе, какой интерпретатор использовать для выполнения команд внутри файла.
Сначала создайте новый файл с именем attack.sh в каталоге ~/project с помощью команды touch.
touch attack.sh
Далее откройте файл в текстовом редакторе nano, чтобы добавить строку shebang.
nano attack.sh
В редакторе nano добавьте следующую строку в начало файла. Это объявляет файл как скрипт Bash.
#!/bin/bash
Нажмите Ctrl+X, затем Y и Enter, чтобы сохранить файл и выйти из nano.
Наконец, вам нужно предоставить скрипту права на выполнение, чтобы вы могли запускать его как программу. Для этого используйте команду chmod с флагом +x.
chmod +x attack.sh
Вы можете проверить права доступа с помощью ls -l. Вы должны увидеть 'x' в блоке разрешений для attack.sh.
ls -l attack.sh
Ожидаемый вывод:
-rwxr-xr-x 1 labex labex 12 May 20 10:00 attack.sh
Добавление команды Hashcat для атаки по словарю
На этом шаге вы добавите первую команду в ваш скрипт: атаку по словарю. Это один из наиболее распространенных и эффективных методов подбора паролей. Он работает путем перебора каждого слова из заданного списка (словаря) в качестве потенциального пароля.
Для выполнения этой атаки мы будем использовать hashcat. Лабораторная среда предварительно настроена с файлом хешей hashes.txt и списком слов wordlist.txt.
Снова откройте ваш скрипт attack.sh с помощью nano.
nano attack.sh
Добавьте следующую команду hashcat под строкой #!/bin/bash.
hashcat -m 0 -a 0 /home/labex/project/hashes.txt /home/labex/project/wordlist.txt
Разберем эту команду:
hashcat: Программа, которую мы запускаем.-m 0: Указывает тип хеша.0соответствует MD5.-a 0: Указывает режим атаки.0соответствует прямой атаке по словарю./home/labex/project/hashes.txt: Файл, содержащий хеш(и) для взлома./home/labex/project/wordlist.txt: Файл словаря, используемый для атаки.
Теперь ваш файл attack.sh должен выглядеть следующим образом:
#!/bin/bash
hashcat -m 0 -a 0 /home/labex/project/hashes.txt /home/labex/project/wordlist.txt
Нажмите Ctrl+X, затем Y и Enter, чтобы сохранить и выйти. Пока мы только создаем скрипт и не будем его выполнять до финального шага.
Добавление второй команды для атаки по правилам
На этом шаге вы добавите вторую атаку в скрипт. Если атака по словарю не удалась, атака по правилам часто является следующим логичным шагом. Эта атака берет список слов и применяет к каждому слову набор правил для генерации новых кандидатов в пароли. Например, правило может добавлять "123" к каждому слову или делать первую букву заглавной.
Для этой демонстрации мы подготовили отдельный список слов wordlist_for_rule.txt и простой файл правил rules.txt.
Снова откройте attack.sh с помощью nano.
nano attack.sh
Добавьте следующую команду на новой строке, после команды атаки по словарю.
hashcat -m 0 -a 0 /home/labex/project/hashes.txt /home/labex/project/wordlist_for_rule.txt -r /home/labex/project/rules.txt
Новая часть этой команды:
-r /home/labex/project/rules.txt: Этот флаг указываетhashcatприменять правила, определенные в указанном файле.
Теперь ваш скрипт attack.sh должен содержать две команды hashcat:
#!/bin/bash
hashcat -m 0 -a 0 /home/labex/project/hashes.txt /home/labex/project/wordlist.txt
hashcat -m 0 -a 0 /home/labex/project/hashes.txt /home/labex/project/wordlist_for_rule.txt -r /home/labex/project/rules.txt
Нажмите Ctrl+X, Y и Enter, чтобы сохранить изменения. Теперь скрипт будет последовательно выполнять эти команды при запуске.
Добавление третьей команды для атаки по маске
На этом шаге вы добавите последний метод атаки в ваш скрипт: атаку по маске. Этот метод также известен как атака полным перебором (brute-force attack) и полезен, когда вы знаете что-то о структуре пароля, например, его длину или типы символов, которые он содержит.
Маска определяет структуру. Например, ?l обозначает строчную букву, ?u — заглавную букву, ?d — цифру, а ?s — специальный символ.
Откройте attack.sh в последний раз с помощью nano.
nano attack.sh
Добавьте следующую команду атаки по маске на новой строке в конце скрипта. Эта маска ?l?l?l?l?l?l?l?l будет перебирать все комбинации 8-символьных паролей из строчных букв.
hashcat -m 0 -a 3 /home/labex/project/hashes.txt ?l?l?l?l?l?l?l?l
Ключевые части этой команды:
-a 3: Устанавливает режим атаки на3, что соответствует атаке по маске.?l?l?l?l?l?l?l?l: Это сама маска, определяющая структуру пароля для тестирования.
Ваш полный скрипт attack.sh теперь должен выглядеть так:
#!/bin/bash
hashcat -m 0 -a 0 /home/labex/project/hashes.txt /home/labex/project/wordlist.txt
hashcat -m 0 -a 0 /home/labex/project/hashes.txt /home/labex/project/wordlist_for_rule.txt -r /home/labex/project/rules.txt
hashcat -m 0 -a 3 /home/labex/project/hashes.txt ?l?l?l?l?l?l?l?l
Сохраните файл и выйдите из nano, нажав Ctrl+X, Y и Enter. Ваш скрипт автоматизированной атаки теперь завершен.
Выполнение скрипта для автоматического запуска цепочки атак
На этом заключительном шаге вы выполните созданный вами скрипт. При запуске ./attack.sh оболочка последовательно выполнит команды внутри него. hashcat — умная программа; как только она взламывает хеш, она сохраняет результат в "potfile" (~/.local/share/hashcat/hashcat.potfile) и не пытается взломать его снова.
Теперь запустите скрипт из терминала.
./attack.sh
Скрипт начнет выполнение первой команды hashcat. Поскольку наш wordlist.txt содержит правильный пароль ("password"), первая атака будет успешной. Вы увидите вывод от hashcat во время его инициализации и выполнения.
Успешный запуск покажет статус Cracked. Поскольку пароль найден на первом шаге, hashcat добавит его в potfile. Последующие команды в скрипте будут выполнены, но hashcat увидит, что хеш уже взломан, и пропустит их.
Чтобы увидеть взломанный пароль, вы можете использовать опцию --show от hashcat.
hashcat -m 0 --show /home/labex/project/hashes.txt
Эта команда проверяет potfile на наличие взломанных хешей, соответствующих входному файлу, и отображает их.
Ожидаемый вывод:
5f4dcc3b5aa765d61d8327deb882cf99:password
Поздравляем! Вы успешно создали и выполнили Bash-скрипт для автоматизации цепочки атак по подбору паролей.
Резюме
В этой лабораторной работе вы изучили основы автоматизации задач безопасности с помощью Bash-скриптов. Вы успешно создали скрипт, который объединяет несколько техник взлома паролей hashcat.
Вы начали с создания нового файла Bash-скрипта и предоставления ему прав на выполнение. Затем вы последовательно добавили команды для словарной атаки, атаки с использованием правил и атаки по маске. Наконец, вы выполнили скрипт, чтобы увидеть его в действии, наблюдая, как hashcat эффективно находит пароль на первом этапе и записывает результат.
Ключевые навыки, которые вы отработали, включают:
- Создание базовых Bash-скриптов (
touch,chmod, shebang). - Использование
hashcatдля различных режимов атаки (-a 0,-a 3). - Реализация словарной атаки, атаки с использованием правил и атаки по маске.
- Автоматизация последовательности команд для создания эффективного рабочего процесса.
Этот подход к написанию скриптов и автоматизации является ключевым навыком в области кибербезопасности, системного администрирования и многих других ИТ-областях, позволяя выполнять сложные, повторяющиеся задачи одной командой.



