Linux Post-Exploitation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Давайте налаштуємо модуль 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-хост може бути використаний для тихого запису облікових даних.
Для отримання додаткової інформації перегляньте оригінальний пост. Це лише резюме:
Pluggable Authentication Module (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
Вчіться та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)