Взлом пароля root в Linux с помощью Sucrack и Hydra

Beginner

Введение

В этом лабораторном занятии (Lab) мы рассмотрим два метода и соответствующие инструменты для получения пароля суперпользователя (root) с помощью брутфорс-атак на системах Linux. Лабораторное занятие поможет вам понять основные принципы и избежать распространенных ошибок в процессе.

Использование sucrack для подбора корневого пароля с помощью команды su

На этом этапе мы узнаем, как использовать инструмент sucrack для брутфорса пароля суперпользователя (root) с помощью команды su.

Команда su используется для переключения на другого пользователя в системах Linux. За исключением суперпользователя (root), другие пользователи должны предоставить пароль целевого пользователя при использовании этой команды.

Инструмент, который мы будем использовать для брутфорса команды su, - это sucrack. sucrack - это многопоточный инструмент для Linux, разработанный для брутфорса локальных паролей пользователей с помощью команды su.

Поскольку команда su требует ввода пользователя из TTY-оболочки, простой сценарий (shell script) не может выполнить брутфорс-атаку. sucrack написан на языке C и поддерживает многопоточность, что делает процесс брутфорса очень эффективным.

Вы можете посетить официальный сайт sucrack для получения дополнительной информации.

В реальной ситуации на целевой машине может не быть доступа в Интернет, поэтому вы можете установить sucrack одним из двух следующих способов:

  • Скачайте исходный код sucrack и загрузите его на целевую машину, затем скомпилируйте и запустите.
  • Скачайте исходный код sucrack, скомпилируйте его локально, а затем загрузите скомпилированный бинарник на целевую машину.

В этом лабораторном занятии (Lab) мы уже установили sucrack для вас.

  1. Перед попыткой брутфорс-атаки мы настроим лабораторную среду:

    Откройте терминал и перейдите в директорию проекта:

    cd /home/labex/project

    Запустите скрипт env_setup_1.sh для настройки лабораторной среды:

    ./env_setup_1.sh

    Этот скрипт переключает нас на не привилегированного пользователя www-data. Наша цель - получить пароль суперпользователя (root) с помощью брутфорса.

    У нас есть предварительно подготовленный словарь по пути /tmp/common-wordlists.txt для демонстрации. Вы также можете использовать собственный словарь.

  2. Синтаксис для брутфорс-атаки на команду su с использованием sucrack выглядит следующим образом:

    sucrack -w <threads> [-u <username>] <wordlist>

    Параметры:

    • -w: Указывает количество потоков
    • <wordlist>: Указывает файл со словарём
    • -u: Указывает имя пользователя, для которого будет выполнен брутфорс. Если вы не укажете имя пользователя, sucrack по умолчанию будет пытаться подобрать пароль суперпользователя (root).

    Давайте попробуем выполнить брутфорс, запустив следующую команду:

    sucrack -w 20 /tmp/common-wordlists.txt > ~/sucrack.log && reset

    Вывод брутфорс-атаки перенаправляется в файл sucrack.log.

    Примечание: Команда reset используется для очистки экрана терминала, так как иногда после использования sucrack терминал может отображаться некорректно.

  3. Эта брутфорс-атака может занять некоторое время. Через некоторое время проверьте файл sucrack.log, чтобы подтвердить пароль:

    cat ~/sucrack.log

    Ожидаемый вывод:

    password is: really
  4. Затем мы можем переключиться на суперпользователя (root) с помощью команды:

    su - root

    Введите пароль really, чтобы переключиться на суперпользователя (root).

    really
  5. Создайте файл с именем success_1.txt в директории /root, чтобы подтвердить, что вы успешно переключились на суперпользователя (root):

    echo "Success_1" > /root/success_1.txt

    Вы можете проверить файл /root/success_1.txt, чтобы подтвердить, что вы успешно переключились на суперпользователя (root).

Вы научились использовать sucrack для брутфорса пароля суперпользователя (root)!

Использование Hydra для подбора корневого пароля по SSH

На этом этапе мы узнаем, как использовать инструмент hydra для брутфорса пароля суперпользователя (root) по протоколу SSH.

После предыдущего этапа мы по-прежнему должны быть суперпользователем (root), а для этого этапа нам нужно переключиться на пользователя labex. Вы можете переключиться на пользователя labex, запустив следующую команду:

su - labex
  1. Убедитесь, что текущая директория установлена на /home/labex/project:

    cd /home/labex/project

    Запустите скрипт env_setup_2.sh для настройки лабораторной среды:

    ./env_setup_2.sh

    Как и на предыдущем этапе, после выполнения этого скрипта вы переключитесь на пользователя www-data.

  2. Перед попыткой брутфорса протокола SSH нам нужно проверить, разрешает ли целевая машина вход суперпользователя (root) по протоколу SSH. Вы можете проверить это, запустив следующую команду:

    cat /etc/ssh/sshd_config | grep -i permitrootlogin

    Если в выводе показано, что параметр PermitRootLogin установлен в yes, то мы можем продолжить с брутфорс-атакой. В противном случае, нет смысла пытаться.

  3. Инструмент, который мы будем использовать для брутфорса протокола SSH, - это hydra. hydra - это известный инструмент для брутфорса, который поддерживает различные протоколы, включая RDP, SMB, HTTP, MySQL и другие. hydra предустановлен на Kali Linux и в нашей лабораторной среде на Ubuntu.

    Синтаксис для брутфорса протокола SSH с использованием hydra выглядит следующим образом:

    hydra -l root -P passwords.txt -t 4 -V < IP > ssh

    Параметры:

    • -l: Указывает имя пользователя
    • -P: Указывает файл со словарём
    • -t: Указывает количество потоков
    • -V: Отображает ход и детали брутфорс-атаки

    Давайте попробуем подобрать пароль суперпользователя (root) с использованием словаря /tmp/common-wordlists.txt и сохраним вывод в файл hydra.log:

    hydra -l root -P /tmp/common-wordlists.txt -t 64 -V 127.0.0.1 ssh > ~/hydra.log

    Через некоторое время пароль суперпользователя (root) будет успешно подобрать.

    Проверьте файл hydra.log, чтобы подтвердить пароль:

    cat ~/hydra.log

    Пример вывода:

    ...
    [22][ssh] host: 127.0.0.1   login: root   password: penguin
    1 of 1 target successfully completed, 1 valid password found
    ...
  4. Теперь, когда у нас есть пароль суперпользователя (root), мы можем переключиться на него, запустив следующую команду:

    su - root

    Введите пароль penguin, чтобы переключиться на суперпользователя (root).

    penguin

    Теперь вы должны быть суперпользователем (root). Вы можете подтвердить это, запустив следующую команду:

    whoami

    Вывод должен быть root.

  5. Создайте файл с именем success_2.txt в директории /root, чтобы подтвердить, что вы успешно переключились на суперпользователя (root):

    echo "Success_2" > /root/success_2.txt

    Вы можете проверить файл /root/success_2.txt, чтобы подтвердить, что вы успешно переключились на суперпользователя (root).

Примечание: Если вы используете версию hydra старше v9.0, при брутфорсе протокола SSH могут появляться ложноположительные результаты. Вы можете проверить версию hydra, запустив команду hydra -v.

Резюме

В этом лабораторном занятии (Lab) мы изучили два метода для брутфорса пароля суперпользователя (root) в системах Linux: с помощью команды su с использованием инструмента sucrack и по протоколу SSH с использованием инструмента hydra. Мы рассмотрели установку, использование и пошаговые процедуры для каждого метода, помогая вам понять основные принципы и избежать распространенных ошибок. Это лабораторное занятие предоставляет ценный практический опыт в применении методов повышения привилегий, которые могут быть использованы в различных сценариях.