Как я могу автоматически передать пароль 'su'?

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

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

2 ответа

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

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

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

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

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

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

Бег visudo должен дать вам некоторые указания по настройке группы "wheel" на вашей машине.

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

Другие вопросы по тегам