Linux Post-Exploitation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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ź:
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ć wykorzystywany do dyskretnego rejestrowania danych uwierzytelniających.
Aby uzyskać więcej szczegółów, sprawdź oryginalny post. To jest 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.
pam_unix.so
:Zlokalizuj dyrektywę uwierzytelniania w pliku common-auth
:
Linia odpowiedzialna za sprawdzanie hasła użytkownika wywołuje pam_unix.so
.
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.
Przeprowadź rekompilację i zastąp zmodyfikowaną bibliotekę pam_unix.so
w odpowiednim katalogu.
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.
Możesz zautomatyzować ten proces za pomocą https://github.com/zephrax/linux-pam-backdoor
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)