Linux Post-Exploitation
Last updated
Last updated
Dowiedz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Dowiedz się i ćwicz Hacking GCP: 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, 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łu pam_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.
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.
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
Dowiedz się i ćwicz Hacking w AWS:HackTricks Training AWS Red Team Expert (ARTE) Dowiedz się i ćwicz Hacking w GCP: HackTricks Training GCP Red Team Expert (GRTE)