Возможно ли защититься от локального брутфорса?
Всем доброго времени суток, оказывается при запуске команды с помощью sudo
можно автоматически вводить пароль от него путём передаче аргемента S и использования туннеля |
в сочетании с команды вывода:
echo пароль | sudo -S команда
Вопрос: что мешает написать sh / bash скрипт, перебирающий заранее сгенерированные комбинации паролей или возможно "на лету"?
Например:
#!/bin/sh
for i in "12345" 1 2 3 4 5 1000 12345 "qweqwe"
do
echo $i | sudo -S cat rootFile.txt
done
Где rootFile.txt - текстовый файл, недоступный текущему пользователю:
$ ll rootFile.txt
-rwx------ 1 root root 14 июн 8 08:33 rootFile.txt*
$ who
maxsmg tty1 2024-06-07 08:43 (:0)
maxsmg pts/0 2024-06-07 08:43 (:0)
maxsmg pts/1 2024-06-08 08:48 (:0)
На данном скриншоте видно, что в последний вариант пароля правильный и выводится текстовое описание файла rootFile.txt
- Hello, World!
Ответы (1 шт):
Вы можете включить pam_tally2
для пользователей.
Для этого отредактируйте /etc/pam.d/login
или /etc/pam.d/system-auth
, после всех auth
добавьте:
auth required pam_tally2.so deny=3 even_deny_root unlock_time=120
После 3-х неудачных попыток пользователь будет заблокирован на 120 секунд.
Подробнее, смотри $ man pam_tally2