2

Я работаю над эксплойтом для курса безопасности. Цель состоит в том, чтобы получить корневую оболочку в виртуальной машине Linux. Пока что я могу написать в /etc /passwd и изменить пароль root на произвольную строку.

Теперь я хочу использовать su, чтобы получить корневую оболочку. Поскольку мой эксплойт должен быть автоматизирован, он не может запрашивать пароль, а виртуальная машина не ожидает установки. У кого-нибудь есть идеи, как я могу передать пароль команде su? Или есть лучший способ?

2 ответа2

0

Лучший способ автоматизировать этот тип входа, использует expect или лучше pexpect большинство серверов поставляются с Python, по крайней мере, с современным дистрибутивом.

Во- первых вы сказали , что ваша VM не установлена expect Я не уверен, почему это важно. Есть ли причина, по которой вы не можете установить / выполнить что-либо под своей локальной учетной записью?

Следующее соображение, почему вы должны даже использовать passwd??? Вы также можете изменить пароль, заменив хеш, указанный в /etc/shadow . Очевидно, что вам сначала нужно правильно сгенерировать хеш, но если вы используете поддерживаемый хэш, он должен работать как положено. Теперь, как бы вы написали такое действие, это упражнение для вас.

Я также хочу упомянуть, что passwd не читает входные данные из STDIN. Если я не ошибаюсь, это читает из tty. Так что никакое необычное сочетание просто echo и sleep не сработает. Однако возможно использование HEREDOC, но предполагается, что система достаточно отзывчива. Вы можете разбить его и sleep между входами. Я только что проверил это, оно работало на моей рабочей станции Ubuntu.

#!/bin/bash
passwd root <<'EOF'
newpassword
newpassword
EOF
-2

Ваш эксплойт может также записать файл групп и сделать текущего пользователя частью группы «wheel» (или любой другой группы, которая может запускать команды sudo без пароля). Тогда вы сможете использовать sudo su root (или любого другого пользователя) без пароля.

Запуск visudo должен дать вам некоторое представление о настройке группы «wheel» на вашей машине.

Для пояснения: как только пользователь становится частью группы wheel, он может запускать команды sudo без ввода пароля.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .