# Linux Post-Exploitation {{#include ../../banners/hacktricks-training.md}} ## Sniffing Logon Passwords with PAM Hajde da konfigurišemo PAM modul da beleži svaku lozinku koju korisnik koristi za prijavu. Ako ne znaš šta je PAM, proveri: {{#ref}} pam-pluggable-authentication-modules.md {{#endref}} **Za više detalja proveri [originalni post](https://embracethered.com/blog/posts/2022/post-exploit-pam-ssh-password-grabbing/)**. Ovo je samo sažetak: **Pregled tehnike:** Pluggable Authentication Modules (PAM) nude fleksibilnost u upravljanju autentifikacijom na Unix-baziranim sistemima. Mogu poboljšati bezbednost prilagođavanjem procesa prijave, ali takođe predstavljaju rizike ako se zloupotrebe. Ovaj sažetak opisuje tehniku za hvatanje prijavnih podataka koristeći PAM, zajedno sa strategijama ublažavanja. **Hvatanje podataka:** - Bash skripta pod nazivom `toomanysecrets.sh` je napravljena da beleži pokušaje prijave, hvatajući datum, korisničko ime (`$PAM_USER`), lozinku (putem stdin) i IP adresu udaljenog hosta (`$PAM_RHOST`) u `/var/log/toomanysecrets.log`. - Skripta je učinjena izvršnom i integrisana u PAM konfiguraciju (`common-auth`) koristeći `pam_exec.so` modul sa opcijama da se izvršava tiho i izloži autentifikacioni token skripti. - Ovaj pristup pokazuje kako se kompromitovani Linux host može iskoristiti za diskretno beleženje podataka o prijavi. ```bash #!/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 **Za više detalja pogledajte [originalni post](https://infosecwriteups.com/creating-a-backdoor-in-pam-in-5-line-of-code-e23e99579cd9)**. Ovo je samo sažetak: Pluggable Authentication Module (PAM) je sistem koji se koristi pod Linux-om za autentifikaciju korisnika. Operiše na tri glavna koncepta: **korisničko ime**, **lozinka** i **usluga**. Konfiguracione datoteke za svaku uslugu se nalaze u direktorijumu `/etc/pam.d/`, gde deljene biblioteke obrađuju autentifikaciju. **Cilj**: Modifikovati PAM da omogući autentifikaciju sa specifičnom lozinkom, zaobilazeći stvarnu korisničku lozinku. Ovo je posebno fokusirano na `pam_unix.so` deljenu biblioteku koja se koristi u `common-auth` datoteci, koja je uključena u skoro sve usluge za verifikaciju lozinke. ### Koraci za modifikaciju `pam_unix.so`: 1. **Pronađite Direktivu za Autentifikaciju** u `common-auth` datoteci: - Linija koja je odgovorna za proveru korisničke lozinke poziva `pam_unix.so`. 2. **Modifikujte Izvorni Kod**: - Dodajte uslovnu izjavu u `pam_unix_auth.c` izvornoj datoteci koja omogućava pristup ako se koristi unapred definisana lozinka, u suprotnom, nastavlja se sa uobičajenim procesom autentifikacije. 3. **Ponovo Kompajlirajte i Zamenite** modifikovanu `pam_unix.so` biblioteku u odgovarajućem direktorijumu. 4. **Testiranje**: - Pristup se odobrava kroz razne usluge (prijavljivanje, ssh, sudo, su, zaštita ekrana) sa unapred definisanom lozinkom, dok normalni procesi autentifikacije ostaju nepromenjeni. > [!TIP] > Možete automatizovati ovaj proces sa [https://github.com/zephrax/linux-pam-backdoor](https://github.com/zephrax/linux-pam-backdoor) {{#include ../../banners/hacktricks-training.md}}