c0d1ng hoR30R

Kam shume kohe qe nuk shkruaj, dhe shpresoj se do rrij me shume pa shkruajtur deri tek tema e ardhshme, por besoj se kjo qe po shkruhet tani ja vlen pritjen edhe 2 vjet :).
Meqenese eshte keshtu, ja ku e kemi nje teme qe i vetmi vend ku nuk eshte tabu te flitet eshte undergroundi.
Profesioni i dyte me i vjeter eshte lufta, por edhe lufta ka zhvillimet e saj dhe sot kemi IW (Information Warrior), per te hyre ne teme po bejm menjehere disa afirmime ne menyre qe te hapen syte dhe une te kursej rreshta fjalesh (isha duke thene kodi :P).
Jemi ne fushen e informatikes, dhe meqenese jemi ne kete fushe , nuk lejohen devijime nga e verteta qoft edhe me 1 bit sepse kjo do te sillte jofunksionim te plote (siç do te shihet me poshte), keshtu qe ç’do gje qe do lexoni eshte 100% e vertete, dhe 100% e vertetueshme per ata qe duan te kerkojn argumentet per secilen nga frazat e meposhtme:

*Me shume se 3000 kompani ne kete moment jane te infiltruara nga hackerat, ç’do institucion ka siguri te thyer dhe hane exploite (thyhen) ç’do dite nga hackerat.
* Firewallet, IDS , Anti-Viruset nuk punojn aspak mire, shumica e atyre qe i shesin keto produkte kane nje mentalitet “klasik te sigurise” dhe fokusohen tek Network Security nderkohe qe duhet te fokusohen tek Software Security.
* Shumica e makinave ne internet mund te thyhen NE KETE MOMENT (perfshire makinen ku eshte i hostuar ky sit), pa perjashtuar ketu ato me programet dhe sistemet me “up – to – date” kjo sepse ne kete moment egzistojn mijera exploite te quajtura “0-day” qe eshte shume e mundur qe te qendrojn te pa zbuluara per vite me radhe, gjithashtu shume qe jane publike nuk jane ende te rregulluara si probleme.
* Nje hacker serioz mund te futet ne makinen tende ne kete moment, edhe nese ti ke nje imazh sistemmi\backup apo ç’fare do lloj metode per te rikthyer sistemin kjo nuk do e ndihmoj pasi nje “serioz” mund te infektoj pa frik firmwarin e makines, qe do i bente keto tentativa “pastrimi” jo efektive. Kjo edhe sepse nje i tille mban me vete gjithmon nje arsenal qe nuk e ndan me te tjeret, (you know) per ditet e veshtira, si i thone, “mbaje ta kesh me vete, si dihet rruges”.

Tani po thoni “WoW” ç’fare po thot ky, … nuk po e marr vesh, ku do me dal daje? Per ta bere me shume kurioz, po permend disa fakte:

– Nasa humbi 165 milion $ kur Shatelli  per ne Mars u rrezua, kjo per shkak te nje problemi ishte nje bug ne perkthimin midis anglishtes dhe njesive te llogaritjes (shume banal) qe rezultoi me gabim ne llogaritjen e trajektorjes qe rezultoj ne nje perplasje.

– Nje anije ushtarake amerikane , leshoi nje rrakete dhe shkaterroi nje avion pasagjeresh (Airbus A320) duke e mare per nje avion ushtarak. U.S ja hodhi fain programit ushtarak.

– Virusi i njohur “LOVE BUG” shkaktoi biliona deme, kjo per shkak te nje gabimi ne design te microsoft outlook i cili lejonte egzekutimin e kodit te jashtem, realisht shumica e viruseve perdorin probleme sigurie te kodit dhe jo te networkut per te bere ate qe duhet te bejn.

Virusi qe po flisnim 2 tema me pare, eshte edhe ai fakt i kesaj gjullurdie qe flitet.

E pse nuk kam degjuar une o Ardit nga keto qe po shkruan?
Le te lexojm bashk kete histori te vogel..
Ata qe kane studiuar pak software engineering, dine se programi kalon disa etapa deri sa te quhet i perfunduar, dhe nga etapat me te rendesishme eshte edhe testimi per probleme me dizajn apo ne aplikimin e ketij dizajni, i cili eshte nder me te gjatet dhe nder me problematiket sepse hshpesh here ben qe te shkruhen programet nga 0, dhe muaj te tere te shkojn ne kosh :)
Vazhdon historia.., E kemi vene re, qe sapo Apple nxjerr nje version te ri sistemi operativ, Microsoft hidhet edhe ai ne sulm dhe e nxjerr sistemin e vet para dates se caktuar, apo kur dikush nxjerr nje version te ri te programit apo funksione te reja edhe konkurrenti i tij menjehere do e nxjerri diçka te tille.
Dhe programatoret e shkret u kerkohen programe te medha dhe kur pyesin “kur te duhet i perfunduar?” shefi u pergjigjet me “dje!”.
Kjo sepse kemi te bejm me ekonomi tregu, dhe shefat zakonisht preferojn (shpesh te detyruar nga kushtet e egra te xhungles) te marrin leket ne moment se sa te humbin bleresat dhe te ngelen me nje program (relativisht te sigurt) por me pak bleres per shkak te voneses dhe mbizoterimit te tregut nga konkurrenca.
Nga kjo nxjerrim se tregu sot i programeve eshte parajsa e intruderave, me treshen e rendesishme qe vjen e forcohet:
Kompleksiteti Microsoft word ne fillim ka pasur vetem 15000 rreshta kod ndersa ne 95 pati 2000000 ndersa sot 10’000’000 kjo per nje hacker do te thote “njam njam njam”.
Pse , sipas llogaritjeve ne 1 KLOC (njesi matjeje per sasine e kodit) mund te kete nga 5 bug deri ne 50 bugzzzz dhe ky eshte ligj universal. Imagjinoni se sa mund te kete ne 1000000 KLOC? dhe ketu po flasim vetem per nje aplikacion, pa llogaritur aplikacionet e tjera, sistemin operativ, firmwaret, dhe edhe vet sistemet mbrojtese, antiviruset, firwallet….
Windows XP ka 40 milion KLOC, ndersa Windows 7 mendohet 120 milion. (pa programe te instaluara siper, vetem sistemi i fresket).
Dhe per “ata te sigurise” ligji eshte ligj, “me shume kod, me shume bugz”, besoj se tani e kuptoni frazen e çuditshme qe mund te keni hasur ne underground “keep it simple stupid”, e meqe ra fjala:

Ekstensibiliteti kjo eshte arsya kryesore e perhapjes se viruseve, sot programet nuk behen me kompakt si njehere e nje kohe, por sot kemi VM, plugine, shkurtimisht kode qe mund te perfshihen nga nje faqe e jashtme ne internet dhe te egzekutohen direkt ne makinen tende. Kjo eshte trend ne kete moment, dhe nese nje program nuk eshte i tille atehere nuk eshte i “mire”.Per me shume kerko ne google (nese nuk e di) per “Code Red”
dhe historine e tij me serverin e Microsoftit IIS
dhe pika e 3-te e “treshes e famshme” eshte:

Konektiviteti Ne momentin qe po shkruaj kete tem, kam hyre ne internet nepermjet iPhon-it me “internet tethering” dhe e kam lidhur me kompiuterin me USB. (Shih Settings>General> Network> Internet Tethering çoje On). dhe sot siç shkruhet tek “THE TCP-IP GUIDE” eshte e veshtire te mbash 2 aparate elektronike jo te lidhur me njeri tjetrin, kjo ka krijuar mundesine e sulmeve te automatizuara, pra ne momentin qe nje virus apo nje sulmues infekton nje range ip-sh shikon per te tjera, dhe per ta ber kete i duhet vetem nje skanim.

Rrenja e Problemit.

Vetem nje fjale, BUFFER OVERFLOW, aplikacione qe te lejojn te egzekutosh aplikacionin tend ne nje sistem te caktuar, ku ka me mire, vulnerabiliteti qe te lejon diçka te till te lejon kontroll te plote mbi sistemin.
Kjo eshte arsyeja qe e gjithe ajo qe eshte shkruajtur me siper po ndodh, dhe mbrojtja ndaj ketij lloj sulmi eshte shume minimale per te mos thene jo-egzistuese, pasi edhe nese keni firewall, antivirus, apo IDS ai do te monitoroj gjera “standarte” siç u tha ne fillim, psh ç’faj ka firewalli nese ti duke vizituar me internet explorer nje faqe interneti kthehesh ne nje zombie (kompiuteri yt, jo ti) , kodi kalon ne menyre legjitime dhe nese firewalli bllokon porten atehere nuk ka me internet dhe ti s’ke mundesi te lundrosh, e njejta gje me anti-viruset te cilet nuk jane te pergjegjshem nese me ane te nje aplikacioni (te besuar) egzekutohet kod (qe zakonisht mund te jete i maskuar dhe mund te duket normal) nga ky aplikacion dhe sistemi kompromentohet.
Nga keto kuptuam se mbrojtja kunder ketyre lloj sulmesh eshte shume e veshtire, kjo per disa arsye:
1) Nuk mund te monitorohet i gjithe kodi i te gjitha aplikacioneve, edhe nese behet nga ta dalloj sistemi mbrojtes qe ai kod i caktuar eshte kod keqberes dhe jo kod qe po e egzekuton programi? (po mendon tani per Snort dhe db e tij te firmave te shellkodeve dhe exploiteve te ndryshme) edhe nese do te kishte fatin te kapte nje te tille (ne rastin se sulmuesi po perdor diçka te gjetur rrugeve dhe jo te koduar vet [rast fillestaresh] nuk do te ishte ne gjendje ta ndalonte).
2) Sistemet e sigurise sot, maksimumi qe mund te bejn eshte te lajmerojn per nje sulm te till por jo ta parandalojn, (shume te pakt jane ata qe mund ta bejn).
3) Keto lloj vulnerabilitetesh kane te bejn me programatorin me shume se sa me vet programin, keshtu qe nuk ka diçka standarte, eshte gjithmon problem qe mund te ndodhet kudo ne 30000 rreshtat e kodit qe mund te kete shkruajtur dikush. Fakt per kete qe thash, provo te kerkosh ne google me “buffer overflow vulnerability scanner” dhe shiko rezultatet, asnje aplikacion per te bere diçka te tille, nderkohe qe kerko me “port scanner” apo “vulnerability scanner” dhe shiko listen se ku perfundon. Kjo eshte fakteqesi.
4) Tendenca per te nxjerr programet sa me shpejt, e ben kete problem gjithmone e me kritik, keshtu qe mendoni pak per programet gjysem te perfunduara ku edhe per ate qe jane programuar nuk e bejn plotesisht, ç’fare impakti ne nivelin e sigurise mund te kene ato ne nje sistem?
Vetem nje fjale: FATAL.

Si pasoje e ligjit te BUG-eve , dhe si pasoje e arsyeve qe u listuan me siper, ato qe u thane ne fillim te kesaj teme jane plotesisht te verteta, dhe nuk kane egzagjeruar ata qe thane “nje sistem i sigurt eshte nje sistem i fikur, i mbyllur ne nje burg te siguris maksimale i rrethuar me roje te armatosur me shot-gun”.
Mbas kesaj, mund te kuptoni fraza te tilla qe mund te gjenden tek zfo05 (kerkoje se eshte postuar ne kete blog)

“Apologies for the poor quality of the hacklog, but I’m old now and let’s face
it, Kevin Mitnick is done. You can move your box anywhere Kevin, we’ll find you
and own you. You should know best, it’s the “hacker” in us – or something like
that…See you soon.” — ky ishte mesazhi i lene nga profesionist “Kevin Mitnickut” te madh, “HACKERIT” legjendar, bytw FU** Y*U Kev.

Per ta perfunduar:

_____________________________________
Between us and people we know, everything is owned. We keep owning shit that
others have, they own some shit we already have. We don’t exactly hire
secretaries to sort this out.

We’re colonizing the internet the way Europe colonized Africa, cutting it up
into little pieces. We have your accounts, your mail, your dev box, your host,
and your ISP. Code exec on your lappy if we think it’s worth the hassle. We
have so much shit owned we can’t manage, or even remember, half of it
. Targets
pop up and we have to ask ourselves if we already have it, because we just don’t know.

We could set up franchises like McDonalds, one on every corner of the net, over
99 billion served. Supplying you with artery-clogging hax morning afternoon and
night.

We need some goddamn staff, we’re a billion dollar enterprise running on a
lemonade stand budget. If there was much useful help out there, we’d hand out
root passes like candy on hallowe’en. That’s just a pipe dream, we just find
more people we can’t trust. Anyone useful is as busy as we are. Thank your
lucky stars we ramble on.
____________________________________________________

Ky eshte realiteti.
Mire, dikush (supersticioz) eshte duke pyetur veten e tij, per arsyen qe me shtyu te shkruaja kete…
Faktikisht jane shume arsye..
a) Me pelqen e verteta, dhe me pelqen te demaskoj te paverteten, sidomos kur shemb iluzione. (kjo per te bere te kuptohet qe ajo qe shitet sot me emrin “siguri” eshte fraze boshe, dhe te flasesh kete qe eshte shkruajtur ketu eshte tabu sepse biznese te tera bazohen ne keto iluzione).
b) Materiali eshte shume i mire per programatoret qe nuk duan te pushohen nga puna se programi per te cilin ke bere dark te madhe e ke festuar me miqt, 1 vit me vone ben qe kompania blerese te humbi 1’000’000$
c) Me pelqen :)

8 thoughts on “c0d1ng hoR30R

  1. Hahahah :D, “tastiera me therriste lol” gjithsesi mund te behet shume me horror se ç’eshte, por atehere do te ishte shume me e gjate si teme dhe do te kalonte ne nje nivel me teknik.

  2. Pershendetje Ardit.

    Tema eshte interesante po aq sa e “bukur”,por mua me kujton ate historine e “vezes me pulen”.

    E lexova me interes c’ka ke shkruar me lart, dhe me beri pershtypje njekohesisht kurioz, te di se nga e gjen gjithe ate “oreks” te shkruash per kete teme ose sic e quaj une “vrima e zeze” .

    Plako,kjo “mesele” qe hape ka shume [buke] qe do kohe te lire dhe te ulur ne tavoline me cigare/kafe te flasim pa fund. :)

    Shiko mbase e prish muabetin me gjumin dhe dukesh online .

    Te pershendes.

    Biggy

  3. Hahahah :D, e dija qe do thoje keshtu ,
    Dilema para se te shkruaja kete teme ishte –
    – nese e trajtoja teknikisht atehere do dukej tek lexuesit si nje teme me shume ne assembly
    – nese nuk do te listoja argumentet do te dukej thjesht si nje pretendim i imi e asgje me shume
    Nderkohe qe realisht tema eshte teme E MADHE, dhe me thene te drejten kerkon 1 jave per tu sqaruar ashtu siç duhet, si nga ana praktike ashtu nga ana teorike.
    Psh, keqkuptimi i pare qe ben lexuesi qe nuk e di se ç’fare eshte teknikisht dhe praktikisht nje buffer overflow eshte te thote : “Hec mo daje se s’ka problem, keshtu ka qene hackerat nxirrnin nje problem kurse te tjeret do nxjerrin zgjidhjet por kjo eshte e vertet me problemet e tjera si RFI, SQL INJECTION, LFI, Vulns te tipit network, apo buge te ndryshme nderkohe qe me kete rast eshte diçka tjeter, aq tjeter dhe aq e vertete sa ka nje ligj qe per ç’do 10 KLOC kod ka mesatarisht nga 5-50 vulnerabilitete ku zakonisht 5% eshte i eksplotueshem nga jashte (remote buffer overflow) e tani te bejm nje llogari te vogel.
    Nje korporate ka 120’000’000 KLOC kod, perfshire te gjith serverat , programin ne egzekutim, sistemet operative, proxyt, sistemet mbrojtese, databazat etj etj etj etj, bej llogarit vet se sa vulnerabilitete ka, 5% e ketyre pastaj e ke te eksplotueshem nga jasht. Pra , ne kete rast ka pak shqetesim per intruderin nese programi i targetuar eshte antivirus apo media player, per ate eshte thjesht kod qe i lejon te egzekutoj ate qe deshiron nga nje kompiuter i ulur qindra apo mijra kilometra larg.
    Nese vazhdoj te shkruaj do te bind akoma me shume me argumente qe nuk eshte thjesht tipikja “veza dhe pula” por ketu kemi vezen edhe pulen te skuqura ne tigan.
    Keto vulnerabilitete jane shume te zakonshme sepse:
    a) Programatoret nuk kane pergatitje per ti evituar, psh nje malloc() i perdorur keq do te mjaftonte per te shitur nje program te madh.
    b) Programatoret detyrohen shpesh te mbarojn nje program pa e testuar, duke nxituar gje qe sjell edhe kjo shumimin e mundesive per egzistencen e buffer overflow.
    c) Dhe kjo nder me te rendesishmet, per te kuptuar ketu qe ky nuk eshte rasti ku “te keqinjte” gjejn diçka dhe “te miret” pergjigjen por ky eshte rast ku te keqinjte e kane gjetur, kurse te miret nuk kane se si ta zgjidhin per shkak te arsyeve te mesiperme. Kjo eshte se te “miret” jane te fokusuar ne Network Security, ose Web Application Security dhe jo ne Software Security, fushe qe tentohet te injorohet, kjo sepse:
    Per te gjetur nje vulnerabilitet te nivelit web mjafton te:
    a) perdorim nje web-vulnerability scanner falas
    b) te kerkojm per nje te gatshem (mbase dikush e ka gjetur para nesh)
    d) Te stresojm aplikacionin me inpute standarte psh ,per sql injection te luajm me “id-n” me ‘++ , rfi me =, me xss te encodojm string-un e futur, me lfi-t te provojm nese nje file na lejon aksesin e direktorive te brendshme e keshtu me radhe.
    Per te gjetur nje vulnerabilitet te nivelit network edhe ketu, punen me te madhe e ben aplikacioni, dhe zakonisht ne kete fush sot luhet me fronte (DMZ). Krijohet nje barrikad me firewalle, proxy, honeypot, IDS\NIDS\HIDS, IPS etj dhe luhet me Intranet, duke limituar komunikimin keshtu qe minimizohet impakti i sulmit.

    POR ç’fare ndodh ne rastin tone?
    Ketu nuk kemi asnje program, ketu kemi thjesht kodin dhe personin i cili duhet te lexoj me kujdes 30’000 rreshta kod, pasi nuk eshte e thene te kerkosh me notepad per malloc() dhe gjete vulnerabilitetin, por duhet te shikosh implikimin qe ka ai funksion me programin e shkruajtur, vendin qe ka ne program dhe me e rendesishmja si mund te perdorej nga nje i jashtem. Te gjitha keto pra nuk mund ti bej asnje lloj programi (analizimin ne kete lloj forme), per kete arsye ajo qe po flasim ka dhene rezultatet qe u lexuan tek tema.
    Nese qenka keshtu do thuash, pse nuk e nxjerr njeri google.com hacked?
    Normalisht ketu nuk po flasim per femij, as per njerez peng te fames dhe egoizmit, ç’do veprim shihet ne impaktin, perfitimin e sidomos perfitimin lol, pra ç’fare fitimi do kishin po ta benin nje gje te tille?
    Preferojn te rrijn urte , bute, e te bejn ate qe deshirojn pa u vene re, e pa lene gjurme.
    Neser ka mundesi te jem ne skype :), flasim me gjere e gjate..

  4. Pershendetje, tema eshte mese e bukur dhe mjaft reale, kush ka lexuar dhe kush eshte mar me siguri informatike apo me programim e di shum mire rendesine e nje buffer overflow dhe rrezikun qe kanoset nga dy kode te implementuara keq te cilat mund te cojn ne crash nje program apo te hapin vend ne memorie per futjen e nje shell code duke siguruar te drejta te plota dhe te gjitha ne nivel makine. Ardit tema eshte trajtuar shum bukur dhe ne menyre mjaft interesante, ndersa lexoja me kujtohej nje video e disa miqeve te cilet fiton akses ne nje email shum VIP apo jo. Buffer Overflow si te thoja parajsja e nje hackeri por ama dua ta theksoj hacker e jo nje lameri qe edhe po tja japesh te gatshem exploitin dhe shell codin nuk fiton akses dot prandaj nuk e shohim shume ne net te trajtohet apo te perdoret si tip exploiti pasi duhen njohuri te mira ne asembly dhe ne regjistrat e procesorit per ta perdorur. Per ato te cilet nuk kane njohuri mbi nje buffer overflow po ju a shpjegoj me pak fjale.
    Buffer Overflow eshte nje vulnerabilitet qe gjendet ne kode te cilat jane te shkruajtura keq dhe zakonisht ne funksione qe nuk limitojne apo kontrollojne sasine e memories, ne kete menyre kur nje input kalon memorien qe do ti duhej nje programi apo qe eshte caktuar per ate soft krijohen zona te lira ne ram ne te cilat intruderi mund ti shfrytezoje per te futur shell codin per te fituar te drejta mbi makinen qe sulmun.
    Cfar eshte Shell Code:
    Shell code eshte nje kod i shkruajtur zakonisht nje assembly i cili ekzekuton komanda te cilat arrijne ti japin sulmuesit akses ne nje shell apo konsole me te drejta te caktuar deri ne root.
    Kjo teme eshte shum e gjere sic tha dhe arditi dhe normalisht sot ne keto momente ne mund te sulmojme nje pc me win shum shpejt p.sh duke shfrytezuar nje buffer overflow te media playerit.
    Kush eshte i interesuar te mesoj dhe te perdor per arsye edukative nje buffer overflow i keshilloj te shohi aplikacionin metasploit i cili ka shume exploite te tille biles softi siguron edhe mjaft shell code te gatshem qe mund te perdoren.

  5. Pershendetje Eldo :), rrofsh per komplimentet.
    LoL, vidjoja me sa mbaj mend ishte akses ne server, pastaj per “sport” nje hax0r@xxxxx.com + GPG 😀
    Bere mire dhe per shpjegimin, ne fakt edhe une e mendova por s’doja ta trajtoja temen shume teknikisht, ndryshe siç e thashe me siper do te ishte nje teme me shume ne assembly lol.
    PS, metasploit do te behet komercial.

  6. Sot per disa ore gjigandi i Social Networking “Facebook” pesoi nje FATAL BUG . Praktikisht kjo do te thote se i jepte te drejte dikujt (gjithkujt) te shikonte se cfare bisedonte ne chat me shoket pa patur fare te drejten. Dmth nje shok tuaj mund te shikoj se cfare shkruan ti me te tjeret ne chat.
    Bug i cili u kthye ne exploit….

    Jam kurioz te di nese ky bug sot u shfaq,apo sot u be publik ??????!!!!!

    Gjithsesi chati ne facebook punon ne rregull tani,pasi e “rregulluan”.

    Welcome FaceChat !! 😛

  7. Facebook lol?
    Parajsa per IW.
    Hyn, merr te dhenat qe te interesojn, del.
    Me shpejt se nje gjendje civile dhe me me pak burokraci.
    Ka me shume exploite per facebook se sa per internet explorer, te gjith kane facebook dhe aty mund te marresh:
    Emer, mbiemer, moshe, tel , email, te studjosh detaje personale, jete personale, gjithçka personale 😀
    Mendon se diçka mund ti mbaj larg “ata” nga e gjithe ky hoj mjalti =_=’
    Veshtire…
    Une nuk e di mire situaten dhe nuk mund te jap ndonje mendim te sigurt per situaten porse ne pergjithesi exploite te tilla mund te rrin private per vite te tera. Askujt nuk i intereson ti publikoj.

Leave a Reply

Your email address will not be published. Required fields are marked *