Slijede razlike između dviju inačica stranice.
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
racfor_wiki:razno:reverse_shell_i_kako_ih_dobiti [2022/01/08 13:02] kgrubesic [Sažetak] |
racfor_wiki:razno:reverse_shell_i_kako_ih_dobiti [2024/12/05 12:24] (trenutno) |
||
---|---|---|---|
Redak 7: | Redak 7: | ||
===== Uvod ===== | ===== Uvod ===== | ||
- | ===== Poglavlje 1 ===== | + | U današnje vrijeme, sve više uređaja je povezano na Internet. Svatko želi biti umrežen, no mnogi ne shvaćaju kako to za sobom povlači mnoge sigurnosne rizike. Danas, više nije pitanje hoće li se proboj desiti, nego kada će se desiti? Najčešći uzrok sve učestalijih napada od strane znatiželjnika, |
+ | ===== RCE ===== | ||
+ | RCE (eng. Remote Command Execution), naziv je za metodu koja predstavlja oblik kibernetičkog napada na računalo pri kojem napadač sa svojeg, udaljenog računala, može slobodno izvoditi proizvoljne naredbe na žrtvinom računalu. RCE je najčešće ukomponiran u malware ili neki drugi oblik virusa s ciljem aktiviranja pri preuzimanju zloćudne datoteke od strane žrtve. Ranjivost koja za posljedicu ima RCE manifestira se u obliku nepravilnog rukovanja podacima na ulazu, odnosno njihovog nepravilnog filtriranja te otklanjanja sumnjivih znakova. | ||
+ | {{ : | ||
+ | U nastavku je dan primjer lošeg isječka koda koji radi evaluaciju u programskom jeziku PHP koji je danas jedan od najčešće korištenih jezika u web aplikacijama. | ||
+ | '' | ||
+ | U ovom primjeru, programer je odlučio dinamički generirati imena varijabli za svakog korisnika te pohraniti njihov datum registracije. Međutim, obzirom da varijabla korisničkog imena u potpunosti ovisi o korisnikovom unosu, napadač bi mogao unijeti nešto poput | ||
+ | '' | ||
- | ===== Poglavlje 2 ===== | + | čime bi se generirao sljedeći PHP kod: |
+ | '' | ||
- | ===== Poglavlje 3 ===== | + | Vidljivo je kako je korisnik varijabli „x“ pridodao vrijednost „y“, ali je, uz to, prvo znakom „;“ odijelio naredbe te potom dodao novu, „phpinfo(); |
- | ===== Poglavlje ... ===== | ||
Redak 27: | Redak 34: | ||
- | ===== Zaključak | + | ===== Reverse shell ===== |
+ | Jednom kada je napadač utvrdio mogućnost RCE – a na žrtvinom računalu, najčešće će probati otići korak dalje kako bi si olakšao daljnji posao, a to je dobivanje reverse shell – a. Reverse shell je interaktivna ljuska koja omogućava lakše izvođenje naredbi na žrtvinom računalu. Postoje mnogi načini za dobivanje reverse shell – a. Metoda kojom će napadač krenuti ovisi o primjerice operacijskom sustavu ili interpreteru kojeg žrtva koristi na svojem računalu. Međutim, neovisno o putu kojeg napadač izabere, dva su koraka potrebna za dobivanje reverse shell – a. U nastavku će biti opisani koraci za dobivanje reverse shell – a na operacijskom sustavu Linux te će također biti pretpostavljeno da žrtva na svojem računalu koristi operacijski sustav Linux. Prvi korak je postavljanje tzv. listenera na svojem računalu. Taj listener sluša sve nadolazeće konekcije na određenom portu te javnoj IP adresi, odnosno, u ovom slučaju, čeka na zahtjev za konekcijom sa žrtvinog računala koji će dovesti do reverse shell – a. Listener se najčešće postavlja alatom '' | ||
+ | ===== Primjer dobivanja reverse shell - a ===== | ||
+ | |||
+ | U idućem primjeru opisat će se postupak dobivanja reverse shell – a na jednom od ranjivih računala sa tzv. Hack The Box platforme na kojoj je cilj doći do root pristupa na ranjivom računalu. Bez detaljnog opisivanja scenarija, radi se o računalu koje koristi Strapi CMS verzije 3.0.0-beta.17.4. Ta verzija ranjiva je na RCE (CVE-2019-18818, | ||
+ | {{ : | ||
+ | U ovom slučaju, nije korištena standardna netcat naredba za dobivanje reverse shell – a. Razlog tome je što ova naredba radi čak i ako je na žrtvinom računala instalirana verzija netcata koja ne podržava -e opciju koju koristi „tradicionalna“ naredba za dobivanje reverse shell – a. Ova naredba u suštini radi ono što radi netcat, uspostavlja dvosmjernu TCP vezu između žrtvinog i napadačevog računala na navedenom portu. Nakon izvršavanja one-liner – a, dobiva se reverse shell te napadač ima ovlasti korisnika strapi na žrtvinom računalu. U primjeru se pristup potvrđuje naredbom '' | ||
+ | {{ : | ||
+ | ===== Zaključak ===== | ||
+ | |||
+ | Kao što je vidljivo u prethodnom primjeru, iskorištavanje ranjivosti koja omogućava RCE te samim time dobivanje reverse shell – a lakše je nego što bi netko mislio na prvu. Ne postoji apsolutna obrana od RCE ranjivosti, ali sustavi se mogu ojačati pravilnim postavljanjem firewall – ova te tzv. proxy poslužitelja. Samim time, današnje sustave je vrlo bitno držati ažurnima kako bi se umanjila površina napada, a samim time i vjerojatnost da se napad dogodi. | ||
===== Literatura ===== | ===== Literatura ===== | ||
- | [1] [[http://books.google.hr/books? | + | [1] [[https://www.wallarm.com/what/ |
+ | |||
+ | [2] [[https:// | ||
+ | |||
+ | [3] [[https:// | ||
- | [2] [[http://www.google.com/books? | + | [4] [[https://pentestmonkey.net/cheat-sheet/ |
- | [3] [[http://www.cogtech.usc.edu/publications/kirschner_Sweller_Clark.pdf|Kirschner, | + | [5] [[https://www.gnucitizen.org/blog/reverse-shell-with-bash/# |