Linux Post-Exploitation
Snimanje lozinki za prijavljivanje pomoću PAM-a
Konfigurišimo PAM modul da beleži svaku lozinku koju korisnik koristi za prijavljivanje. Ako ne znate šta je PAM, proverite:
pagePAM - Pluggable Authentication ModulesZa dodatne detalje proverite originalni post. Ovo je samo sažetak:
Pregled tehnike: Pluggable Authentication Modules (PAM) pružaju fleksibilnost u upravljanju autentifikacijom na Unix baziranim sistemima. Mogu poboljšati bezbednost prilagođavanjem procesa prijavljivanja, ali takođe mogu predstavljati rizike ako se zloupotrebljavaju. Ovaj sažetak opisuje tehniku za snimanje podataka za prijavljivanje pomoću PAM-a, zajedno sa strategijama za ublažavanje rizika.
Snimanje podataka za prijavljivanje:
Napravljen je bash skript nazvan
toomanysecrets.sh
koji beleži pokušaje prijavljivanja, snimajući datum, korisničko ime ($PAM_USER
), lozinku (putem stdin-a) i IP adresu udaljenog hosta ($PAM_RHOST
) u/var/log/toomanysecrets.log
.Skript je postavljen kao izvršiv i integrisan u PAM konfiguraciju (
common-auth
) koristeći modulpam_exec.so
sa opcijama za tiho izvršavanje i izlaganje autentifikacionog tokena skripti.Ovaj pristup pokazuje kako se kompromitovan Linux host može iskoristiti za diskretno beleženje podataka za prijavljivanje.
Backdooring PAM
Za dalje detalje pogledajte originalni post. Ovo je samo sažetak:
Pluggable Authentication Module (PAM) je sistem koji se koristi pod Linuxom za autentifikaciju korisnika. Radi na tri osnovna koncepta: korisničko ime, lozinka i servis. Konfiguracioni fajlovi za svaki servis se nalaze u direktorijumu /etc/pam.d/
, gde se autentifikacija vrši pomoću deljenih biblioteka.
Cilj: Modifikovati PAM kako bi se omogućila autentifikacija sa određenom lozinkom, zaobilazeći stvarnu korisničku lozinku. Poseban fokus je na deljenoj biblioteci pam_unix.so
koja se koristi u fajlu common-auth
, a koja se uključuje u skoro sve servise radi provere lozinke.
Koraci za modifikaciju pam_unix.so
:
pam_unix.so
:Locirajte direktivu za autentifikaciju u fajlu
common-auth
:
Linija koja proverava korisničku lozinku poziva
pam_unix.so
.
Modifikujte izvorni kod:
Dodajte uslovnu izjavu u izvorni fajl
pam_unix_auth.c
koja omogućava pristup ako se koristi unapred definisana lozinka, inače se nastavlja sa uobičajenim procesom autentifikacije.
Rekompajlirajte i zamenite modifikovanu biblioteku
pam_unix.so
u odgovarajućem direktorijumu.Testiranje:
Pristup je omogućen putem različitih servisa (login, ssh, sudo, su, screensaver) sa unapred definisanom lozinkom, dok uobičajeni procesi autentifikacije ostaju nepromenjeni.
Ovaj proces možete automatizovati pomoću https://github.com/zephrax/linux-pam-backdoor
Last updated