Linux Post-Exploitation
Підловлення паролів для входу за допомогою PAM
Давайте налаштуємо модуль PAM для реєстрації кожного пароля, який використовує кожен користувач для входу. Якщо ви не знаєте, що таке PAM, перегляньте:
PAM - Pluggable Authentication ModulesДля отримання додаткових відомостей перегляньте оригінальний пост. Це лише краткий огляд:
Огляд техніки: Модулі підключення аутентифікації (PAM) пропонують гнучкість у керуванні аутентифікацією в системах на основі Unix. Вони можуть підвищити безпеку, налаштовуючи процеси входу, але також створюють ризики у разі некоректного використання. Цей огляд наводить техніку захоплення облікових даних для входу за допомогою PAM, разом зі стратегіями пом'якшення наслідків.
Захоплення облікових даних:
Створено сценарій bash під назвою
toomanysecrets.sh
, щоб реєструвати спроби входу, захоплюючи дату, ім'я користувача ($PAM_USER
), пароль (через stdin) та IP-адресу віддаленого хоста ($PAM_RHOST
) у файл/var/log/toomanysecrets.log
.Сценарій зроблено виконуваним та інтегровано в конфігурацію PAM (
common-auth
) за допомогою модуляpam_exec.so
з опціями для тихого запуску та викладення токену аутентифікації сценарію.Підхід демонструє, як скомпрометований хост Linux може бути використаний для конфіденційного реєстрування облікових даних.
Додавання задніх дверей в PAM
Для отримання додаткової інформації перегляньте оригінальний пост. Це лише краткий опис:
Модуль аутентифікації, який можна підключати (PAM), є системою, що використовується в Linux для аутентифікації користувачів. Він працює на трьох основних концепціях: ім'я користувача, пароль та сервіс. Файли конфігурації для кожного сервісу розташовані в каталозі /etc/pam.d/
, де спільні бібліотеки відповідають за аутентифікацію.
Мета: Змінити PAM для можливості аутентифікації за допомогою конкретного пароля, обходячи фактичний пароль користувача. Це особливо актуально для спільної бібліотеки pam_unix.so
, яку використовує файл common-auth
, що включений майже у всі сервіси для перевірки пароля.
Кроки для модифікації pam_unix.so
:
pam_unix.so
:Знайдіть директиву аутентифікації у файлі
common-auth
:
Рядок, що відповідає за перевірку пароля користувача, викликає
pam_unix.so
.
Змініть вихідний код:
Додайте умовний оператор у вихідний файл
pam_unix_auth.c
, який надає доступ, якщо використовується попередньо визначений пароль, в іншому випадку продовжується звичайний процес аутентифікації.
Перекомпілюйте та замініть змінену бібліотеку
pam_unix.so
у відповідному каталозі.Тестування:
Доступ надається до різних сервісів (логін, ssh, sudo, su, заставка) за допомогою попередньо визначеного пароля, тоді як звичайні процеси аутентифікації залишаються незмінними.
Ви можете автоматизувати цей процес за допомогою https://github.com/zephrax/linux-pam-backdoor
Last updated