Linux Post-Exploitation
Przechwytywanie haseł logowania za pomocą PAM
Skonfigurujmy moduł PAM, aby rejestrował każde hasło, które użytkownik używa do logowania. Jeśli nie wiesz, co to jest PAM, sprawdź:
PAM - Pluggable Authentication ModulesAby uzyskać więcej szczegółów, sprawdź oryginalny post. To tylko streszczenie:
Przegląd techniki: Mobilne moduły uwierzytelniania (PAM) oferują elastyczność w zarządzaniu uwierzytelnianiem w systemach opartych na Unixie. Mogą zwiększyć bezpieczeństwo poprzez dostosowywanie procesów logowania, ale także stanowią ryzyko w przypadku niewłaściwego użycia. To streszczenie przedstawia technikę przechwytywania danych logowania za pomocą PAM, wraz z strategiami łagodzenia zagrożeń.
Przechwytywanie danych logowania:
Skrypt bash o nazwie
toomanysecrets.sh
jest tworzony, aby rejestrować próby logowania, przechwytując datę, nazwę użytkownika ($PAM_USER
), hasło (przez stdin) i adres IP zdalnego hosta ($PAM_RHOST
) do/var/log/toomanysecrets.log
.Skrypt jest ustawiany jako wykonywalny i integrowany z konfiguracją PAM (
common-auth
) za pomocą modułupam_exec.so
z opcjami uruchamiania w trybie cichym i ujawniania tokenu uwierzytelniania skryptowi.Ta metoda pokazuje, jak skompromitowany host Linux może być wykorzystany do dyskretnego rejestrowania danych uwierzytelniających.
Backdooring PAM
Aby uzyskać dalsze szczegóły, sprawdź oryginalny post. To tylko streszczenie:
Moduł Autoryzacji Podstawowej (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: Zmodyfikuj 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
:
pam_unix.so
:Zlokalizuj Dyrektywę Autoryzacji 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 udziela dostępu, jeśli użyte jest predefiniowane hasło, w przeciwnym razie kontynuuje zwykły proces uwierzytelniania.
Przebuduj i Zamień zmodyfikowaną bibliotekę
pam_unix.so
w odpowiednim katalogu.Testowanie:
Dostęp jest udzielany w różnych usługach (logowanie, ssh, sudo, su, zabezpieczenie ekranu) za pomocą predefiniowanego hasła, podczas gdy normalne procesy uwierzytelniania pozostają nienaruszone.
Możesz zautomatyzować ten proces za pomocą https://github.com/zephrax/linux-pam-backdoor
Last updated