Hrvatski hacking vodic #2 by BoyScout v.1.0 Disclaimer: ~~~~~~~~~~ Ovaj tekst je pisan iskljucivo u edukacione svrhe i ja ne mogu ni na koji nacin biti odgovoran za neciju radnju koja moze biti opisana ovdje. Ukoliko to ne mozete prihvatiti, odmah pobrisite ovaj tekst. Hvala. 1. Uvod 2. Tekstovi koje bi trebali procitati 3. Najcesce koristene metode hackiranja 4. Trazenje vulnerable stroja 5. Dobivanje roota i kako dalje 6. Sniffanje 7. Zastita strojeva 8. Gdje skidati wareze 9. Pozdravi i zahvale 1. Uvod ~~~~~~~ Neke stvari ovog teksta su toliko jednostavne, ali su svejedno ukljucene kako bi i oni koji najmanje znaju mogli nesto lakse shvatiti. Preporucam da doma imate neki Linux, jos bolje ako je Debian. Ukoliko neki od programa nemate, uvijek ga mozete skinuti i instalirati sa programom apt-get ukoliko koristite Debian. Znaci, ako nemate program host, skinut cete ga i instalirati sa trava:~# apt-get install host Lista siteova sa kojih se skidaju paketi je /etc/apt/sources.list (primjer je za stable distribuciju) (*1*) Ako vam nisu neke stvari jasne, uvijek se mozete obratiti za pomoc na forumima ii-labsa, active-securitya ili elitesecuritya. (*2*) (*3*) (*4*) Ili ako ircate mozete uvijek potraziti pomoc na kanalu #hr.hackers servera irc.carnet.hr (*1*) http://161.53.51.222/arhiva/sources.list (*2*) http://www.ii-labs.tk (*3*) http://www.active-security.org (*4*) http://www.elitesecurity.org 2. Tekstovi koje bi trebali procitati ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Smatram da bi bilo dobro prije citanja ovog teksta da procitate Vodic kroz CARNet & HT. Premda se u njegovom tekstu opisuju neke stvari koje danas vise uopce ne rade, postoje i neke koje ce vam uvijek biti od koristi. (*1*) Zatim, kako bi u potpunosti shvatili stack buffer overflowe procitajte tekst Smashing the stack for fun and profit by Aleph-1 Ukoliko vam nije jasno, skinite neki domaci, malo jednostavniji tekst s istom temom. (*2*) Naravno, postoji jos jako puno tekstova, mozete ih naci na sajtovima koji su ispisani u prethodnom poglavlju. (*1*) http://161.53.51.222/arhiva/hacking_guide.txt (*2*) http://161.53.51.222/arhiva/stack-bo.txt 3. Najcesce koristene metode hackiranja ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ove metode za pola godine vise nece raditi, no vazno je da ih znate sada. Puno je linux strojeva vulnerable zato sto vrte verziju sambe sa bugom, a u vecini slucajeva ju uopce ni ne trebaju. Znaci, nabavite remote exploit za sambu i rootate strojeve. (*1*) Onda je tu i exploitanje OpenSSLa preko secure http daemona. (*2*) Zatim, 2.2.x kerneli i vecina 2.4.x kernela su vulnerable na ptrace bug, a u hrvatskoj malo ljudi koristi kernel patcheve koji bi takav nacin exploitanja sprijecili. (*3*) I na kraju, evo metoda koje ce uvijek raditi; lokalno i remote exploitanje programa vulnerable na buffer overflowe svih vrsta. (*1*) http://161.53.51.222/arhiva/sambal.c (*2*) http://161.53.51.222/arhiva/OpenFuckV2.c (*3*) http://161.53.51.222/arhiva/ptrace.tar.gz 4. Trazenje vulnerable strojeva ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Koristite program host. Sa host bi trebali dobiti njegovu IP adresu, a s host bi reverse lookupom trebali dobiti njegovo ime u DNS databaseu. Sa host -l dobivamo listing strojeva iz neke domene, ukoliko DNS server to ne zabranjuje. Tako bi trebali dobiti mnogo strojeva. Ukoliko je broj u zadnjem segmentu IP adrese 1, najcesce se radi o gatewayu te mreze, a ukoliko je 3 najcesce se radi o glavnom stroju u mrezi, vrlo vjerojatno i DNS serveru. Znaci, to NE MORA biti uvijek tako, ali se IP adrese najcesce dodjeljuju po tom pravilu. Npr. 192.168.0.1 - gateway 192.168.0.3 - glavni stroj, dns 5. Dobivanje roota i kako dalje ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Naravno, kao sto i znate razlikujemo remote i local exploiting. Remote exploiting se vrsi od strane vaseg servera ili nekog drugog na kojem imate pristup, dok se lokalni vrsi ako imate shell account na stroju na kojem hocete dignuti roota. No, prije nego sto to pokusate, obratite pozornost na par stvari: a) Otkud provaljujete. Bilo da se radi o remote ili local exploitingu morate obratiti pozornost na vasu sigurnost. Znaci, ukoliko je moguce nemojte nista raditi sa vasih accounta ili vase dial-up veze od doma. Da li cete provaljivati sa vec prije usnifanih accounta, spajati se sa mobitela ili razvodne kutije neke zgrade, to je vasa stvar pa odaberite sto vam najbolje odgovara. b) Sto provaljujete. Preporucam detaljan scan nmapom (po mogucnosti stealth) koji ce vam reci koji su portovi otvoreni, a ukoliko imate srece, pomocu TCP stacka mozete otkriti o kojem se operativnom sustavu radi i koju verziju kernela ima (linux). kgb:~# nmap -v -sS -O 192.168.0.5 Nakon toga, preporucam scan sa nessusom koji ce vam reci koji daemoni imaju bug. Po mogucnosti nessus daemon i nmap vrtite sa neke vec prije rootane masine. (*1*) (*2*) c) Imate account gore? Idete exploitati? Ako imate shell account na stroju, pokusajte prvo saznati sto vise informacija. Najbitnije je da znate da li stroj ima neki stack patch koji onemogucava stack buffer overflowe, ili puno bolji grsecurity kernel patch koji omogucava i vise od toga. Ukoliko je takav patch gore, metode koje on onemogucava nemojte ni pokusavati koristiti jer ce sustav to zabiljeziti i admin ce skuziti da se nesto dogadja. Zatim, pogledajte koliko administratora ima na stroju, u koje su vrijeme najcesce logirani i koje programe koriste. Takodjer pogledajte /etc/syslog.conf file i provjerite da li se kopije logova salju na neki drugi stroj. Kada idete exploitati stroj, uvijek pazite da ste nevidljivi na stroju tj. da se ne vidi da ste logirani. Najlakse je pokrenuti screen -ln koji ce vas izbrisati iz utmp-a, jer je program screen setgid na utmp grupu, po defaultu. Najbolje je da exploit kompajlirate doma ili na masini iste arhitekture i operativnog sustava, te da ga skinete na stroj koji zelite exploitati sa wgetom. Taj nacin ce se najmanje zapaziti. Po mogucnosti exploit izvedite sto manje puta te cim dobijete root shell ostavite neki lokalni backdoor, neka bude dobro skriven i neka to NE BUDE kopija nekog shella na koju ste stavili suid bit (mod 4755) nego neki vas program, jer ako koristite kopiju shella adminitrator ce lakse skuziti, jer jednostavno moze cijeli disk pretrazivati na fileove sa istom velicinom kao /bin/bash. npr. #include int main() { setuid(0); setgid(0); printf("Ovo nije backdoor!\n); system("/bin/bash"); } Jos po potrebi nadodate da je za otvaranje root shella potreban neki password, ili smislite nesto svoje. d) Roota imate. Zelite da stroj ostane vas. Cistite logove. Uvijek. Mozete rucno, a mozete posao prepustiti logwiperima. Rootov shell koristite sto manje moguce. Ostavite neki sniffer na stroju (poglavlje Snifferi), ali pazite da se ne vidi. Skinite sadrzaj /etc/shadow (najbolje je da ga copy-pasteate) na svoj stroj i crackirajte ga johnom. (*3*) Vecina obicnih korisnika ima iste passworde na svim strojevima, pa i da koriste ssh opet cete imati njihove passworde. Zapisite sve podatke o stroju i mrezi u kojoj se nalazi, da u slucaju pronalaska backdoora i zakrpavanja rupe koju ste iskoristili mozete exploitati stroj na neki drugi nacin, ili exploitati susjedni stroj u mrezi (mogli ste lako usniffati passworde). Pogledajte da li je stroj kojim slucajem NIS server ili client, ako je znaci da se na sve cliente mozete logirati sa istim usernameom i passwordom koji postoji na serveru. Nemojte raditi stetu stroju tipa defaceanje i brisanje podataka (osim ako se ne radi o osveti), jer cete se time pokazati neprofesionalni, odmah ce vas skuziti i vise necete imati roota. (*1*) apt-get install nmap (*2*) apt-get install nessus (*3*) apt-get install john 6. Sniffanje ~~~~~~~~~~~~ Preporucam Mixterov 'echelon for dummies' (e4d), jer ne dize promisc mode na mreznoj kartici, i logove ne snima lokalno nego ih salje nasem serveru kriptirane unutar icmp paketa. Mozete ga sami konfigurirati na koje kljucne rijeci da zapocinje sniffanje. Jednostavno zavrtite sniffer pod laznim imenom na stroju koji ste rootali, stavite ga u init.d da se podize pri bootanju i imat cete kompletan pregled prometa bez da se ikad vise morate ulogirati na stroj, a sanse da ce administrator skuziti sto se dogadja su vrlo male. (*1*) Ukoliko ste pak u ulozi administratora, preporucam vam ettercap, jer ima mnogo mogucnosti tipa arp spoofing (sto omogucava sniffanje na switched mrezama), injecting data to connections, otkrivanje drugih sniffera koji koriste arp spoofing tehniku, sniffanje ssh passworda te sa velikom lakocom mozete odredjene konekcije ubiti. (*2*) (*1*) http://161.53.51.222/arhiva/e4d.tgz (*2*) apt-get install ettercap 7. Zastita strojeva ~~~~~~~~~~~~~~~~~~~ Ovo se poglavlje prvenstveno odnosi na administratore. Evo nekoliko savjeta za povecanje sigurnosti: a) Cesto provjeravajte logove, po mogucnosti namjestite da se kopije logova salju na neki drugi stroj. b) Instalirajte neki patch koji onemogucava buffer overflowe. Preporucam grsecurity. c) Nikad nemojte vrtiti bespotrebne servise koje nikad necete koristiti ni vi niti korisnici vaseg sustava. d) Sto cesce radite apt-get update i apt-get upgrade. e) Instalirajte portsentry da vidite tko vam pokusava scanirati stroj, a njemu ce se pokazati da su neki portovi otvoreni iako se nijedan servis zapravo njima ne vrti. (*1*) f) Instalirajte neki firewall tipa iptables, zabranite na njemu icmp promet i zabranite sve portove koji nisu potrebni, osim onih iznad 1024 koji su potrebni za ostvarivanje konekcija prema van. (*2*) g) Pazite kome dajete account. Sto accounta manje to bolje. Korisnicima nemojte davati shell pristup osim ako im stvarno nije potreban. Time hackerima onemogucujete pokusaje lokalnog exploitinga stroja. h) Ugasite servise tipa telnet i ftp (koji koriste plain text prijenos passworda) i zamijenite ih sa ssh i sftp. i) Ukoliko imate Apache, dodajte u httpd.conf liniju ServerSignature Off kako se ne bi vidjelo koja je verzija web servera. k) Provjeravajte da si se na stroju desavaju cudne stvari, cesto se rusi, vrte se cudni procesi, load average je visok, mrezna kartica je u promisc modu. Takve stvari su najcesce pokazatelj da je u stroj provaljeno. Instalirajte chkrootkit kako bi vidjeli da li je postavljena neka trojan-verzija nekog od cesto koristenih programa, a u mogucnosti je i traziti logove od sniffera, najcesce rootkitove, shellove bindane na portovima te backdoore u obliku modula. (*3*) l) Pazite da na stroju nema direktorija koji su world-writable. Particije koje koriste korisnici mountajte kao noexec i nosuid. Onemogucite koristenje kompajlera obicnim korisnicima. m) Stavite switch u mrezu! n) Cesto provjeravajte ima li cudnih konekcija, ili preko netstata ili ettercapa (pogledaj poglavlje Sniffanje). cia:~# netstat -a (*1*) apt-get install portsentry (*2*) apt-get install iptables (*3*) apt-get install chkrootkit 8. Gdje skidati wareze ~~~~~~~~~~~~~~~~~~~~~~ Spojite se na irc server irc.eu.fdfnet.net i odite na kanal #warez. Tamo na kanalu napisite !rules i dobit cete popis pravila koja morate postivati, i vjerujte mi, oni ih se jako drze. Kad ste procitali pravila, napisite !list dobit cete file u kojem je lista programa/glazbe/filmova, i sajtovi sa kojih se oni mogu skinuti. Nikad nemojte uzeti listu i odmah se disconnectati sa servera ili otici s njihovog kanala, jer ce vas bannati i vise nikad necete moci uzeti listu. E sad, ako hocete imati pristup trazilici programa/glazbe/filmova prema imenu fajlova i direktorija te prema opisu, i pristup najnovijim listama onda morate hostati i neki svoj warez, ako cete to vec raditi preporucam da to radite sa 10 full mp3 albuma. Naravno, warez je ilegalan pa pazite da vas ne skuze. Ukoliko nemate irc klijent, skinite BitchX. (*1*) (*1*) apt-get install bitchx 9. Pozdravi i zahvale ~~~~~~~~~~~~~~~~~~~~~~ Ovim bih putem pozdravio i zahvalio se sljedecim ljudima: ii-labs crew (DownBload, h4z4rd, Fr1c, Sunnis, StYx, bila), active-security crew (NetZero i Paradox), Atko i cijela ekipa iz Makedonije, ZEX, Predrag, Leo, zip, Edo, belzeb, ico, finis, harly, the1, ezop, Shockr, cijela #hr.hackers ekipa i svi vi koji se trudite nesto nauciti. Vi ste oni koji mozete oziviti scenu!