Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Razlike

Slijede razlike između dviju inačica stranice.

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
racfor_wiki:razno:eskalacija_privilegija_na_linux_operacijskom_sustavu [2022/01/05 16:06]
vgrozdanic [Najčešći postupci eskalacije privilegija na Linux OS-u]
racfor_wiki:razno:eskalacija_privilegija_na_linux_operacijskom_sustavu [2023/06/19 18:17] (trenutno)
Redak 11: Redak 11:
  
 ===== Što je eskalacija privilegija ===== ===== Što je eskalacija privilegija =====
-Eskalacija privilegija (//privilege escalation//) je proces u kojem se iskorištava pogreška (//bug//), mana u dizajnu (//design flaw//) ili pogreška u konfiguraciji opereacijskog sustava ili neke aplikacije kako bi se dobila viša razina pristupa nekom resursu kojem inače trenutni korisnik ima ograničen pristup. Na skoro svakoj Linux distribuciji postoji ''/root'' direktorij i sadržaju tog direktorija samo //root// (korisnik s najviše prava na računalu, nešto poput superadmin korisnika) korisnik ima pristup. Primjer eskalacije privilegija bi bilo kada bi običan korisnik uspio pristupiti sadržaju tog ''/root'' tako što je iskoristio manu u nekom procesu (aplikaciji ili OS-u) koji je pokrenut s pravima //root// korisnika. +Eskalacija privilegija (//privilege escalation//) je proces u kojem se iskorištava pogreška (//bug//), mana u dizajnu (//design flaw//) ili pogreška u konfiguraciji operacijskog sustava ili neke aplikacije kako bi se dobila viša razina pristupa nekom resursu kojem inače trenutni korisnik ima ograničen pristup. Na skoro svakoj Linux distribuciji postoji ''/root'' direktorij i sadržaju tog direktorija samo //root// (korisnik s najviše prava na računalu, nešto poput super-admin korisnika) korisnik ima pristup. Primjer eskalacije privilegija bi bilo kada bi običan korisnik uspio pristupiti sadržaju tog ''/root'' tako što je iskoristio manu u nekom procesu (aplikaciji ili OS-u) koji je pokrenut s pravima //root// korisnika. 
  
 Postoje dvije vrste eskalacije privilegija:   Postoje dvije vrste eskalacije privilegija:  
Redak 26: Redak 26:
  
 === SUID binarne datoteke ==== === SUID binarne datoteke ====
-Na Linux operacijskom sustavu datoteke imaju posebne zastavice koje označavaju koje dozvole imaju pojedine datoteke. Također, u metapodacima postoje i oznake tko je vlasnik pojedine datoteke u sustavu. Najčešće je to korisnik koji je kreirao tu datoteku, ali se vlasnik može naknadno promijeniti. Jedna od tih zastavica koje se nalaze u metapodacima datoteke je i **SUID** zastavica. //SUID// ima značenje //"set user ID up on execution"// i ako datoteka koja ima ovu zastavicu postavljenu tada će ta datoteka (uglavnom se radi o binarnim datotekama) biti pokrenuta s pravima korisnika koji ju je kreirao, umjesto s pravim korisnika koji ju je pokrenuo. +Na Linux operacijskom sustavu datoteke imaju posebne zastavice koje označavaju koje dozvole imaju pojedine datoteke. Također, u meta podacima postoje i oznake tko je vlasnik pojedine datoteke u sustavu. Najčešće je to korisnik koji je kreirao tu datoteku, ali se vlasnik može naknadno promijeniti. Jedna od tih zastavica koje se nalaze u meta podacima datoteke je i **SUID** zastavica. //SUID// ima značenje //"set user ID up on execution"// i ako datoteka ima ovu zastavicu postavljenu tada će ta datoteka (uglavnom se radi o binarnim datotekama) biti pokrenuta s pravima korisnika koji ju je kreirao, umjesto s pravima korisnika koji ju je pokrenuo. 
  
 Primjer datoteke s postavljenim SUID bitom prilikom korištenja naredbe ''ls'', SUID zastavica ima oznaku **s**: Primjer datoteke s postavljenim SUID bitom prilikom korištenja naredbe ''ls'', SUID zastavica ima oznaku **s**:
Redak 35: Redak 35:
 </code> </code>
  
-Iskorištavanje ove ranjivosti se svodi na to da se pronađu sve binarne datoteke koje imaju ovu zastavicu postavljenu+Iskorištavanje ove ranjivosti počinje tako da se da se pronađu binarne datoteke koje imaju ovu zastavicu postavljenu i koje korisnik može pokrenuti, to se može učiniti naredbom: 
 +<code> 
 +find / -uid 0 -perm -4000 -type f 2>/dev/null 
 +</code>
  
-===== Poglavlje 3 =====+Jednom kada su izlistane sve binarne datoteke, potrebno je pronaći onu koja se može iskoristiti za eskalaciju privilegija, jer nije svaka datoteka koja ima SUID zastavicu postavljenu prikladna za eskalaciju privilegija. Opširan popis mogućih ranjivih binarnih datoteka se može pronaći na [[https://gtfobins.github.io/#+suid|GTFOBins]] stranici zajedno s postupkom kako iskoristiti tu ranjivost. 
 +Jedan od primjera je kako se može pristupiti bilo kojoj datoteci ako ''base64'' binarna datoteka ima postavljenu SUID zastavicu: 
 +<code> 
 +LFILE=file_to_read 
 +base64 "$LFILE" | base64 --decode 
 +</code> 
 +Ovdje se prvo koristi naredba ''base64'' kako bi se datoteka kojoj obični korisnik nema pristup kodirala u base64 kodiranju te se odmah ta datoteka dekodira i ispisuje se njen sadržaj.
  
-===== Poglavlje ... =====+=== Cron poslovi (jobs) ==
 +**''cron''** je program na Linux operacijskom sustavu koji služi za postavljanje periodičkih poslovaPomoću njega je moguće zakazati određene poslove da se periodički izvršavaju u točno određeno vrijemeJedan od primjera njegovog korištenja bi bilo izvršavanje skripte za back-up podataka svaki dan u isto vrijeme (npru 12:00). 
 +Za ovu iskorištavanje moguće ranjivosti ovdje je ideja slična kao i kod SUID ranjivosti, prvi korak je pronaći sve cron poslove koji se izvršavaju pod ''root'' korisnikom, a kada se pronađu, potrebno je provjeriti svaku skriptu koja se izvršava i vidjeti može li možda neku od tih skripti korisnik uređivati. Ukoliko se pokaže da običan korisnik može urediti neku od skripti koja se izvršava kao ''cron job'' ''root'' korisnika, tada je samo pitanje trenutka kada će se naša modificirana skripta izvršiti i omogućiti nam eskalaciju privilegija. 
 +Sve cron poslove je moguće izlistati pomoću bilo koje od idućih naredbi: 
 +<code> 
 +crontab -l 
 +ls -al /etc/cron* /etc/at* 
 +cat /etc/cron* /etc/at* /etc/anacrontab /var/spool/cron/crontabs/root 2>/dev/null | grep -v "^#" 
 +</code>
  
 +Ako nije moguće uređivati skripte koje pokreće ''root'' korisnik, još uvijek je možda moguće iskoristiti ranjivost ukoliko skripta koja se pokreće koristi neke resurse kojima imamo pristup. Primjer toga bi bilo da skripta pokrece neku binarnu datoteku kojoj imamo potpuni pristup; tada možemo jednostavno zamijeniti tu binarnu datoteku sa proizvoljnom datotekom koja će nam omogućiti eskalaciju privilegija.
  
 +Ovo nisu jedini načini eskalacija privilegija, već samo najčešći i najjednostavniji oblici koji se mogu iskoristiti.
  
 +=== Sudo ranjivost (CVE-2021-3156) ===
 +Jedna od najvećih ranjivosti u 2021. godini (da se nije pojavio [[https://en.wikipedia.org/wiki/Log4Shell|Log4shell]], bila bi zasigurno najveća ranjivost) bila je ranjivost u ''sudo'' naredbi stara više od 10 godina, no otkrivena je tek početkom 2021. godine. Sve verzije ''sudo'' naredbe još od 2011. godine su bile ranjive na **//heap overflow//** napad i na jednostavan način je 
 +moguće iskoristiti tu ranjivost, sve što je potrebno je pokrenuti [[https://github.com/worawit/CVE-2021-3156|Python skriptu]] na sustavu koji napadamo i ukoliko postoji verzija ''sudo'' naredbe koja je ranjiva, dobit ćemo ''root shell'' na tom računalu i možemo izvršavati bilo koju naredbu kao ''root'' korisnik. Većina sustava je odmah instalirala hitne zakrpe, no postoje još uvijek neki sustavi koji nisu ažurirali instalirane aplikacije.
  
 +=== DirtyCow (CVE-2016-5195) ===
 +//**Dirty Cow**// (Dirty copy-on-write) ranjivost je možda i najpoznatija ranjivost kojom se može izvesti eskalacija privilegija. Ranjivost cilja na grešku u kodu Linux kernela koja u sustavu za upravljanje memorijom ima pogrešku u implementaciji [[https://en.wikipedia.org/wiki/Copy-on-write|copy-on-write]] mehanizma. Ranjivost je uvedena u Linux kernel još davne 2007. godine i postojala je sve do 2016. godine u svim verzijama Linux kernela, čak i u onima koje su se nalazile na Android telefonima. Za ovu ranjivost postoje već brojne [[https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs|gotove skripte]] koje za nas odrađuju "prljavi posao" i omogućuju nam ostvarivanje ''root'' prava i izvršavanje naredbi kao ''root'' korisnik. 
 +Antivirusni programi možda mogu detektirati eskalaciju ovlasti trenutnog korisnika, ali ne mogu nikako spriječiti napad i jedina obrana od ovog napada je ažuriranje kernela na novije verzije.
  
-===== Zaključak ===== 
  
 +===== Zaključak =====
 +Svakodnevno se otkrivaju novi načini eskalacije privilegija na Linux računalima te iako su najpoznatije ranjivosti one kojima je uzrok bug u nekom od osnovnih Linux komponenti (Sudo ranjivost ili DirtyCoW), najčešći uzrok ranjivostima je pogreška prilikom konfiguracije nekog relativno sigurnog programa. Kako bi se držao sustav što sigurnijim, najvažnije je pratiti upute i pravila kako ispravno napraviti konfiguraciju aplikacija koje koristimo i redovito ažurirati sustav. Najlakši posao koji napadač može imati je kada pokušava izvršiti eskalaciju privilegija na sustavu koji nije redovito  ažuriran i pun je neispravnih konfiguracija.
  
  
 ===== Literatura ===== ===== Literatura =====
  
-[1] [[http://books.google.hr/books?id=mFJe8ZnAb3EC&printsec=frontcover#v=onepage&q&f=false|Plass, Jan L., Roxana Moreno, and Roland Brünken. Cognitive Load Theory. Cambridge University Press, 2010.]]+[[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Linux%20-%20Privilege%20Escalation.md#cron-jobs|Payload all the things]]
  
-[2] [[http://www.google.com/books?id=duWx8fxkkk0C&printsec=frontcover#v=onepage&q&f=false|Mayer, Richard E. The Cambridge handbook of multimedia learning. Cambridge University Press, 2005.]]+[[https://en.wikipedia.org/|Wikipedia]]
  
-[3] [[http://www.cogtech.usc.edu/publications/kirschner_Sweller_Clark.pdf|Kirschner, P. A, Sweller, J. and Clark, R. E. Why minimal guidance during instruction does not workAn analysis of the failure of constructivist, discovery, problem-based, experiential, and inquiry-based teaching. Educational psychologist 41, no. 2, pp 75-86, 2006]]+[[https://book.hacktricks.xyz/linux-unix/privilege-escalation|Carlos PolopHack Tricks online book]]
  
  
racfor_wiki/razno/eskalacija_privilegija_na_linux_operacijskom_sustavu.1641395173.txt.gz · Zadnja izmjena: 2023/06/19 18:15 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0