Želite dobiti superkorisnički pristup Linux sustavu? Ovdje su neki od najboljih načina za nabrajanje Linux stroja.

Nabrajanje je jedna od ključnih faza penetracijskog testiranja. To je prva stvar koju trebate učiniti kada ste ugrozili ciljni sustav kao ispitivač penetracije. Iako postoji mnoštvo alata za automatizaciju ovog procesa, uvijek se preporučuje ručno pregledati i još jednom provjeriti sustav za potencijalne vektore eskalacije privilegija.

Pogledajmo različite načine ručnog numeriranja Linux sustava za eskalaciju privilegija.

Zašto je nabrajanje važno za eskalaciju privilegija?

Eskalacija privilegija, također poznata kao Eskalacija privilegija (EOP) ključna je komponenta testiranja prodora i metodologije testiranja prodora. Kao što ime sugerira, to je faza u kojoj pokušavate podići svoje privilegije na administratora ili, u Linux sustavima, na root korisnika.

Da biste dobili root privilegije, prvo morate pronaći ranjivost u sustavu. Ovdje dolazi do izražaja nabrajanje. Iako postoje alati za automatiziranje enumeracije, najčešće ručno i temeljito enumeriranje može otkriti pogrešne konfiguracije i druge ranjivosti koje alati ne otkrivaju.

instagram viewer

1. Popisivanje sustava

Prva stvar koju biste trebali učiniti nakon što ste stekli početno uporište je naučiti više o sustavu kojem ste uspostavili pristup. To će vam pomoći da optimizirate svoje korisničke podatke kako bi odgovarali arhitekturi i osigurali maksimalnu kompatibilnost vaših korisnih opterećenja s ciljnim sustavom.

Na primjer, ako imate 64-bitni exploit, trebali biste ga modificirati ako vaš ciljni sustav podržava samo 32-bitni softver jer postoji razlika između 32-bitnih i 64-bitnih sustava.

Također, poznavanje verzije kernela pomoći će vam u potrazi za exploit-ima na webu u slučaju da otkrijete da je verzija zastarjela i ranjiva na javni exploit. Evo nekoliko naredbi koje će vam pomoći u dohvaćanju informacija o sustavu:

Da biste pronašli informacije o sustavu kao što su verzija kernela, izdanje OS-a itd., upišite:

mačka /etc/cpuinfo 
uname -a

Ako želite saznati više o CPU arhitekturi, koristite naredbu lscpu:

lscpu

2. Proces nabrajanja

Procesi su programi u izvršavanju. Poznavanje kompletnog popisa procesa na Linux sustavu, zajedno s nekoliko drugih taktika nabrajanja spomenuti u ovom vodiču pomoći će vam identificirati potencijalno ranjive procese i iskoristiti ih za podizanje privilegija.

Na primjer, ako pronađete proces koji se izvodi s root privilegijama, možda ćete moći ubaciti proizvoljni kod u njega što bi moglo dovesti do uspješne eskalacije privilegija.

Možeš koristiti naredba ps s pomoćni zastavice za popis svih procesa u sustavu:

ps pom

3. Popisivanje korisnika i grupa

Popisivanje korisnika i grupa važno je kako bi se utvrdilo tko ima pristup kojem dijelu sustava. Poznavanje toga omogućuje vam učinkovito promatranje ciljeva i izgradnju učinkovite strategije napada. Štoviše, možete izraditi odgovarajuća mapiranja i dubinski razumjeti uloge i privilegije svakog računa.

Vidljivost povlaštenih računa omogućuje vam isprobavanje poznatih kombinacija korisničkog imena i lozinke. Možete ispisati sadržaj /etc/passwd i /etc/group datoteke za pristup popisu korisnika. Alternativno, također možete koristiti naredbu getent.

Do dobiti popis korisnika na Linuxu:

getent passwd

Da biste dobili popis grupa:

grupa getent

4. Istraživanje osjetljivih datoteka

Osjetljive datoteke kao što su /etc/passwd i /etc/shadow može potencijalno procuriti mnogo informacija. Iz /etc/shadow možete pronaći hashove lozinki korisnika i pokušati ih razbiti pomoću alata za razbijanje hash-a kao što su Hashcat ili John the Ripper.

Tu je i /etc/sudoers datoteku, koja će, ako je možete nekako urediti, omogućiti izmjenu sudo dopuštenja za korisnike i grupe.

5. Provjera sudo dopuštenja

Ispravno upravljanje sudo dozvolama ključno je za sigurnost Linux sustava. Analiza dopuštenja za sudo omogućit će vam uvid u potencijalne vektore za eskalaciju privilegija. Ako postoje pogrešne konfiguracije kao što su neki programi koji imaju alarmantnu razinu privilegija, možda biste ih mogli iskoristiti za dobivanje root pristupa.

Ovo je samo primjer mnogih putova napada koji se mogu otvoriti nakon što imate jasne sudo dozvole u sustavu Linux. Drugi primjer bi bio zlouporaba mehanizma predučitavanja biblioteke LD_PRELOAD, koji možete nabrojati gledajući sudo dozvole.

sudo -l

6. Pronalaženje eksploatacija jezgre Linuxa

Iskorištavanja Linux kernela su smrtonosna jer napadaju jezgru OS-a koji radi na kompromitiranom sustavu. Uz kritičnu grešku u jezgri, moći ćete učiniti gotovo sve sa sustavom.

Da biste pronašli iskorištavanje kernela, prvo saznajte verziju kernela, a zatim pomoću alata kao što je searchsploit ili, koristeći Google Dorks, pronađite odgovarajući exploit koji utječe na točnu verziju kernela koji radi na sustavu.

7. Iskorištavanje SUID binarnih datoteka

SUID je skraćenica za Set Owner User ID upon execution. To je posebna vrsta dozvole za datoteku koja, kada je postavljena, izvršava program s privilegijama svog vlasnika.

Ako je program kreirao root korisnik i za njega je bio postavljen SUID bit, program bi, kada se izvrši, imao root privilegije. Kako se SUID može zloupotrijebiti? Jednostavno je.

Navedite sve binarne datoteke s postavljenim SUID bitovima, pretražite popis, pronađite binarnu datoteku za koju imate pristup pisanju i uredite njen izvor kako biste dodali svoj sadržaj. Možete koristiti naredbu find za traženje SUID binarnih datoteka i preusmjeravanje standardnog izlaza na /dev/null:

pronađi / -perm -4000 2>/dev/null

8. Otimanje knjižnica

Ponekad na sustavu mogu biti pokrenuti programi koji koriste biblioteke koje nisu zaštićene od pisanja. U takvom scenariju možete jednostavno prebrisati biblioteku koja se koristi i preuzeti kontrolu nad funkcionalnošću programa.

Ako imate sreće i pronađete program koji radi kao root, mogli biste preoteti biblioteku o kojoj ovisi i potencijalno dobiti pristup root shell-u.

9. Istraživanje i otimanje varijabli okoline

Varijable okruženja su posebne vrste varijabli koje u određenoj mjeri definiraju način funkcioniranja sustava i programa. Važna varijabla okruženja je varijabla PATH.

Pohranjuje lokaciju svih izvršnih binarnih datoteka u sustavu. Možete manipulirati varijablom PATH i povezati je s drugim ranjivostima kao što je otmica knjižnice kako biste dobili root pristup.

Na primjer, pretpostavimo da postoji izvršna datoteka s postavljenim SUID bitovima. Da bi pravilno funkcionirao, poziva binarnu datoteku bez definiranja njezine pune staze.

Ovo možete iskoristiti stvaranjem duplicirane, zlonamjerne verzije binarne datoteke i ažuriranjem varijable PATH s lokacijom zlonamjerna binarna datoteka tako da kada se SUID izvršna datoteka pokrene, vaša zlonamjerna binarna datoteka bit će pokrenuta kao root, a vi ćete moći stvoriti root shell.

Štoviše, postoji i dobra šansa za pronalaženje tajnih ključeva i lozinki jednostavnim pregledom varijabli okoline. Možete ispisati sve varijable okoline pomoću naredbe env:

okruženje

10. Pronađite artefakte u Bash povijesti

Često se povijest trenutnog korisnika neće izbrisati. To možete zloupotrijebiti kako biste potencijalno dobili pristup osjetljivim informacijama ili ponovno pokrenuli prethodne naredbe s izmijenjenim parametrima.

Iako to vjerojatno neće dovesti do eskalacije privilegija, to je dobar izvor curenja informacija koji vam daje jasnoću o tome što korisnik obično radi na sustavu.

11. Otimanje ranjivih Cron poslova

Cron poslovi su ugrađena i vrlo snalažljiva značajka Linuxa. Ako ste migrirali iz Windowsa, cron posao se može izravno usporediti s planiranim zadatkom u Windowsima.

Periodički se pokreće i izvršava naredbe. I vrijeme kada će se pokrenuti i naredbe koje će izvršavati su unaprijed definirani od strane korisnika. Ponekad možete pronaći nekoliko cron poslova ranjivih na napade poput ubacivanja zamjenskih znakova ili ih može pisati korisnik pod kojim ste se prijavili.

Možete zloupotrijebiti ove ranjivosti kako biste dobili root pristup sustavu. Da biste iskoristili cron posao, prvo morate pronaći ranjivi. Evo naredbi za popis trenutno pokrenutih cron poslova i drugih relevantnih podataka:

ls /etc/cron.d/
crontab -l -u

12. Ispis zastarjelih paketa

Kada ste uspostavili pristup sustavu, jedan od prvih koraka koji biste trebali poduzeti je popis svih instaliranih softverskih paketa i zbroj njihovih instaliranih verzija s njihovim najnovijim izdanjem.

Postoji mogućnost da je instaliran neki opskurni paket koji se možda ne koristi previše, ali je kritično ranjiv na napad eskalacije privilegija. Tada možete iskoristiti taj paket za dobivanje root pristupa.

Koristite naredbu dpkg s -l oznaka za popis instaliranih paketa na sustavima temeljenim na Debianu i Ubuntuu:

dpkg -l

Za sustave RHEL/CentOS/Fedora koristite ovu naredbu za popis instaliranih paketa:

broj okretaja u minuti -qa 

Sada znate kako ručno nabrojati Linux za eskalaciju privilegija

Eskalacija privilegija ovisi isključivo o enumeraciji. Što više informacija imate pristup, to ćete bolje moći isplanirati svoje strategije napada.

Učinkovito nabrajanje ključno je za uspostavljanje uporišta, povećanje privilegija i uspješno ustrajanje na vašem ciljnom sustavu. Iako ručno obavljanje stvari pomaže, neki od zadataka mogu se dodijeliti automatiziranim alatima radi uštede vremena i truda. Morate znati koji su najbolji sigurnosni alati za skeniranje sustava u potrazi za ranjivostima.