Linux Post-Exploitation
Last updated
Last updated
Вивчайте та практикуйте хакінг AWS: Навчання AWS Red Team Expert (ARTE) від HackTricks Вивчайте та практикуйте хакінг GCP: Навчання GCP Red Team Expert (GRTE) від HackTricks
Давайте налаштуємо модуль 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), є системою, що використовується в Linux для аутентифікації користувачів. Він працює на трьох основних концепціях: ім'я користувача, пароль та сервіс. Файли конфігурації для кожного сервісу розташовані в каталозі /etc/pam.d/
, де спільні бібліотеки відповідають за аутентифікацію.
Мета: Змінити PAM для можливості аутентифікації за допомогою конкретного пароля, обходячи фактичний пароль користувача. Це особливо актуально для спільної бібліотеки pam_unix.so
, яку використовує файл common-auth
, що включений майже у всі сервіси для перевірки пароля.
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