Objavljeno: 26.2.2019 | Avtor: Boris Šavc | Monitor Marec 2019

Etično hekanje s Kali Linux

Vdiranje v računalniške sisteme, običajno nepooblaščeno poseganje v programsko in strojno opremo, je postalo del vsakdana. Hekerjem z zlimi nameni po vzoru antagonistov iz ameriških kavbojk pravimo Črni klobuki. Nasproti jim stojijo beli ali etični hekerji, ki bogato znanje in izkušnje uporabljajo za testiranje zaščite pred tovrstnimi vdori. Oboji pri delu uporabljajo iste pripomočke, največ jih na enem kupu premore Kali Linux.

Kali je vodilna distribucija operacijskega sistema Linux na področju testiranja vdorov v računalniške sisteme in etičnega hekanja. Odlični programski pripomočki, ki jih Kali Linux privzeto in brezplačno ponuja, so pritegnili številne uporabnike z najrazličnejšimi nameni in s pisano paleto predznanj. Med slabe vzgibe spadajo kraja sosedovega brezžičnega interneta, zasledovanje dekleta ali zabavanje prijateljev, medtem ko je umska podlaga za uporabo nujna. Kali Linux ni namenjen začetnikom! Če nam nameščanje programov, tiskanje dokumentov in podobna vsakodnevna opravila v operacijskem sistemu Linux delajo težave, potem distribucija Kali ni za nas. Najmanj, kar se nam lahko zgodi, je, da v naš sistem vdrejo pravi hekerji.

V običajni distribuciji operacijskega sistema Linux imamo dva uporabniška računa, lastnega in administratorskega, v sistemu Kali pa je privzeto nameščen le korenski uporabnik root, saj večina programskih pripomočkov v distribuciji brez administratorskih pravic ne deluje. Polne pravice niso vedno dobra ideja, kar lahko izkusimo ob obisku temnih kotičkov spleta. Če se heker s škodoželjnimi nameni dokoplje do našega računalnika, mu je vse servirano na pladnju, vsak program je zagnan s pravicami root in ima samodejno tudi administratorski dostop do sistema. Na veliko nevarnost nas opozori že hiter pregled spletnih forumov, kjer mrgoli klicev na pomoč med uporabo Kali Linuxa napadenih uporabnikov.

Kali Linux je vodilna distribucija operacijskega sistema Linux na področju testiranja varnosti računalniških sistemov.

Kali Linux vsebuje zelo učinkovita programska orodja, s katerimi je mogoče narediti veliko škode. Sami nosimo odgovornost pri njihovi uporabi, neznanje pred zakonom ni izgovor. Čeprav uporaba distribucije Kali Linux zagotavlja določeno stopnjo anonimnosti, nismo neprebojno zaščiteni. Če kršimo zakon, nam bodo prej ali slej stopili na prste. Uporaba orodij distribucije Kali na tuji opremi brez izrecnega dovoljenja lastnika je kazniva. Na pot etičnega hekanja s plemenitimi nameni izboljšanja sveta stopimo z obiskom spletne strani Kali.org.

Na uradni spletni strani operacijskega sistema Kali Linux pod zavihkom Downloads najprej izberemo ustrezno različico glede na računalnik in osebne želje. Priporočamo verzijo za zagon v navideznem okolju VMware ali Vbox. Če se odločimo drugače, naj Kali Linux nikoli ne postane naš primarni računalniški sistem, ker bodo podatki na njem vedno v nevarnosti zaradi morebitne zlorabe ali izgube. Za katastrofo ne potrebujemo zunanjega negativca, z neznanjem in neodgovorno uporabo distribuciji priloženih programskih orodij si (pre)hitro lahko sodimo tudi sami. Uporabnika, ki bi ga v življenju spremljal izključno Kali Linux, ne najdemo niti med profesionalci, črnimi, belimi ali sivimi.

Prvi vdor

Prva stvar, ki jo moramo pri hekanju izvedeti, je naslov tarče. Pravi pripomoček za iskanje računalnikov in naprav v omreženi okolici je Netdiscover. Gre za orodje brez grafičnega vmesnika, kar pomeni, da ukaz izvajamo izključno iz ukazne vrstice oziroma v oknu programa Terminal. Če vabj vpišemo netdiscover -h, dobimo na zaslon vse opcije pripomočka za odkrivanje računalnikov v omrežju. Najbolj nas zanima možnost -r, s katero določimo razpon iskanja. Če ima Kali lokalno IP-številko 192.168.231.129, kar vidimo z vpisom ukaza ifconfig, naprave v soseščini z zadnjimi IP-številkami od 0 do 255 iščemo z netdiscover -r 192.168.231.0/24. Ukaz vrne seznam najdenih računalnikov z unikatnimi MAC-naslovi ter informacijami o proizvajalcu opreme. Ko tarčo identificiramo, jo začnemo otipavati.

Zenmap je grafični vmesnik zmogljivega orodja nmap, ki pri tarči poišče odprta in teoretično ranljiva vrata.

Najpreprostejše, a vseeno učinkovito in informativno orodje v paketu je zagotovo Zenmap, ki na ciljnem IP-naslovu poišče odprta in ranljiva vrata. Uporaba aplikacije ne zahteva drugega kot vpis tarče in pritisk gumba Scan, nakar tvori ukaz nmap glede na želje, ki smo jih podali. Med najdenimi informacijami so najzanimivejše povedi, ki se začnejo z Discovered open ports. Gre za odprta vrata pravkar pregledanega spletnega strežnika ali usmerjevalnika. Drugi zavihki aplikacije Zenmap, desno od Nmap Output, prikažejo najdene informacije v bolj berljivi obliki. Ports/Hosts se osredotoči zgolj na vrata in gostitelje, Topology grafično izriše načrt iskanja oziroma skeniranja, Host Details podrobnosti o ciljnem računalniku, Scans zgodovino vseh iskanj z isto tarčo. Samodejno ustvarjenemu ukazu nmap po želji dodamo številna druga stikala, ki predrugačijo njegovo obnašanje, oziroma vse skupaj vpišemo v ukazno vrstico terminalskega okna.

Osrednje stikalo ukaza nmap, ki ga moramo pri skeniranju poznati, je -v. V načinu Verbose nam nmap po korakih razlaga, kaj počne. Brez dodatka -v bomo med izvajanjem večino časa gledali prazen zaslon. Poleg enojnega lahko uporabimo dvojni ali trojni -v – več jih bo, bolj zgovoren bo ukaz v terminalskem oknu. Naslednje pomembno stikalo pri ročnem izvajanju ukaza nmap je -p, ki zahteva navajanje številk od 0 do 65535, to je vseh mogočih TCP-vrat na cilju. Z -A iz splošnega pregleda odprtih vrat preidemo na testiranje znanih ranljivosti, z -oA (in poljubnim imenom) iskanje shranimo v datoteko, ki nam lajša kasnejšo analizo rezultatov. Več stikal pri skeniranju uporabimo, več časa bo potrebnega za izvedbo zadane naloge. Za določanje časa z ukazom nmap uporabljamo dodatek -T, ki mu sledi številka od 1 do 5, kjer ena pomeni najpočasnejše skeniranje, pet najhitrejše. Bolj je skeniranje hitro, manjša je zanesljivost.

Odkrito varnostno luknjo lahko izkoristimo z nalaganjem odličnega pripomočka Metasploit na stranska vrata določenega servisa. Na osrednji računalnik program prenesemo kar z ukazom, ki ga najdemo na spletišču GitHub.

Med odprtimi vrati na seznamu grafičnega orodja Zenmap najdemo vrata 21, na katerih teče strežnik FTP, natančneje vsftpd 2.3.4. Naša naloga v vlogi etičnega hekerja oziroma preizkuševalca varnosti je, da preverimo, ali za vrati preži morebitna nevarnost. Že hiter pogled na splet, kjer v iskalnik vpišemo ime servisa, različico in besedo exploit, nam razkrije, da to različico FTP krasi velika luknja Backdoor Command Execution, ki jo je našlo in izrabilo podjetje Rapid7. Strokovnjaki podjetja so ustvarili tudi odličen program Metasploit, ki ga v osnovni različici ponujajo v obliki odprte kode. Program prenesemo in namestimo na računalnik z ukazom, objavljenim na uradni strani podjetja, kopiramo modul varnostne luknje strežnika FTP in v Terminal vpišemo msfconsole. V novi lupini ukazne vrstice nadaljujemo z ukazom use in modulom varnostne luknje (unix/ftp/vsftpd_234_backdoor). Kaj lahko modul naredi, preverimo z ukazom show options. Ta nastavi ciljno IP-številko, če v konzolo msf vtipkamo set rhost IP_ŠTEVILKA. Modul zaženemo bodisi z ukazom run bodisi z exploit. Zeleni znaki na zaslonu sporočijo, da je bila luknja uspešno izkoriščena, vrstica Command shell session opened pa, da je odprta povezava s tarčo. Ukaz ID preveri, kakšne pravice ima povezava, v našem primeru nas je razveselila s korenskimi (angl. root). Ker smo za tarčo izdelali zares luknjast strežnik, povezavo zapremo z exit. V resničnem svetu sreče, da bi v prvem poskusu naleteli na luknjo, ki podari korenske pravice do sistema, ne bomo imeli, zato raziskujemo naprej.

Ranljivosti

Pravi naslov za odkrivanje ranljivosti tarče je orodje Nessus. Ker ni več del operacijskega sistema Kali, ga prenesemo s spleta in namestimo s terminalskim ukazom dpkg.

Ranljivosti tarče nam podrobneje pomaga identificirati med hekerji priljubljeno orodje Nessus. Ker ga ni več v paketu z distribucijo Kali, ga prenesemo z uradne spletne strani, kjer najprej izberemo datoteko s končnico .deb in se prijavimo za aktivacijo domačega uporabnika, saj Nessus v nasprotnem primeru ni brezplačen. Namestitev programskega pripomočka poteka v ukazni vrstici Terminala. Najprej se postavimo na področje, kjer je namestitvena datoteka programa, in jo namestimo z ukazom dpkg -i ime_datoteke.deb. Nato uspešno nameščeno orodje zaženemo z /etc/init.d/nessusd start ter ga preizkusimo v poljubnem spletnem brskalniku na naslovu https://kali:8834. V spletnem vmesniku ustvarimo uporabniški račun, ga aktiviramo s kodo, ki smo jo prejeli po elektronski pošti, nato smo pripravljeni na delo.

Uporaba programa Nessus je dokaj preprosta, z gumbom New Scan pridemo na zaslon z različnimi pregledi, kjer za začetek izberemo Basic Network Scan, vpišemo poljubno ime ter ciljno IP-številko, nato postopek shranimo s Save. Pregled s seznama My Scans poženemo z gumbom Launch. Ko se pregled zaključi, Nessus pod zavihkom Vulnerabilities poimensko našteje najdene ranljivosti ter oceni njihovo resnost. Z dvojnim klikom na posamezno ranljivost se na zaslonu prikažejo dodatne informacije o varnostni luknji, kaj lahko napadalec stori in kako se pred napadom obraniti. Delovanje programa Nessus je odvisno od številnih dejavnikov, med njimi prednjači kakovost omrežne povezave med izvajanjem pregledov. Četudi Nessus določene ranljivosti ne odkrije, ne pomeni, da ta ne obstaja. Pri raziskovanju zato vedno uporabimo več orodij in se na posamezne servise poskusimo priklopiti tudi ročno.

Varnost spletnih servisov najlažje preverimo s programskim pripomočkom Nikto. V našem primeru je na strežniku Tomcat odkril prisotnost privzetega uporabnika, ki ga zlikovec zlahka izkoristi v nečedne namene.

Ko smo preverili odprta vrata stroja na podanem IP-naslovu, pregledali, katere servise zaganja, raziskali ranljivosti in izvedeli celo različice posameznih programskih pripomočkov, ki tečejo na njem, smo pripravljeni na napad. Vdor izvedemo s pripomočkom Nikto in z izkoriščanjem luknje na pomanjkljivo varovanih spletnih servisih. Ukaz nikto opremimo z dodatkom -host in IP-številko tarče. Če je na cilju zagnanih več spletnih servisov, ukaz dopolnimo s stikalom -p in številko ustreznih vrat (privzeta vrata 80, na primer, nadomestimo s številko 8180, kjer na našem testnem strežniku domuje Apache Tomcat). Nikto lahko odkrije čuda stvari, v našem primeru je odkril, da je na strežniku odprt privzeti uporabnik tomcat z geslom tomcat. Informacijo preverimo z obiskom spletnega vmesnika na naslovu IP_ŠTEVILKA:VRATA, kjer iz levega stolpca izberemo Tomcat Manager, nakar vnesemo najdena pooblastila. Uspešna prijava nam omogoča, da na strežnik prenesemo lastno vsebino, spremenimo videz napadenega spletišča in podobno.

Gesla

Hekanje gesel se največkrat naslanja na ugibanje. Hydra ugane geslo določenega uporabnika ob pomoči seznama verjetnih izrazov, ki ga sestavimo sami ali ga poiščemo na spletu.

Poznavanje uporabniških računov in posedovanje ustreznih pooblastil servisov, ki tečejo na tarči, sta med prioritetami slehernega hekerja. Ena izmed poti do njih je z ugibanjem. Najosnovnejši tovrstni pristop zahteva uporabo seznama z verjetnimi prijavami. Datoteke z gesli poiščemo na spletu. Če v iskalnik vpišemo worst passwords ever, jih najdemo na tisoče. Prečiščen seznam brez tabulatorjev in podobne navlake uporabimo tudi pri ugibanju s pripomočkom Hydra. Z ukazom hydra -l root -P seznam mysql://IP_ŠTEVILKA ga s pridom izkoristimo za pridobivanje gesla uporabnika root podatkovne zbirke MySQL, ki teče na naši testni tarči. Boljši kot je uporabljeni seznam z gesli, več možnosti imamo, da Hydra vrne sporočilo o uspešnem ugibanju.

Prijavne podatke različnih storitev v omrežju prestrezamo s programom Wireshark.

Gesla iščemo tudi po mreži. Pripomoček Wireshark je kot nalašč za tovrstno prisluškovanje. V Capture/Options nastavimo aktivni omrežni vmesnik in z gumbom Start sprožimo iskanje. V primeru gneče na mreži bo izhod programa Wireshark dokaj neberljiv, zato prikaz omejimo s filtri. Gumb Expression v desnem zgornjem kotu pokaže vse mogoče omrežne protokole. Če filter nastavimo na spletni protokol HTTP in uporabimo CONTAINS ter besedo tomcat, bo Wireshark prikazal le ujete vnose strežnika Tomcat. Za pridobivanje uporabniškega imena in gesla servisa Tomcat rezultate prečistimo s http contains manager, ki izdaja, da se je prek spleta nekdo pravkar prijavil na ciljani strežnik. Ob kliku na želeni vnos GET/manager/html se v spodnjem oknu uporabniškega vmesnika pripomočka Wireshark pojavi vsebina spletnega paketa. V njej je beseda Authorization, ki nakazuje, da gre za prijavne podatke. Čakata nas slaba in dobra novica: informacije so šifrirane, a na srečo s premagljivim šifriranjem, ki ga razvozlajo že osnovna spletna orodja. Vsebino kopiramo z desnim miškinim klikom ter ukazom Copy/Value ter jo prepišemo v najdeni spletni pripomoček.

Zadnje orodje, mimo katerega ne moremo, je Armitage. Gre za priljubljen programski pripomoček etičnih hekerjev, ki ga zlikovci ne marajo. Armitage je grafično orodje, ki mnogo stvari postori samodejno in v ozadju. Uporabimo ga le v nadzorovanem okolju. Ker hekerji z nečednimi nameni ne želijo, da bi pripomoček počel nekaj brez njihove vednosti, raje uporabljajo osnovnejša orodja z bolj strmo učno krivuljo. Tistim s čisto vestjo Armitage pomaga na tisoč in en način. Primer avtomatizacije pripomočka je viden takoj, ko iz nabora možnosti izberemo ukaz Hosts/Nmap Scans/Quick Scan (OS detect), ki v zgornje okno izriše ikone najdenih računalnikov v omrežju, ter poiščemo vse mogoče napade z Attacks/Find Attacks. Preostaneta nam le še desni klik na izbrano tarčo ter izbira želenega napada.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji