Автоматизация взлома с помощью Bash-скрипта

LinuxBeginner
Практиковаться сейчас

Введение

При тестировании на проникновение и аудите безопасности часто приходится применять несколько методов подбора паролей к набору хешей. Запуск каждой команды вручную может быть трудоемким и неэффективным. Скрипты 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).
  • Реализация словарной атаки, атаки с использованием правил и атаки по маске.
  • Автоматизация последовательности команд для создания эффективного рабочего процесса.

Этот подход к написанию скриптов и автоматизации является ключевым навыком в области кибербезопасности, системного администрирования и многих других ИТ-областях, позволяя выполнять сложные, повторяющиеся задачи одной командой.