Linux Post-Exploitation

Reading time: 3 minutes

tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks

Sniffing Logon Passwords with PAM

Skonfigurujmy moduł PAM, aby rejestrować każde hasło, które użytkownik używa do logowania. Jeśli nie wiesz, czym jest PAM, sprawdź:

{{#ref}} pam-pluggable-authentication-modules.md {{#endref}}

Aby uzyskać więcej szczegółów, sprawdź oryginalny post. To tylko podsumowanie:

Przegląd techniki: Moduły uwierzytelniania pluggable (PAM) oferują elastyczność w zarządzaniu uwierzytelnianiem w systemach opartych na Unixie. Mogą zwiększyć bezpieczeństwo poprzez dostosowanie procesów logowania, ale również stwarzają ryzyko, jeśli są niewłaściwie używane. To podsumowanie przedstawia technikę przechwytywania danych logowania za pomocą PAM, wraz z strategiami łagodzenia.

Przechwytywanie danych uwierzytelniających:

  • Skrypt bash o nazwie toomanysecrets.sh jest tworzony w celu rejestrowania prób logowania, przechwytując datę, nazwę użytkownika ($PAM_USER), hasło (poprzez stdin) oraz adres IP zdalnego hosta ($PAM_RHOST) do /var/log/toomanysecrets.log.
  • Skrypt jest oznaczony jako wykonywalny i zintegrowany z konfiguracją PAM (common-auth) za pomocą modułu pam_exec.so z opcjami do cichego uruchamiania i ujawnienia tokena uwierzytelniającego skryptowi.
  • Podejście to pokazuje, jak skompromitowany host Linux może być wykorzystany do dyskretnego rejestrowania danych uwierzytelniających.
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

Aby uzyskać więcej szczegółów, sprawdź oryginalny post. To tylko podsumowanie:

Moduł Uwierzytelniania Pluggable (PAM) to system używany w systemie Linux do uwierzytelniania użytkowników. Działa na trzech głównych koncepcjach: nazwa użytkownika, hasło i usługa. Pliki konfiguracyjne dla każdej usługi znajdują się w katalogu /etc/pam.d/, gdzie biblioteki współdzielone obsługują uwierzytelnianie.

Cel: Zmodyfikować PAM, aby umożliwić uwierzytelnianie za pomocą określonego 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 do weryfikacji hasła.

Kroki do modyfikacji pam_unix.so:

  1. Zlokalizuj dyrektywę uwierzytelniania w pliku common-auth:
  • Linia odpowiedzialna za sprawdzanie hasła użytkownika wywołuje pam_unix.so.
  1. Zmodyfikuj kod źródłowy:
  • Dodaj instrukcję warunkową w pliku źródłowym pam_unix_auth.c, która przyznaje dostęp, jeśli używane jest zdefiniowane hasło, w przeciwnym razie kontynuuje zwykły proces uwierzytelniania.
  1. Przeładuj i zastąp zmodyfikowaną bibliotekę pam_unix.so w odpowiednim katalogu.
  2. Testowanie:
  • Dostęp jest przyznawany w różnych usługach (logowanie, ssh, sudo, su, wygaszacz ekranu) za pomocą zdefiniowanego hasła, podczas gdy normalne procesy uwierzytelniania pozostają nietknięte.

note

Możesz zautomatyzować ten proces za pomocą https://github.com/zephrax/linux-pam-backdoor

tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks