Linux Post-Exploitation
Podsłuchiwanie 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, czym jest PAM, sprawdź:
pagePAM - Pluggable Authentication ModulesAby uzyskać więcej szczegółów, sprawdź oryginalny post. Oto tylko streszczenie:
Przegląd techniki: Pluggable Authentication Modules (PAM) oferują elastyczność w zarządzaniu uwierzytelnianiem w systemach opartych na Unixie. Mogą zwiększać bezpieczeństwo poprzez dostosowywanie procesów logowania, ale mogą również stanowić ryzyko w przypadku niewłaściwego użycia. To streszczenie przedstawia technikę przechwytywania danych uwierzytelniających za pomocą PAM oraz strategie łagodzenia zagrożeń.
Przechwytywanie danych uwierzytelniających:
Tworzony jest skrypt bash o nazwie
toomanysecrets.sh
, który rejestruje próby logowania, przechwytując datę, nazwę użytkownika ($PAM_USER
), hasło (przez stdin) i adres IP zdalnego hosta ($PAM_RHOST
) do pliku/var/log/toomanysecrets.log
.Skrypt jest wykonywalny i integrowany z konfiguracją PAM (
common-auth
) za pomocą modułupam_exec.so
z opcjami cichego uruchamiania i ujawniania tokena uwierzytelniania skryptowi.Ta metoda pokazuje, jak wykorzystać skompromitowany host Linux do dyskretnego rejestrowania danych uwierzytelniających.
Backdooring PAM
Aby uzyskać więcej szczegółów, sprawdź oryginalny post. Oto tylko streszczenie:
Pluggable Authentication Module (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. Skupiamy się 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.
Kroki do modyfikacji pam_unix.so
:
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 udziela dostępu, jeśli używane jest określone hasło, w przeciwnym razie kontynuuje zwykły proces uwierzytelniania.
Skompiluj ponownie i zastąp zmodyfikowaną bibliotekę
pam_unix.so
w odpowiednim katalogu.Testowanie:
Dostęp jest udzielany w różnych usługach (logowanie, ssh, sudo, su, wygaszacz ekranu) za pomocą określonego hasła, podczas gdy normalne procesy uwierzytelniania pozostają niezmienione.
Możesz zautomatyzować ten proces za pomocą https://github.com/zephrax/linux-pam-backdoor
Last updated