Cracking root user: автоматизация входа в root с помощью «su» от пользователя nonroot

Я хочу написать сценарий, который позволяет мне передать пароль команде su . Причиной этого является автоматизация процесса входа в root из учетной записи nonroot. Из моего основного понимания безопасности я знаю об этом. Мне все еще нужно это, чтобы попытаться взломать пароль пользователя root, читая пароли из файла.

Я слышал об использовании команды expect для автоматизации взаимодействий, но я не знаю, как это работает, или если это применимо в этой ситуации. Любая информация об использовании expect будет принята с благодарностью.

Обратите внимание, что sudo не является вариантом, так как мой пользователь не входит в список sudoer.

Вещи, которые я пробовал – Передача пароля при использовании труб. Не работает из-за ошибки "su must be used from terminal" Передача пароля с помощью echo Все, что было отражено, просто появлялось после ввода пароля

2 Solutions collect form web for “Cracking root user: автоматизация входа в root с помощью «su» от пользователя nonroot”

Вы можете использовать для этого работу. Сохраните следующее в файле, сделайте его исполняемым и запустите:

 #!/usr/bin/expect spawn su expect "Password:" send "YOUR_PASS\n" interact 

(Очевидно, вам нужно указать правильный путь для expect . Здесь я использовал /usr/bin/expect в качестве примера.)

Если YOUR_PASS является правильным корневым паролем, теперь вы должны иметь корневую оболочку. Если нет, вы получите отказ аутентификации.

Обратите внимание, что команда interact , вероятно, не понадобится в контексте полностью автоматизированного сценария, поскольку она дает контроль над процессом пользователю, то есть нажатия клавиш отправляются в текущий процесс, а stderr и stderr возвращаются.

Посмотрите, как man expect более подробного описания команд, spawn , expect , send и interact , а также многих других команд.

Надеюсь это поможет. 🙂

Выполнение этого "oneline style"

 expect -c 'spawn su - ;expect Password:;send "your-password\n";interact' 

Взгляните на вывод su - чтобы гарантировать, что это правильная фраза, которая появляется для захвата пароля. Я использую переведенную версию Linux здесь, поэтому слово будет «Сенха:» вместо «Пароль:».

  • expect -c '' : выполнить следующие действия для этой команды
  • spawn su - : выполнить эту команду
  • expect Password: слова, чтобы что-то сделать
  • send "your-password\n" : введите свой пароль, затем нажмите Enter
  • interact : поддерживать готовность к команде.
Linux и Unix - лучшая ОС в мире.