ADWARE - fotkica.comfotkica.com/uploads2N/94804_1461769216_Knjiga1.pdf · paketom a koji medjutim nigde nisu spomenuti pri samoj instalaciji niti je nagovesteno njihovo ... - outbound

Embed Size (px)

Citation preview

  • ADWARE Pri preuzimanju, u ovom slucaju, samih desktop tema ili p2p programa, pored opisa samih programa nigde se na sajtu ne pominje da ce se instaliranjem ovih programa dodatno instalirati i adware programi. Nakon preuzimanja programa/teme i njegovog pokretanja pokrece se installer (program koji ce voditi instalaciju) koji sadrzi End User Licence Agreement (EULA). EULA je End-User License Agreement, odnosno ugovor izmeu proizvoaa ili prodavca softvera i krajnjeg korisnika tog softvera. U ovom ugovoru se obino navodi kako se softver sme, a kako se ne sme koristiti i sl. Prihvatanje uslova iznesenih u EULA ima istu snagu kao i potpisivanje ugovora i pravosnazno je na sudu. Adware- na veoma vest nacin 'obmanjuju' korisnika. Korisniku se daju veoma sture informacije u tzv. EULA pogodbama koja su cesto kucane gusto, malim slovima tako da su necitka i obeshrabruju korisnika da procita celu pogodbu. Cak i u slucaju da korisnik procita celu EULA pogodbu, program (u ovom slucaju adware) se opisuje, prosecnom korisniku, nerazumljivim tehnickim terminima koji ce opet naterati korisnika da jednostavno pritisne 'Accept' bez razmisljanja. U nekim primerima EULA-e, koji moze da sadrzi i vise od 8000 reci, tek pri samom kraju, korisniku se objasnjava da prihvatajuci ovu pogodbu on daje pristanak na reklamne banere i slicno. Medjutim i tih par recenica u kojima se to spominje, i u onima u kojima se objasnjavaju sami programi su veoma cesto opisani na nacin i terminima koji korisniku daju pogresnu sliku o krajnjim funkcijama programa. Iako su ovi adware programi prakticno instalirani sa host programom npr. temom/p2p programom, za njihovo deinstaliranje se korisnik mora poprilicno namuciti jer se jednostavno ovi programi ne deinstaliraju kada pokrenete uninstaller (program koji pokrece deinstalaciju) za npr. temu/p2p program vec se sama tema/p2p brise iz kompjutera, a adware programi ostaju. Cak ni sam proces deinstaliranja nije moguce izvesti iz Add/Remove Programs apleta nego se desktop tema mora deinstalirati iz Start Menija. Proces deinstalacije adware-a koji su ostali se razlikuju od programa do programa; u nekim se slucajevima korisnik prakticno odgovara od same deinstalacije tako sto mu se predocavaju, u pojedinim slucajevima i lazne informacije o programu u kojima se cak kaze da neki programi mogu prestati sa radom ako se nastavi deinstalacija i zahtevaju od korisnika da provede mnogo vise vremena nego sto je to bilo potrebno pri samoj instalaciji istog a sve u cilju odustajanja od same deinstalacije. Neki adware programi nakon deinstalacije prikazuju anketne stranice sa linkovima do svojih proizvoda, koji su opet nista drugo nego adware programi. U pojedinim slucajevima se u Add/Remove Programs apletu prikazuju unosi koji se ne mogu povezati sa instaliranim adware-om, ili se sam adware instalirao bez ununstaller-a tako da od korisnika zahteva dodatnu instalaciju nekog anti-adware programa. U samom Add/Rremove Programs apletu su se nasli i unosi nekoliko adware -a koji su se instalirali sa paketom a koji medjutim nigde nisu spomenuti pri samoj instalaciji niti je nagovesteno njihovo instaliranje! Stavise ti adware programi se instal iraju u Windows-ov System32 direktorijum, skriveni od korisnika. Sami unosi u Add/Remove Programs apletu se cesto ne mogu povezati sa adware programima jer dolaze pod razlicitim imenima i zbunjuju korisnika koji pokusava da ukloni odredjeni program. Zakljucak: Korisniku koji zeli da instalira npr. jednostavnu desktop temu, pri samom preuzimanju se ne saopstava da se samim instaliranjem teme instaliraju i dodatni programi koji ce prikazivati reklamne banere na njegovom kompjuteru. Tokom instalacije korisniku se daju netacne, konfuzne ili lazne informacije o tome sta se instalira u tzv. EULA pogodbama u kojima se trazi korisnikov pristanak i cesto su napisane preopsirno, koriscenjem konfuznih termina na kraju dajuci pogresnu sliku krajnjem korisniku ili cak ne dajuci nikakve informacije o pravim funkcijama programa koji se instaliraju.

  • Vecina adwarea zeli sa sebe da skine pretnju sudskog gonjenja, tako da u 99% slucajeva u EULA -i stoji da ce da se instalira i adware, i u nekom obliku je objasnjeno sta on radi, mada se to vise svodi na advokatske trikove nego na pravo objasnjenje.

    ON-LINE SCANERI Online skenere mozemo podeliti na dva tipa: - one koji skeniraju samo po jedan fajl - one koji vam skeniraju ceo komp Kod prvih (nazvacemo ih file-scanners), vi uploadujete fajl koji ce nakon toga biti proveren na nekom tamo serveru, i vama ce biti prezentovan rezultat. Ovde nije bitno koji je browser, cak nije bitno ni koji je OS. Kod druge vrste, jasno je da nece da se vrsi upload svih fajlova sa vaseg kompa, ve c da mora da postoji neko drugo resenje. Sajt na neki nacin mora da instalira skener na vas komp. Za sada, jedino IE dozvoljava tako nesto, i to da skener bude u vidu ActiveX komponente (u sustini najobicniji DLL, samo sto koristi IE kao svoj graficki interfejs).ActiveX je koliko dobra, toliko i losa mogucnost IE-a, posto i dobar deo adwarea/spywarea isto koristi ovu mogucnost.Od verzije IE 6.0, ActiveX je po defaultu iskljucen, pa je eventualno potrebno cackati po opcijama da bi se uljucio kako bi ovi online skeneri mogli da rade. U nekim slucajevima, kada korisnik ima los AV na kompu, ActiveX skener je mozda jedina mogucnost da mu se pomogne. File scanners nam nisu interesantni, posto obicni korisnik kome mi pokusavamo da pomognemo nema nikakve koristi od njih. Nas konkretno interesuju online skeneri koji skeniraju ceo komp. Online skeniranje kao to sam naziv kae predstavlja skeniranje na internetu (online - je engleska re i znai na vezi, tj. na internetu). Potreba za online skeniranjem se javlja iz razliitih razloga kao npr: - provera odreenih fajlova drugim antivirusnim reenjem od naeg, a da se ne mora u isto vreme i instalirati taj antivirusni program. - testiranje uinkovitosti antivirusnog reenja koje imamo na naem raunaru, na taj nain to demo uz pomod online skenera testrati sumljive fajlove i samim tim proveriti i sposobnost naeg sopstvenog antivirusnog reenja. - u odreenim situacijama na antivirusni program moe biti onesposobljen, online skeniranjem moemo utvrditi sa kakvom malicioznom opasnodu imamo posla i na osnovu toga koje mere moemo dalje preduzeti. - i tako dalje, i tako dalje, potreba za skeniranjem na internetu moe biti mnogostrana, te zbog toga skoro svaka velika antivirusna kompanija ima online skener.

  • Firewall: FW ne upozorava na pokretanje programa, vec na pokusaj pristupa nekog programa mrezi. Kada smo vec kod FW-a, da razjasnimo neke stvari: - treba napraviti razliku izmedju inbound (dolaznih) i outbound (odlaznih) konekcija - svaki FW (pa i onaj Windowsov iz SP1) ima inbound zastitu - outbound zastita je kontrolisano (ne)dozvoljavanje instaliranim programima da uspostave konekciju sa drugim kompjuterom Kod inbound kontrole svaki FW ima pravilnik koji protokol dopusta na kom portu. Ukoliko necega nema u pravilniku on ce upitati korisnika sta ciniti.Ako recimo bude dolaznih TCP paketa na portu 80, FW sigurno zna da se to u browseru ucitava neka stranica.Ako naidje UDP paket na portu 6453, onda je to vec nestandardna stvar, i tu FW vec treba nekako da reaguje. Slicno vazi i za odlazne pakete. Elem, da razbistrimo jos jednu stvar kada smo vec kod portova. Jasno je da ne mozemo da otvorimo 3 sajta sa razlicitih servera sve preko porta 80. Browser ce samo da pozove server preko tog porta, pa ce onda da preusmeri (bind) dolazne podatke sa tog servera na neki vislji (>1024) slobodan port, tako da nakon toga preko porta 80 moze da komunicira sa nekim drugim serverom. FW mora da posmatra i sta je gde bindovano da bi mogao da regulise saobracaj. Logicno je da je bindovanje primenljivo samo na dolazne konekcije.Server ce takodje sa svoje strane da binduje konekciju prema nasem racunaru na neki vislji port. Znaci, port 80 je samo posluzio da se uspostavi komunikacija. Kako prepoznati losu od dobre komunikacije? - snifovanje paketa u potrazi za poznatim eksploitima, pa blokirati port ukoliko je prepoznat exploit u paketu podataka - blokiranje komunikacije na portovima za koje se zna da ih koriste neki trojanci - pitati korisnika za sve ono sto nisi siguran Evo recimo jedne logicke dedukcije koju moze jedan FW da ima kao pravilo: - program X pokusava da uspostavi konekciju na portu 6667 (IRC port) - program X ne postoji u bazi poznatih IRC klijenata - sumnjiva rabota, obavesti korisnika i pitaj sta raditi Znaci, FW moze da funkcionise i bez nekih posebnih dedukcija, cisto blokiranjem kompletnog saobracaja na nekom portu ukoliko nije to bindovan port sa nekog od poznatih legitimnih portova. U ovakvom slucaju bi p2p klijenti i razni messengeri bili zesce osakaceni. Druga mogucnost je postojanje neke inteligencije koja ce da prepozna program koji trazi outbound konekciju, na osnovu neke baze poznatih procesa i portova koji oni koriste.

  • HIJACK THIS Logfile of Trend Micro HijackThis v2.0.2 Scan saved at 4:40:13 PM, on 3/12/2009 Platform: Windows XP SP2 (WinNT 5.01.2600) MSIE: Internet Explorer v6.00 SP2 (6.00.2900.2180) Boot mode: Normal Logfile of Trend Micro HijackThis v2.0.2 ova linija da je to log file od programa na kojem je pokrenuto skeniranje i njegovu verziju.Obicno kod programa je bitna verzija zbog toga sto su neki zastareli,a neki su opet najnovija verzija koja moguce da nije dovoljno testirana i samim tim nesigurna. Scan saved at 4:40:13 PM, on 3/12/2009 govori nam kad je obavljeno skeniranje sistema i bitno je zbog pregleda loga,jer zlocudni programi prave modifikacije u sistemu, registry tako da nam je bitno da taj log bude napravljen u onom trenutku kada se krece u pronalazenje malware-a. Platform: Windows XP SP2 (WinNT 5.01.2600) opisuje vrstu operativnog sistema,koristi nam zbog nacina na koji ce se pristupiti otklanjanju problema, da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog sistema. MSIE: Internet Explorer v6.00 SP2 (6.00.2900.2180) govori nam verziju web borswera,a to je bitno zbog poznatih propusta broswera i zbog malware-a koji koriste te propuste. Boot mode: Normal govori nam u kom rezimu radi sistem,bitno je zbog toga jer nacin rada mora da bude normalan i da svi resursi rade normalno,da nema nekih restrikcija zbog kojih bi bilo teze pronaci infekciju ili gresku u sistemu. Za HijackThis je potreban poseban folder (bitno je da nije startovan direktno iz WinRAR-a ili WinZIP-a) da bi se napravio backup. Ukoliko ne bude raspakovan u poseban folder, backup ce biti napravljen u TEMP folderu, odakle vise nece moci da ga nadje da bi se vratio backup ukoliko ciscenje krene naopako. HijackThis ima svoj nacin zapisa kljuceva, koji se malo razlikuje od standardnog zapisa u REG fajlovima (ComboFix koristi taj standardni zapis). HJT vrsi filtriranje loga, tj. ima listu onoga za sta je 100% siguran da je legitimno, i to ne prikazuje u logu. Moze se HJT naterati da prikaze i ceo log, bez filtriranja. HijackThis pokazuje samo servise, ne i drajvere. HJT ima listu MS-ovih fajlova koje nece da prikaze u logu. To je da se log ne bi opteretio irelevantnim linijama. Kako je SP3 za XP izasao nakon HJT 1.99.1, HJT nema neke nove MS-ove fajlove na toj svojoj listi, pa ih zato prikazuje u logovima. O9 - Extra button: (no name) - {e2e2dd38-d088-4134-82b7-f2ba38496583} - %windir%\Network Diagnostic\xpnetdiag.exe (file missing) O9 - Extra 'Tools' menuitem: @xpsp3res.dll,-20001 - {e2e2dd38-d088-4134-82b7-f2ba38496583} - %windir%\Network Diagnostic\xpnetdiag.exe (file missing)

  • To su standardne stvari u IE-u (izmedju ostalog su tu poruke koje ispisuje kada ne moze da nadje neki sajt itd.).(file missing) stoji zbog loseg parsera u HJT-u koji ne ume lepo da procita vrednosti ovih kljuceva iz reg. baze. xpnetdiag je pomocni fajl koji sadrzi gomilu raznih poruka koje su potrebne IE-u. Recimo, kada IE ne nadje neki sajt, on nam umesto sajta prikaze onu poruku o gresci na kojoj imamo i neke linkove koji otvaraju podesavanja mreze ili IE-a ukoliko kliknemo na njih. Te poruke se nalaze u ovom fajlu. Ono (file missing) je bug u HJT-u ukoliko se u reg. kljucu nalazi neki fajl koji se poziva sa parametrima. Konkretno, ovaj DLL se poziva na sledeci nacin - %windir%\Network Diagnostic\xpnetdiag.exe -1033 HJT se zbuni zbog one brojke, pa ne zna gde se zavrsava ime fajla, i onda nema pojma sta treba da trazi na disku, pa prikaze (file missing). C:\WINDOWS\System32\smss.exe Smss.exe je sastavni deo Majkrosoftovog operativnog sistema. On je menader sesije podsistema, koji je odgovoran za startovanje korisnike sesije.Ovaj proces je uveden u sistemsku nit i odgovoran je za razliite aktivnosti, ukljuivi lansiranje Winlogon-a i Win32-a(Csrss.exe) procesa i podeavanje sistemskih promena. Poto su lansirani ovi procesi, ekaju ili Winlogon-a ili Csrss.exe da se zavre. Ako se ovo deava normalno, sistem se gasi, ako se dogada neoekivano, smss.exe izaziva koenje sistema. Ovaj process je potreban za stabilno i normalno funkcionisanje windows-a i ne treba se gasititi. Napomena : smss.exe fajl je lociran u C:\Windows\System32 folderu. U drugim sluajevima smss.exe je virus, spyware, trojanac ili crv! C:\WINDOWS\system32\winlogon.exe - Proces koji pripada windows-ovom login menaderu. On regulie login i logout procedure na sistemu. Ovaj process radi u pozadini. Znai on vri korisniku autorizaciju i proverava windows-ov XP aktivacioni kod. Napomena : kao i mnogi ostali sistemski procesi i ovaj je predmet imitacije raznih malicioznih programa. Ako se ne nalazi u C:\WINDOWS\system32\ folderu, onda se radi o nekom malicioznom programu. C:\WINDOWS\system32\services.exe Deo Majkrosoftovog operativnog sistema je services.exe koj i vodi operacije startovanja i stopiranja servisa. Ovaj process takode ima posla i sa autamatskim startovanjem servisa za vreme boot podizanja kompjutera i stopiranja servisa tokom gaenja kompjutera. Proces je neophodan za stabilno i sigurno funkcionisanje raunara i ne sme se gasiti. Napomena : kao i mnogi ostali sistemski procesi i ovaj je predmet imitacije raznih malicioznih programa. Npr. ako se ne nalazi u C:\WINDOWS\system32\services.exe folderu, onda se radi o nekom malicioznom programu. C:\WINDOWS\system32\lsass.exe Majkrosoftov siguronosni mehanizam "lsass.exe" je lokalni sigurnosni server za autentinost. On verifikuje validnost korisnikovih logova ka njegovom PC/Server -u. Generie proces odgovoran za autentinost korisnika za Winlogon servis. Proces se odvija koristeci autentinost paketa kao to je po standardu Msgina.dll. Ako je potvrena autentinost, Lsass generie dokaz korisnikog pristupa, koji je koriden da pokrene incijalni tit. Ukratko, on posebno ima posla sa lokalnom bezbednocu i login policies-om. Napomena : Ovaj lsass.exe fajl je smeten u C:\Windows\System32 folderu. U ostalim sluajevima lsass.exe je virus, spyware, trojanac ili crv.

  • C:\WINDOWS\system32\svchost.exe - Svchost.exe je generini domadi proces, a to je ime za servise koji polaze od dinamike-link biblioteka (DLL). Ovaj fajl je lociran u %SystemRoot%\System32 folderu. Prilikom starta on proverava delove servisa registrija da bi napravio listu servisa koji se moraju load -ovati. Mnogostruki sluajevi svchost.exe mogu raditi istovremeno. Svaka grupa svchost.exe moe sadrati itavu grupu servisa. Zbog ovoga odvojeni servisi mogu poinjati u zavisnosti kako je svchost.exe startovan. Ovakva grupa servisa omoguduje bolju kontrolu i lake otklanjanje greaka. Da vidimo listu servisa koje pokrede svchost moramo uraditi sledede: 1. Kliknemo START u taskbaru, a onda kliknemo RUN. 2. U otvorenom prozoru, otkucamo CMD, i pretisnemo ENTER. 3. Otkucamo TASKLIST/SVC, onda pretisnemo ENTER. Napomena : kao i mnogi ostali sistemski procesi i ovaj je predmet imitacije raznih malicioznih programa. Npr. ako se ne nalazi u C:\WINDOWS\system32\ folderu, onda se radi o nekom malicioznom programu. Svchost.exe grupe servisa se sadrze u sledecem kljucu: HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost Svaka vrednost pod ovim kljucem predstavlja razlicitu Svchost grupu i predstavlja razlicitu liniju/vrednost kada pregledas aktivne procese. Svaka svchost grupa moze da sadrzi jedan ili vise imena servisa koji su otpakovani iz sledeceg kljuca, ciji kljuc sastoji ServiceDLL vrednost: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Service Primer grupa servisa koje svchost.exe opsluzuje. svchost.exe 772 DcomLaunch, TermService svchost.exe 820 RpcSs svchost.exe 888 AudioSrv, BITS, Browser, CryptSvc, Dhcp, dmserver, ERSvc, EventSystem, FastUserSwitchingCompatibility, helpsvc, lanmanserver, lanmanworkstation, Netman, Nla, RasMan, Schedule, seclogon, SENS, SharedAccess, ShellHWDetection, TapiSrv, Themes, TrkWks, W32Time, winmgmt, wscsvc, wuauserv, WZCSVC svchost.exe 972 Dnscache svchost.exe 1084 LmHosts, RemoteRegistry, SSDPSRV, WebClient svchost.exe 672 scan Brojevi oznacavaju PID ili Process ID. Jedan svchost.exe opsluzuje vise servisa. Problem ume da bude kada jedan od servisa iz jedne grupe (hostovan na jednoj instanci svchosta) pobrljavi onda ume da se desi da pobrljave svi servisi iz te grupe.Ovo je razlog sto recimo nekome nece da radi zvuk zato sto mu je racunar zarazen a antivirus mu je blokirao servis malwarea. Drajverima obicno nazivamo one samo one servise koji rade u sklopu kernela, dok one drajvere koji rade izvan kernela nazivamo servisima.Prvima je host sam kernel, i oni su ucitani u njegovom adress spaceu. Ovim drugima je host SVCHOST.

  • Drajveri koji se izvrsavaju u sklopu kernela nazivaju se jos i modulima. Oni obicno nose SYS ekstenziju (ali nije obavezno, radice i sa drugim ekstenzijama). Za kernel-mode drajvere ne postoje ogranicenja po pitanju dozvola nad fajlovima ili bilo cime drugim. Oni imaju apsolutni pristup svemu. Pad jesnog kernel-mode drajvera izaziva pad sistema (BSOD). Drajvere koji se izvrsavaju kao korisnicki procesi (user-mode drajveri) nazivamo servisima.Oni imaju ona prava koja ima i nalog pod kojim su pokrenuti.Analogno kernel-mode drajverima koji su ucitani u adresni prostor kernela (Ring0), user-mode drajveri se hostuju na tim svchost programima, tj. u njihovom adresnom prostoru. User-mode adresni prostor se naziva jos i Ring3. Pad jednog servisa izaziva pad svih servisa hostovanih na istom svchostu. Servisi nisu obicni DLL fajlovi (totalno drugacija struktura), i zato svchost ne sluzi za ucitavanje DLL fajlova.On sluzi za hostovanje servisa. Jedan SVCHOST ima tehnickih ogranicenja koliko servisa mogu biti hostovani na njemu (ovo je laicko objasnjenje, stvarni razlozi mogu biti drugaciji). Znaci, moze se desiti da na jednom svchost procesu budu hostovani 6 servisa, i da je za sedmi pokrenut jos jedan svchost. Na sistemima sa 20, 30 ili vise servisa moze se videti i po 6,7 svchost procesa u task manageru. Servisi su po strukturi slicni drajverima, s razlikom da se drajveri izvrsavaju kao deo kernela, a servisi u user spaceu. Kako servisi dolaze kao DLL-ovi, oni ne mogu biti pokrenuti kao aplikacije, vec ih nesto mora ucitati. Svchost sluzi za tako nesto. Jedan Svchost se moze koristiti za ucitavanje cele grupe servisa, sto kao losu stranu ima da pad jednog od njih moze (i uglavnom hoce) prouzrokovati prestanak rada svih servisa iz te grupe. C:\Program Files\Messenger\msmsgs.exe Msmsgs.exe je glavni proces koji ima veze sa MSN-internet kurirska alatka za atovanje, instralirana po default-u na vedini windows-ovih kompjutera. Tray bar je takoe instaliran pored ovog procesa za laki pristup osobinama kao to su internet at, deljenje fajlova i audio/video konferisanje. Ovaj process nije neophodan. Diseblovanje ili omogudavanje je stvar samog korisnika. Napomena: ovaj process je smeten u C:\Program Files\Messenger folderu, u suprotnom radi se o malicioznom programu. C:\WINDOWS\system32\ctfmon.exe - Ctfmon.exe je process Majkrosoftovog slubenog sajta koji prati sve windows-ove aktivnosti i omogudava stavljanje teksta sa servisnom podrkom za raspoznavanje govora, raspoznavanje runog pisanja, tastature, prevoda i druge alternativne korisnike ulazne tehnologije. Napomena : kao i mnogi ostali sistemski procesi i ovaj je predmet imitacije raznih malicioznih programa. Ovaj proces se moze naci kod skoro svakog sa Balkana, imao on instaliran Office ili ne. Cim se doda vise tastatura u Windowsu (engleska, srpska, pa cirilicna srpska itd.), dole kraj sata ce da se pojavi mala ikonica za odabir tastature, a proces o kojem pricamo pripada tom apletu.Ubijanjem procesa ne nestaje language bar, ali ni ne funkcionise vise. C:\WINDOWS\Explorer.exe - Microsoft Windows Explorer ima dvojaku funkciju tj.moze da se startuje u dva moda. On je Windows-ov menader programa. Upravlja Windows-ovom grafikom koljkom ukljuujudi taskbar, desktop i fajl menader. Ako se ovaj proces iskljui Windows-ov grafiki interfejs de nestati. Kada startujemo Explorer on pogleda da li je aktivan jos neki Explorer. Ukoliko nije onda on sebe startuje u shell modu (to je ono sto je nama poznato kao Desktop sa taskbarom, satom itd.)

  • Ukoliko Explorer vidi da je vec startovan neki Explorer, on pretpostavlja da je Desktop vec podignut, pa onda startuje sebe kao file manager. Sto se tice nedostatka Explorera iz liste procesa, kako se to prakticno manifestuje? Koji su vidljivi simptomi? Uopste ne mora da znaci da je sistem ostecen, moze jos kako da radi bez Explorera.Najcesci simptomi su prazan ekran bez radne povrsine, inace moze i tada da se pokrene explorer preko Task Manager-a -> File-> New task (Run) . Znaci, moguca je situacija u kojoj explorera nema u listi procesa, a sve funkcionise kako treba zato sto korisnik koristi neki drugi shell. Explorer nije jedini shell koji postoji za Windows. Kao sto na linuxu imas Gnome i KDE, i za Windows postoje vise shellova koji omogucavaju desktop, taskbar itd. itd. C:\WINDOWS\system32\services.exe - Sluzi za pokretanje, gasenje i saradnju sa ostalim servisima OS-a. C:\Windows\System32\rundll32.exe - Rundll32 - slicno svchostu, s tim sto ne sluzi za pokretanje servisa, vec aplikacija koje dolaze u vidu DLL-ova. Najcesce su u pitanju apleti, tipa kontrolnih panela za graficke kartice koji stoje u tray-u, mada upotreba nije ogranicena samo na njih. Znamo sta je DLL. Standardan DLL ima i standardan Dllmain entry point. DLL koji poseduje tu funkciju, on ima sve osobine jednog EXE fajla, i pokrece se pozivanjem Dllmain funkcije.RUNDLL32 sluzi upravo za tako nesto. Rundll32 je program za ucitavanje DLL fajlova, onih standardnih. Standardan DLL fajl sadrzi funkciju DllMain (obican EXE sadrzi funkciju Main). Jedina prakticna razlika izmedju EXE i standardnog DLL fajla je u nazivu te funkcije za pokretanje.Rundll32 radi upravo to - ucitava DLL i poziva tu njegovu funkciju za inicijalizaciju. Postoje jos i DLL-ovi bez ove funkcije (pitanje je sta je programeru trebalo) koji su samo skupovi funkcija potrebne nekom programu. Njih ne mozes ucitati uz pomoc Rundll32. Rundll32.exe je univerzalan program za pokretanje standardnih DLL fajlova. Pod standardnim DLL fajlovima podrazumevam sve one koji imaju implementiranu funkciju DllMain(). Uz pomoc rundll32.exe mozes recimo da pokrenes neki BHO za IE cak i ako IE nije pokrenut. Koji proces se obavezno javlja na listi procesa ukoliko je na racunaru startovan neki .NET program? Kada je startovan neki .NET program, obavezno se ukljuci i .NET debugger: C:\Program Files\Common Files\Microsoft Shared\VS7DEBUG\MDM.EXE Bitno je da znamo da je debugger tu ukoliko je neki od programa pisan u .NET-u, i da ga obavezno ima kada je ucitan ATI Control Panel (a to ti je maltene svaki drugi log). *************************************************************************************

    COMOBOFIX ComboFix koristi istu sintaksu kao i REG fajlovi, sa veoma malim razlikama za par kljuceva .

  • Reduced mod? U reduced modu ne brise nista automatski, vec samo pravi log. Sta on radi kad vrti to stage1..stage 2 ... ? Svaki Stage sluzi za nalazenje jedne konkretne infekcije.Primer (izmisljen, da ne bih sada stvarno tumbao po CFu da nadjem sta je sta tacno), stage 5 trazi Vundo, stage 6 trazi Renos itd. Kada kljucu obrisemo vrednost i sam kljuc bude izbrisan jer je prazan. Znaci, treba da postoji bilo kakva vrednost, pa makar ona bila i prazan string. Kompjuteru je prazan prostor (space) isto sto i slovo, tako da nama nije isto da li ces postaviti prazan string, ili string koji sadrzi jedan SPACE karakter. [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchURL] "(Default)"="http://www.updatesearches.com/search.php?qq=%1" U jednoj liniji ces videti i rec (Default), nju u CFScriptu I REG fajlovima pises kao @. Default je ono sto dolazi sa cistim Windowsom. Registry je podjeljen na nekoliko logickih djelova ili "hives"-ova (zbirnih grupa) i zbog toga sve pocinju sa "HKEY". One se obicno pisu skraceno sa tri ili cetiri slova i te skracenice pocinju sa "HK", npr. HKCU. HKEY_LOCAL_MACHINE i HKEY_CURRENT_USER imaju slicnu strukturu jedan prema drugom. Korisnicke aplikacije tipicno prvo traze svoje postavke u "HKEY_CURRENT_USER\Software\Vendor's name\Application's name\Version\Setting name", i ako podesavanja nisu nadjena, trazi se na istom mjestu pod kljucem HKEY_LOCAL_MACHINE. Ovakva hijerarhija je dobra za administratorsku politiku podesavanja, gdje HKLM moze uzeti prednost nad HKCU. HKCU-HKEY_CURRENT_USER -Hive kljuc koji sadrzi informacije o podesavanjima/konfiguraciji korisnickog naloga koji se trenutno koristi. HKEY_CURRENT_USER cuva podesavanja koja su specificna za trenutno prijavljenog korisnika. HKCU kljuc je link na podkljuc kljuca HKEY_USERS koji odgovara tom korisniku (ista informacija se odrazava u obje lokacije). Na Windows NT baziranim sistemima, svako korisnicko podesavanje se cuva u svom vlastitom fajlu nazvanom NTUSER.DAT i USRCLASS.DAT unutar njihovog "Documents and Settings" foldera. HKLM-HKEY_LOCAL_MACHINE-Hive koji sadrzi informacije o globalnim podesavanjima[Hardwer,neka podesavanja samog sistema] HKEY_LOCAL_MACHINE cuva podesavanja koja su specificna za lokalni kompijuter. Na NT baziranim verzijama Windows-a, HKLM sadrzi cetiri podkljuca: SAM, SECURITY, SOFTWARE i SYSTEM, koji se nalaze unutar svojih respektivnih fajlova lociranih u %SystemRoot%\System32\config folder. Peti podkljuc, HARDWARE, je "izbrisiv" (volatile) i kreiran je dinamici, te kao takav nije smjesten u fajlu. Informacije o sistemskim hardverskim drajverima i servisima su smjestene u podkljuc SYSTEM, dok podkljuc SOFTWARE sadrzi software i Windows podesavanja. Posto HKCU sadrzi sva podesavanja korisnika koji je trenutno ulogovan, znaci da je HKCU za svakog korisnika razlicit.HKLM ostaje isti.To je zato sto sadrzi informacije o samom racunaru, OS-u, hardware-u.Priporitet ima ono podesavanje koje stoji u HKCU. Konkretno za IE, prvo se citaju podesavanja iz HKCU, a IE ce potraziti ona iz HKLM tek ako nema niceg upisanog u HKCU. HKLM se koristi samo ukoliko u HKCU ne postoji trazeni kljuc.Ovo se primecuje npr kada kreiramo novog Usera - kod njega se sve vrednosti citaju iz HKLM posto je njegov HKCU maltene prazan.

  • HKCU se ucitava u reg. bazu tek nakon sto se korisnik uloguje na sistem (taj hive je u stvari fajl na disku i nalazi se u Documents & Settings\USERNAME\Ntuser.dat) O4 - HKUS\.DEFAULT\..\Run: [Security] C:\Windows\system32\explorer.exe (User 'Default user') HKEY_USERS, S je tu samo da bi se zadrzala forma od 4 slova, nije pocetak posebne reci. Win98 je koristio RegEdit 4 format za .reg fajlove.WinXP prepoznaje i RegEdit 4 format, ali uvodi i verziju 5.Prva razlika je u samom zapisu REG fajlova: Header kod verzije 4: REGEDIT4 Header kod verzije 5: Windows Registry Editor Version 5.00 Druga razlika je u formatu.Za Regedit4 se koristi ANSI format, a za Verziju 5 Unicode format. Unicode je naziv za grupu standarda, nije bas univezalan. Kada fajl snimimo na Linuxu kao Unicode, on ce u stvari koristiti jedan standard zapisa, a kada na Windowsu snimis fajl iz Notepada kao Unicode, on ce biti zapisan u drugom standardu zapisa. Windows9x nije posedovao Unicode podrsku na nivou sistema. Ukoliko je u reg. bazi i morao da se zapamti neki Unicode tekst, to je onda moralo da se zapise u hex zapisu. Unicode nije jedan standard, vec da je u pitanju puno razlicitih nacina zapisa.Windows, od Win2k na ovamo koristi UTF-16, a pre toga je koristio UCS-2.Inace, fontovi koji dolaze sa Windowsom ni nemaju karaktere za znakove koji izlaze iz UCS-2 opsega. UTF-16 je prosireni UCS-2, tako da ti u praksi na Windowsu nije bitno da li Unicode zapis tretiras kao UCS-2 ili kao UTF-16. Poenta je da se njime mogu zapisivati daleko vise razlicitih karaktera nego ASCII/ANSI setom. Ukoliko v5 snimimo kao ANSI, i pokusamo takav fajl da importujemo u reg. bazu - dobicijamo poruku da fajl nije validan REG fajl.Isto i za suprotan primer, ukoliko imamo v4 fajl snimljen kao Unicode. ASCII ima standardizovanih samo 127 znakova. Ostatak do 256 zavisi od codepagea. Unicode je naziv za vise razlicitih nacina zapisivanja (UTF-8, UTF-16, UTF-32, UCS2, UCS4 itd itd), a ja ga ne bih nazvao binarnim jer je to isto zapis teksta, kao sto je i ASCII/ANSI takodje zapis teksta. Ako se gleda s tehnicke strane, oba su binarni jer je to niz bajtova, a zovemo ih tekstual nim samo zbog toga sto svi ti bajtovi cine tekstualnu poruku (ne slike ili neki drugi tip podataka). Razlika je u tome sto jedno slovo u ASCII zapisu uzima jedan bajt (8 bitova), dok recimo UTF-32 zauzima 4 bajta (32 bita).Ima tu jos nekih komplikacija kod Unicode zapisa (neki od standarda nemaju fiksno koliko je bajtova potrebno za zapis jednog slova, pa ce recimo koristiti jedan bajt ako zapisuju latinicni karakter, a koristice recimo 4 bajta ukoliko se zapisuje kinesko slovo). Onda imas takozvani BOM. To je bajt koji oznacava na koji je nacin zapisan Unicode tekst (bitno jer x86 zapisuje razlicito u odnosu na recimo PowerPC arhitekturu koju su koristili raniji Macintoshevi). http://www.mycity.rs/AV-Arhiva-skole/01-helen1.html#801520

    VARIJABLE: F1 - win.ini: load=ptsnoop.exe Kako ce Windows znati u kom folderu da potrazi taj fajl ptsnoop.exe? Preciznije receno, u kojim ce ga sve folderima traziti?

  • Znaci postoje liste foldera i prioriteta po kojima windows zna gde da trazi ukoliko se navede samo ime programa. PATH datoteka je u stvari njena adresa na racunaru. PATHEXT sadrzi listu exstenzia. Naime, obe mogu da se menjaju (mozemo i mi to da uradimo, ili neki program, malware...), pa zato treba znati gde pronaci njihov sadrzaj. Desni klik na My Computer-> Properties-> Advanced->Environment Variables Postoji i laksi nacin - iz konzole.Samo otkucamo ime varijable i pritisnes Enter (start->run->cmd->echo %PATH% + Enter i echo %PATHEXT% + Enter). Evo kako lako izlistati uz pomoc bat file-a sadrzaj varijabli (path i pathext) u log-u: echo %PATH% > C:\log.txt echo %PATHEXT% >> C:\log.txt notepad.exe c:\log.txt -> http://www.mycity.rs/slika.php?slika=109451_304978409_Noname1.JPG Windows prati u kojem folderu program trenutno nesto radi (za sve programe posebno), i to se vodi kao CurrentFolder. Ukoliko program zatrazi pokretanje drugog programa, Windows ce prvo potraziti u CurrentFolderu taj program, a ako ga nema tamo onda ce krenuti redom po folderima koje nadje u PATH varijabli. Ostale varijable takodje imaju svoju svrhu. Pretpostavljamo da su zadrzane zbog kompatibilnosti sa starijim programima, a moze im se pristupiti i iz batch fajlova (a tu trebaju jako, posto iz batch fajlove nikako drugacije ne mozemo saznati recimo ime usera ulogovanog na sistem itd.) Sadrzaj varijable %PATHEXT% je: .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS ; .WSF; .WSH Ekstenzije iz PATHEXT su regulisane van Explorera, tj. van Shella. Ovo sto si ti naveo je regulisano u samom Shellu, tj. Exploreru. Za reg. kljuceve koji se odnose na Win32 subsistem bitno je kako su ekstenzije regulisane u PATHEXT, dok je za kljuceve koji se ticu shella bitno kako su asocijacije uradjene u Exploreru. %SystemRoot% je takodje jedna od sistemskih varijabli, i sadrzi putanju foldera u kojem se nalazi Windows.Obicno je kod vecine korisnika u C:\Windows, ali isto tako kod nekog moze biti u recimo F:\Windows, ili mozda cak D:\Moj_OS ukoliko je tako odabrao pri instalaciji.Da bi se izbegla nagadjanja, onda covek lepo iskoristi sistemsku varijablu %SystemRoot% kao deo putanje do fajla, pa sam OS odradi zamenu konkretnom vrednoscu, tj. sadrzajem varijable. Windows je uradjen prilicno modularno.Na kernel mozes ubaciti razlicite subsisteme, s tim sto XP dolazi samo sa Win32 subsistemom (NT je dolazio i sa OS/2 i POSIX subsistemima).Na Win32 subsistem imamo dodat jos i shell. Sada, aplikacija se moze napraviti tako da se izvrsi direktno nad kernelom, nad subsistemom, ili nad shellom. Kada u Exploreru kopiras fajl, to ce da pozove neki copy API shella, koji ce ustvari samo da prosledi to copy APIju subsistema, a on ce to da prosledi kernelu, pa kernel drajveru zaduzen za HD.

  • Sada, reg. baza se sastoji iz delova. Kernel ucitava jedan deo, pa onda Win32 subsistem drugi, pa shell treci.Iz kernela (tj. nekog drajvera) ne mozemo pristupiti reg. kljucevima koje je tek shell ucitao sa HD-a posto kernel uopste nije svestan shella i njegovih delova.HJT, regedit, bilo koji treci, citaju reg. bazu kao celinu, tako da nisi svestan da su to vise posebnih delova od kojih svaki pri pada nekom posebnom layeru Windowsa. Drajveri se izvrsavaju nad kernelom, tj. kernel ih u letu ucitava kao svoj deo.Servisi se pisu isto kao i drajveri, s tim sto se ucitavaju kao deo Win32 subsistema. Nazivaju se jos i "native" aplikacijama. Normalni programi se ucitavaju nad shellom. Kernel i drajveru spadaju pod Ring0, dok Win32 subsistem i shell spadaju pod Ring3. Ring1 i Ring2 ne postoje, ostavljena su prazna mesta iz nekih nama nepoznatih razloga.Samo Ring0 moze da izazove BSOD, Ring3 moze da izazove samo greske koje ne obaraju kompletan Windows.Ring0 ima prioritet, tako da ukoliko u Ring0 neko stavi zabranu brisanja nekog fajla, ovi iz Ring3 mogu da vriste i kukaju, ali fajl nece biti obrisan.Najgora eskalacija privilegija koja moze da se desi je da nesto iz Ring3 ubaci svoj kod u Ring0 i da ga tamo izvrsi. Na Win9x se to moglo uraditi lakse od spremanja kafe. Podesavanja iz Explorera su za Shell i sve one programe koji koriste Shell API za manipulaciju fajlovima. Neki kljucevi koje mi vidimo u HJT i CF logovima se ticu Win32 subsistema, a za njega vaze ekstenzije koje mozemo videti u PATHEXT. Ring0 su nam kernel i drajveri. Mozda najbitnije da znamo je da njih ne interesuje da li mi imamo admin dozvole ili ne, oni mogu i smeju sve zivo da rade (manje-vise, glupi su oko ispisivanja na ekran i upisa u HKCU). Ukoliko Ring3 uspe da pokrene deo svog koda u Ring0, to znaci da ta aplikacija moze da uradi sve i svasta i ako ti nisi ulogovan kao admin, vec kao user sa ogranicenim pravima. Ring je hardverski implementiran u samom procesoru. x86 procesori imaju implementirana samo dva ringa, dok neki drugi (SPARC, DEC) imaju i vise. Poenta je da procesi iz jednog ringa ne mogu nikako da uticu na procese iz onog drugog ringa. Kada CPU izvrsi neke instrukcije iz Ring0, pa treba da izvrsi nesto iz Ring3, on snimi stanje svih svojih registara u memoriju (cache recimo), pa ih isprazni, pa tek onda izvrsi instrukcije iz Ring3. Kada treba posle da se vrati procesu iz Ring0, on opet prenese u registre ono sto je privre meno sklonio u memoriju. Isto snima u memoriju i stanje registara kada izvrsava nesto u Ring3 pa treba da predje u Ring0. Windows je tako implementiran da koristi Ring0 za kernel i kernel drajvere, a Ring3 za korisnicki deo sistema (user space). Kako su kod Windowsa svi sigurnosni sistemi (passwordi, HKCU, (D)ACL) implementirani u user spaceu, to znaci da sve ono sto radi u Ring0 (kernel space) ne poznaje nikakve sigurnosne sisteme, te mogu raditi sta im se prohte. Kako je desktop isto implementiran u Ring3, to znaci da programi iz Ring0 ne mogu nista da ispisu na ekran, pa ni obicnu poruku o gresci. Sada, razlika izmedju servisa i drajvera je samo u tome za koji Ring su napisani, tj. drajverima zovemo one koji su napisani i rade u Ring0, dok servisima zovemo one koji su napisani za Ring3. Nemoj da te bune drajveri za graficke kartice i ostali hardver - to je obicno kompleksan softver koji se sastoji i od drajvera i od servisa, plus i par obicnih programa koji ti sluze da bi podesio hardver, pa oni to prenesu drajverima i servisima.

  • REG_SZ, iliti stringovi. Stringovi se upisuju pod navodnicima.Svaki string mora da ide pod navodnike Sve ostale vrste kljuceva su brojevi, i kod njih se upisuje broj (bez navodnika ili iceg drugog). String su slova (plus brojevi, ali u svrsi teksta). Prazan string upisujemo kao dva uzastopna navodnika - "" Nula pod navodnicima ("0") je takodje string. C:\Documents and Settings\Administrator Nihad\Start Menu\Programs\Startup\ Adobe Gamma.lnk - C:\Program Files\Common Files\Adobe\Calibration\Adobe Gamma Loader.exe [2005-03-16 19:16:50 113664] Ovde je samo fajl za brisanje, ne treba nista posebno. Znaci, to ide u File:: sekciju CFScripta - i to je to. Jedino na sta treba da obratimo paznju je da li je u Startup folderu bas EXE fajl , ili samo Shortcut (LNK fajl).U primeru, u Startup folderu je LNK fajl, i napisano nam je i koji fajl taj LNK fajl startuje. Ako su maliciozni, onda treba obrisati oba, mada cemo uglavnom nailaziti (kod malwarea) da je u Startup folder ubacen EXE fajl, tako da imamo samo jedan fajl za brisanje. Zamislimo da na kompu postoje vise korisnickih naloga.Svaki od njih ima svoj Startup folder, koji naravno moze biti razlicit za svakog korisnika.Ukoliko su dobro podesene dozvole nad folderima, onda jedan korisnik ne moze ubaciti drugom korisniku nista u Startup folder, to je logicno. Ukoliko uzmemo za primer da je administrator sistema napravio jednu gresku u dodeljivanju dozvola nad jednim jedinim folderom, i time omogucio da user moze da zarazi sve ostale usere ubacivanjem malicioznog fajla u taj folder, koji bi to folder bio? Odgovor je: C:\Documents and Settings\All Users\Start Menu\Programs\Startup Cemu sluze: C:\Documents and Settings\ (Default User, LocalService...)? U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobiti.Znaci sta ce biti u start menu-ju.To je osnova za novi account.Znaci nije pravi nalog, vec templete koji se koristi kod kreiranja novih naloga. Kod OEM verzija Windowsa se ovaj template znacajno razlikuje od ovog standardnog koji vecina nas ima. Default User korisnicki profil se koristi kao 'polazna tacka' (moze se reci i template) za bilo kog novog korisnika. Kada se korisnik loguje prvi put, Windows kreira novi folder za taj korisnicki nalog, i kopira default profil u taj folder. Default user profil je sakriven po defaultu... LocalService i NetworkService su profili sa ogranicenim pravima (slicno korisnicima sa ogranicenim pravima), a sluze da se pod njima startuju servisi kojima nije nuzno dodeliti da rade pod LocalSystem (tj. System) nalogom. Ova dva profila se koriste da bi se servisima redukovala ovlascenja. Otvormo Task Manager i videcemo da vecina servisa na kompu rade pod nalogom System, dok par njih sigurno rade kao LocalService, a mozda imamo i neki NetworkService. Local Service i Network User su dva naloga koja dolaze sa Windowsom, i imaju vec unapred odredjene privilegije.Ovo je uradjeno iz sigurnosnih razloga. Naime, da ne bi na kompu neki servis radio pod nalogom System, njemu se (u odnosu na potrebe tog servisa) odredi da radi pod nekim od ona dva naloga.System nalog ima velike privilegije, pa ukoliko servis koji radi pod system nalogom bude kompromitovan od strane malwarea, onda malware dobija suvise velike mogucnosti i privilegije na sistemu. Kada kreiramo novi korisnicki nalog na kompu, ceo Default User ce biti iskopiran u taj novi nalog. Znaci, sluzi samo da bi novi nalog imao neke pocetne vrednosti, tj. foldere i podesavanja.

  • Local Service kao i Network Service su osnovni sigurnosni principi odnosno oni su ti koji ih definisu. U ranijim verzijama windowsa su se servisi pokretali sa privilegijama system ili administrator, pa se od xp-a na ovamo pribeglo ovoj sigurnosnoj metodi. Servisi su uglavnom prekonfigurisani i prilagodjeni novim sigurnosnim pravilima. Podeljeni su na deo koji se tice mreze i lokalnih servisa. Na ovaj nacin su servisi dobili taman onoliko privilegija koliko im treba, za razliku od ranijih ovlascenja gde su mogli da bukvalno (uz pomoc malwarea) da rovare po sistemu nesmetano i da izvrsavaju sistemske komande iako im to nije primarni zadatak.Znaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsi.Servis pokrenut pod local service ima, u osnovi, prava obicnog korisnika, ustvari od obicnog korisnika ima samo jos pravo logovanja na sistem kao servis jer svaki servis ustvari mora da ima to pravo da bi pravilno funkcionisao.Primera radi, servis pokrenut pod network service kad se loguje na drugi racunar, loguje se (ukoliko je mreza domenska) kao korisnik koji se nalazi u aktivnom direktorijumu tog domena, tacnije, ako recimo korisnik hoce da se loguje sa servera 1 na server 2 da bi pristupio nekom serovanom folderu na tom racunaru, on ce dobiti pristup u zavisnosti od toga kako su tom useru definisana prava na serveru 1. Ovo nije slucaj ukoliko je taj isti servis pokrenut pod local services. U tom slucaju ce pravo pristupa zavisiti samo od toga kako je pristup tom korisniku definisan na serveru 2, a ako je on na njemu odbijen, onda mu pristup nece biti dozvoljen.Iz ovoga lako zakljucujemo da je osnovna namera bila povecanje sigurnosti i za razliku od servisa koji su imali sistemska prava pristupa, ovde je mnogo teze zloupotrebiti servis.Iz istog razloga nije preporucljivo pokretati bilo sta sa root korisnickog naloga u linuxu, vec je preporuka to uraditi sa obicnim korisnikom cija je polisa oslobodjena samo onoliko koliko je potrebno za nesmetano funkcionisanje aplikacija koje su name njene tom korisniku.Znam da se ne bavimo linuxima, niti ja imam pojma o njima, ali sam ovo pomenuo radi poredjenja, znam da je to bila elementarna sigurnosna razlika izmedju windowsa i linuxa dok se nije pojavio XP, 2003... *********************************************** Pod quota: Default prefix funkcionise tako sto ako se ne stavi http:// ili www kada ukucamo adresu on ce dodati. Prefiksi funkcionisu ukoliko se unese adresa oni dodaju odgovarajuci prefix. U stvari njih dodaje IE ako nismo tacno definisali adresu u adresnoj liniji. Ako stavimo samo www.mycity.rs broswer dodaje http:// ili ako stavimo mycity.rs onda ce dodati http://www na upisanu adresu. Kraj quota: To "http://" sto MS naziva prefiksom, to se zove protokol inace. Nece IE dodati www ako ga ne upisemo. Dodace samo protokol ako nije napisan. Prvo ce probati da doda protokol definisan u Default Prefix i probace tako da nadje adresu. Uk oliko je nadje onda je tu kraj price. Znaci, desice se sledece: www.mycity.rs ce postati http://www.mycity.rs mycity.rs ce postati http://mycity.rs , ne http://www.mycity.rs kao sto si ti rekao Prefixes sluze kao dalja logika koja ce pokusati na osnovu nekih reci iz unete adrese da zakljuci protokol. Recimo ukoliko bi IE naisao na adresu ftp.mycity.rs, on ce na osnovu kljucne reci "ftp" koju je video u adresi pokusati da nadje adresu dodavanjem protokola ftp:// na pocetak adrese. FTP je relativno jednostavan protokol i sluzi samo za razmenu fajlova (download i upload sa servera).Kako ce neki FTP folder izgledati kod nas u browseru - to zavisi samo od toga kako je browser

    http://http://www.mycity.rs/http://http://www/

  • napravljen. Naime, browser od FTP servera dobije listu fajlova u nekom folderu, a kako ce browser nama tu listu da prikaze - to je stvar kozmetike. HTTP je puno komplikovaniji i podrzava veci broj komandi za komunikaciju izmedju browsera i servera, kao i ogroman broj informacija koje se prenose u headerima pre nego sto se prenese neki fajl sa ili na server. http://www.mycity.rs/AV-Arhiva-skole/08-diarno.html Oznaka/ime protokola se zavrsava sa :// (http:// , ftp:// itd.) Ukoliko korisnik ne upise prefiks u addressbar browsera, onda ce IE dodati DefaultPrefix ispred, i pokusati tako da nadje tu adresu. Recimo, ukoliko je adresa ftp.mc.com, a u Prefix kljucu stoji "ftp" = "ftp://",onda ce IE da adresu promeni u ftp://ftp.mc.comZnaci, to podesavanje sluzi da se na osnovu kljucnih reci ustanovi protokol, ukoliko je protokol izostavljen u toku pisanja adrese u browseru. Malware moze da se ubaci kao protocol handler u IE (vrsta plugina).Protocol handler je plugin za odredjenu vrstu protokola.Mi svi znamo, da ako adresa pocinje sa http://, da je to HTTP protokol. IE-u nije potreban nikakav plugin da bi znao kako da otvori takve adrese. Windows Media Player ce recimo da se ubaci kao protocol handler za mms:// linkove, pa ako se negde pojavi na nekom sajtu link koji pocinje sa mms://, onda ce po kliku na takav link da se otvori WMP. Drugo, mogu se uraditi asocijacije u odnosu na ekstenziju fajla koji se skida.Uradi se asocijacija, da ako recimo kliknemo na nekom sajtu na link koji vodi ka nekom ZIP fajlu, da se taj fajl po skidanju automatski otvori u nekom programu. To se vidi u O12 linijama. Jos jedna stvar koja bi trebala da se objasni je podesavanje DNS servera.Recimo, record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenu.Zbog toga ce MyCity uspesno da se otvori i kada ukucas http://www.mycity.rs i http://mycity.rsOvo ti je bitno da bi mogli da shvatimo zasto i kako smo uspeli da pristupimo MC-u sa podesavanjima koja su data u ovoj lekciji. Ukoliko je DefaultPrefix = "http://", onda smo MC-u mogli da pristupimo i sa i bez onog WWW u adresi. Prefixes je podesavanje koje treba da utvrdi koji je protokol u pitanju u odnosu na to da li se neka kljucna rec pojavljuje u URLu.Recimo, za adresu ftp.mycity.rs bi IE automatski pokusao da postavi protokol ftp://.To znaci da bi on pokusao da otvori ftp://ftp.mycity.rs CLSID PRIMER O2 - BHO: {EF99BD32-C1FB-11D2-892F-0090271D4F88} - {7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31} - (no file) {EF99BD32-C1FB-11D2-892F-0090271D4F88} -> yahoo {7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31} -> Vundo Kojem sada treba verovati od ova dva? To nisu dva CLSID-a. Ono za yahoo, nije CLSID uopste, vec je to ime BHO-a (ne ime fajla).HJT ima jedan format O2 linija, nema deset, i uvek ide ime_BHOa-CLSID-ime_fajla_na_disku. O2 - BHO: Adobe PDF Reader Link Helper( ime BHO-a) - {06849E9F-C8D7-4D59-B87D-784B7D6BE0B3}( CLSID ) - C:\ProgramFiles\Common Files\Adobe\Acrobat\ActiveX\AcroIEHelper.dll ( ime fajla na disku )

  • O2 - BHO: {EF99BD32-C1FB-11D2-892F-0090271D4F88} ( znaci ovo je ime BHO-a) - {7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31} (ovo je CLSID) - (no file) ****************************** Postoje par registara kome pripada koja IP adresa. Svaki registar sadrzi podatke za jedan deo sveta (uglavnom jedan registar sadrzi podatke za jedan kontinent). Svi kontinentalni registri IP adresa (APNIC, ARIN, RIPE, LACNIC, AFRINIC), regioni koje pokrivaju i njihovi link-ovi: APNIC- www.apnic.net - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje, Aljasku, Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - www.arin.net - Obuhvata SAD, Kanadu, i neka ostrva u Atlantskom okeanu RIPE- www.ripe.net - Pokriva Evropu LACNIC-www.lacnic.net - Latinsku Ameriku AFRINIC- www.afrinic.net - Obuhvata Afriku.. O1 - Hosts: 3510794918 auto.search.msn.com Postoji par nacina zapisa IP adresa. Gore je koriscen zapis u obliku DWORDa.Skini Malzillu na Tools tabu imas IP konverter koji ce da ti konvertuje sve moguce vrste zapisa u onaj standardni sa tackama. Primer: *********** Parsing data *********** Protocol: http User: Pass: Host: 3510794918 Port: 80 Path: / Parameters: ********** Analyzing data ********** Host part(0) is DWORD: 3510794918 Host (deobfuscated): 209.66.122.166 Path (deobfuscated): / ********** Results ********** URL (no LogIn): http://209.66.122.166/ Ono sto ljudi zele da ucine malicioznim preusmeravanjem je da coveka dovuku na sajt koji je pun exploita, i da mu tako jos vise zaraze kompjuter.Isto tako, neko moze uz pomoc HOSTS fajla da blokira lose sajtove time sto ce da im upise IP iz lokalnog opsega.

  • Kad otvorim hosts datoteku i ocu da obrisem recimo host fajlove, da li mogu sve da obrisem, mislim i na onaj uvodni tekst M$ i onaj lokal host 127.0.0.1 ili smem da brisem samo ono ispod, a ovo gore da ne diram. Mislim ako sve obrisem, da li ce nesto da steti? Svaki red koji pocinje tarabom (#) racuna se kao komentar, tako da nije bitan. Onaj red za localhost ostaviti, funkcionisanje nekih programa moze da zavisi od toga. On je jedini bitan. Kakav problem nastaje kada malware uspe da promeni podesavanja DNS servera u mreznom ruteru?Zamisli da resavamo slucaj u kojem se O17 linija uvek vraca, nebitno kako smo pokusali da je obrisemo. Takodje smo sigurni da na kompu nema malwarea jer smo uspeli vec da ga ocistimo. Da li bi ti palo na pamet da je ruter kriv?Nisi se zapitao kako je uopste ruter tako podesen, tj . ko ga je i kako podesio tako?Kako to uopste ruter utice na to kako ce na kompu biti podeseni DNS serveri? Kada postoji ruter, on je taj koji kompu daje adrese DNS servera, tj. komp pita ruter za adrese, a ruter ima dve mogucnosti - ili da pita provajdera, ili da ih izvadi iz cachea ukoliko im nije istekao rok trajanja (kada DHCP server pitas za DNS adrese, dobijes i informaciju kada bi trebao ponovo da pitas. Ja sam to sada ovde nazvao rokom trajanja). Postoji jos mogucnost da je ruter podesen da ne pita provajdera za DNS servere, vec da su oni rucno uneti. Koliko god se ti trudio da uklonis adrese DNS servera sa kompa, on ce od rutera ponovo dobiti pogresne. Pre par meseci se pojavila verzija Zloba koja ja pokusavala da upadne na admin panel rutera. Taj Zlob je imao listu default passworda za gomilu modela rutera, kao i sta treba da uradi da bi naterao ruter na manuelno podesene DNS servere. Znaci, ruteri na kojima nisu menjane fabricki podesene lozinke - bili su na udaru ove infekcije. Kako ga vratiti u prvobitno stanje? Tj kako bi ga helperi vratili? Svaki ruter ima drugaciji menij.U svakom slucaju mora da postoji opcija za izbor manuelnog/automatskog podesavanja adresa DNS servera.Malware to najverovatnije postavlja na manuelno.Nase je da ga prebacimo na automatsko. On ce onda adrese preuzeti od provajdera. Adrese iz 127... opsega pripadaju loopback deviceu ili local hostu (dva imena za isti andrak). To je samo jedan drajver koji emulira mreznu karticu.Koristi se kada na nasem racunaru imamo neki program u ulozi servera, i zelimo sa istog kompjutera da mu pristupimo klijent programom. Konkretan primer - recimo imamo instaliran Apache server (web server) i zelimo kod sebe lokalno da isprobamo kako u browseru funkcionise neki sajt koji smo kreirali.Mogucnosti ima puno. Poenta je da nas komp na ovaj nacin prica sa samim sobom, kao da prica sa udaljenim kompom na mrezi. Sto se tice zadnjeg pitanja, neophodno je da korisnika pitas za upload ili da ih otvori u Notepadu, posto je retko krivac sam BAT fajl. On obicno samo sluzi da pokrene neki EXE. Treba videti sta ce da pokrene, pa eventualno obrisati i to na sta pokazuje (ukoliko utvrdimo da je maliciozno). echo %PATH% > c:\moj_log.txt notepad c:\moj_log.txt Zasto sam za ime fajla uzeo moj_log.txt, a ne moj log.txt bez donje crtice? Ako ime foldera ili fajla ima razmak u imenu, onda ce samo deo do razmaka biti prihvacen, a deo posle razmaka ce biti smatran za sledeci parametar komandi (razmak je standardni delimiter za argumente i switcheve komandama). Kako bi trebao da izgleda onaj batch fajl ukoliko bi uzeo ovo drugo ime? echo %PATH% > "c:\moj log.txt"

  • notepad c:\"moj log.txt" Da li su ovo legitimne linije? O4 - HKUS\S-1-5-19\..\Run: [CTFMON.EXE] C:\WINDOWS\system32\CTFMON.EXE (User 'LOCAL SERVICE') O4 - HKUS\S-1-5-20\..\Run: [CTFMON.EXE] C:\WINDOWS\system32\CTFMON.EXE (User 'NETWORK SERVICE') O4 - HKUS\S-1-5-18\..\Run: [CTFMON.EXE] C:\WINDOWS\system32\CTFMON.EXE (User 'SYSTEM') O4 - HKUS\.DEFAULT\..\Run: [CTFMON.EXE] C:\WINDOWS\system32\CTFMON.EXE (User 'Default user') Legitimne su. HJT 2.x prikazuje O4 linije sa svih naloga na kompu.Udji u Documents and Settings folder, i videces da tamo imas vise tih korisnickih naloga na kompu. Ako HJT ne prikaze ove linije: mozda ima razlike ukoliko je korisnik administrator na sistemu (onda ima O4 svih profila u logu) ili je ogranicen korisnik. DNS je baza imena sajtova i njihovih IP adresa. Da ne bismo pamtili brojeve IP adrese, mu kucamo nesto sto je nama prihvatljivo za pamcenje. Mi kucamo adresu nekog sajta dns pretvara u IP adrese i mi dobijamo sajt. Zlonamerna osoba usmeri nas na njegov DNS server i onda moze da nas salje na sajt na koji on hoce. Poenta je da se IP adrese kesiraju (cache), i to na jako puno mesta. Prvi DNS je na samom racunaru u vidu HOSTS fajla.Onda imas DNS cache na racunaru.Onda ide DNS cache na ruteru (ukoliko postoji)Onda DNS cache kod provajdera. Znaci, ako uneses neku web adresu, onda se ona trazi onim redom kojim sam napisao gore. Jedan zapis u DNS cacheu ima svoj rok trajanja. Rok trajanja se moze nastelovati na vise nacina, ali u svakom slucaju se prenosi i kao podatak.Znaci, neko je registrovao svoj web sajt, i njegov record postoji na nekom DNS serveru. Tu je isprogramirano i vreme trajanja recorda.To znaci, ukoliko istekne to vreme, onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancu.Jedan administrator moze na svom lokalnom DNS cacheu da odluci da nasteluje drugo vreme trajanja, tj. da ne ispostuje ono koje je njegov server dobilo od prethodnog u lancu. *********************** O20 - AppInit_DLLs: ????????P,C:\PROGRA~1\KASPER~1\KASPER~1.0\adialhk.dll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez (,). Oni upitnici u stvari predstavljaju jos jedan fajl koji se uitava, a HJT nije u stanju da prikae lokaciju tog fajla (za njega je problem npr. kineski, itd). Postoji tabela koju je sastavila neka americka asocijacija za standarde, i u toj tabeli je za svaki znak odredjen redni broj. To je radjeno pre "sto godina", u vreme kada su svi kompovi "pricali" samo engleski, tako da je po ASCII standardu odredjen redosled 128 znakova (za sta je potrebno 7 bitova, no to nije trenutno bitno). Kada je pocelo masovno da se koristi svih 8 bitova u kompjuterima (sto daje mesta za 256 znakova ukupno), mesta iznad 127 su bila prazna, i onda je svako uvodio svoje standarde (IBM, pa MS DOS itd.) sta ce smestiti u taj deo tabele. www.asciitable.com

  • UNICODE ima s druge strane 65536 znakova u tabeli. Prvih 127 (255) su isti kao u ASCII tabeli, dok ostatak sadrzi lokalne znakove/slova raznih jezika.To je ono sto HJT ne prepoznaje. Servisi su funkcije tj. programi koji mogu biti konfigurisani da se podiu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem), a mogu se pokretati i manuelno po potrebi. Moda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenima/profilima.Drajver je program koji omogucava komunikaciju izmedu programa (operativnog sistema, aplikacija itd.) i hardware -a. Drajver ne mora da bude napisan samo zbog komunikacije sa hardwareom. Windows poznaje vise vrsta drajvera, ali to u ovom slucaju nije preterano bitno. Bitno je da znamo da se drajver ucitavao kao modul kernela i da radi van svakih ogranicenja koje postoje u user spaceu. Drajver najcece komunicira sa uredajima preko magistrale. Kada odredeni program zahteva izvrenje neke komande od drajvera, drajver zahteva izvrenje te komande od odgovarajuceg uredaja. Kada uredaj da odgovor, taj odgovor se prosleduje programu koji je zahtevao izvrenje komande. Postoje razlicite vrste drajvera za razlicite operativne sisteme. Drajver nije samo nesto sto sluzi za komunikaciju sa drajverom. Moze drajver da posluzi i za bilo sta drugo (skoro bilo sta, posto ne moze da ima graficko okruzenje). Kernel je prvo i osnovno sto radi u Ring0.Kernel u Ring0 ucitava drajvere (za hardver, ili bilo koju drugu vrstu drajvera).Kako u Ring0 ne postoji nikakav grafiki interfejs, niti je Ring0 svestan bilo cega sto postoji u Ring3, tako drajveri imaju prilicno velika ogranicenja (ne mogu cak ni jednu najobicniju poruku da ispisu na ekran).S druge strane, drajver ima pristup svemu onome cemu ima i kernel. Drajver je posebna vrsta programa, koji se prave tako da reaguju na desavanja na sistemu. Znaci, drajver ne radi nista dok se ne desi neki dogadjaj (bilo hardverski ili softverski) za koji je taj drajver isprogramiran da reaguje.Servis je isto to, ali u Ring3. Znaci, s obzirom da je u Ring3, ima pristupa onome cemu ima i trenutni korisnik. Pise se isto kao i drajver (reakcija na dogadjaje). Prva i osnovna razlika je da za drajver ne postoje ogranicenja ili zabrane koje se odnose na privilegije trenutnog korisnika koje on ima na sistemu (da li je admin ili ne). Servis moze imati razlicite privilegije, u zavisnosti da li ga pokrece sistemski nalog ili neki drugi (sistemski nalog je posebna vrsta naloga).Servis moze biti pokrenut i pod administratorskim nalogom, ali to ima razlike u odnosu nad sistemskim nalogom.Prvo, administrator moze da instalira neki servis da bude sistemski, ali onda nista ne moze da mu zabrani.Admin moze da instalira neki servis da radi pod njegovim nalogom, s razlikom sto admin moze da ogranici samog sebe, pa time i servise pod svojim nalogom.Pod onim instalira podrazumevam i namerno, a i nenamerno instaliranje (da kazem maliciozno).Mislim da ovo dovoljno pokazuje zasto je losa ideja koristiti komp stalno pod administratorskim nalogom (zato sto malware moze da se instalira kao sistemski servis i imace sve privilegije koje su moguce u Ring3). Drajver ima prioritet nad servisom. Tacnije, servis moze nesto da pokusa, ali drajver to moze da zaustavi ukoliko je tako isprogramiran. Zato svi AV programi instaliraju svoje drajvere - da bi mogli da kontrolisu sistem na najprioritetnijem nivou. Ringovi su posebna stanja procesora, i procesor pokusava za svaki Ring da odvoji poseban memorijski prostor tako da program iz jednog ringa ne moze da pristupi ringu veceg prioriteta. x86 arhitektura ima samo Ring0 i Ring3.Windows 9x nije lepo koristio ringove, tako da su kod njega programi iz Ring3 veoma lako mogli da eskaliraju privilegije, pa da mogu da pisu i citaju memorijski

  • prostor namenjen za Ring0.NT serija (gde spada i Win2k, XP, Vista i Win7) su po tom pitanju daleko bolje napisani tako da je eskalacija privilegija nemoguca (barem teoretski). Osim posebnog memorijskog prostora za svaki ring posebno, i procesor prebacuje stanje kada izvrsava instrukcije iz razlicitih ringova.Recimo, trenutna instrukcija je bila od nekog programa iz Ring3. Sledeca je neka instrukcija iz Ring) od recimo kernela.Pre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara, pa ih isprazni, pa izvrsi instrukciju koju mu je zadao kernel.Ako sledeca instrukcija sada bude od onog programa iz Ring3, on ce sada da snimi stanje registara, pa ce u registre ubaciti one vrednosti koje je ranije snimio za Ring3, pa ce tek tada da izvrsi Ring3 instrukciju.Na ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0. O23 - Service: @%SystemRoot%\system32\qwave.dll,-1 (QWAVE) - Unknown owner - %windir%\system32\svchost.exe (file missing) Ovo ces morati da zapamtis - kada vidis ovakvu liniju koja ima svchost i (file missing), to znaci da je svchost upravo host, a da u liniji fali ime/fajl servisa koji treba da bude hostovan. Potrazi na netu koja je sintaksa za koriscenje svchost.exe i videces da se ime hostovanog servisa (tj. njegov fajl) navodi iza poziva svchostu, kao argument.HJT ima problema kod O23 i argumenata, tako da ces videti ono (file missing).Veruj u HJT i (file missing) samo kod O2 linija, za ostale linije zaboravi na taj info.Primer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima: 23 - Service: @%SystemRoot%\system32\qwave.dll,-1 (QWAVE) - Unknown owner - %windir%\system32\svchost.exe qwave.dll Primer je imaginaran, tj. mozda u stvarnosti drugacije izgleda, ali moze da posluzi za ovo objasnjenje. Vidis, HJT ce na disku da potrazi fajl svchost.exe qwave.dll iz razloga sto ima bug u parsovanju takvih unosa. Takav fajl naravno da ne postoji jer je qwave.dll ovde samo argument prosledjen svchostu (servis kojeg svchost treba da pokrene, tj. hostuje).Jos veca nebuloza je info koji pise u liniji. Da su barem napisali sta to HJT stvarno trazi na disku, vec su parsovali do prvog razmaka u reg. unosu. Nisu racunali na to da argumenat moze biti maliciozan, vec su mislili da je uvek EXE fajl onaj koji je maliciozan. Stack - raznjic (ovo nije smesno, ovo je odlican prevod). Logika stacka je da ono sto zadnje udje mora prvo da izadje posto ce ono biti na vrhu stacka. Ovde rec stack nije upotrebljena u tom uobicajenom znacenju, ali opet oznacava da su neki objekti medjusobno povezani na red (mi smo to nazvali lanac). Orphan - siroce. Znaci, ukoliko obrises fajl (ili ga premestis, ili mu promenis ime), CF ce videti da njegov unos u LSP lancu nije validan (pokazuje na fajl koji vise ne postoji), pa ce sam popraviti taj LSP lanac, tj. izbacice iz lanca pokazatelj na ovaj fajl. -> http://www.mycity.rs/AV-Arhiva-skole/12-Piksi_2.html Policies nemaju veze sa ovim, bar ne u tom smislu da se koristi restrikcija kako bi se iskljuio Active Desktop. O24 - Desktop Component 1: Privacy Protection - file:///C:\WINDOWS\privacy_danger\index.htm Primetiti ono crveno...

  • [HKEY_CURRENT_USER\software\microsoft\internet explorer\desktop\components\1] Source= file:///C:\WINDOWS\privacy_danger\index.htm FriendlyName= Privacy Protection U ovom sluaju treba obrisati kompletan klju 1. [-HKEY_CURRENT_USER\software\microsoft\internet explorer\desktop\components\1] Ukoliko bi bilo neto ovakvo: O24 - Desktop Component 0: Privacy Protection - file:///C:\WINDOWS\privacy_danger\index.htm to bi znailo da su default vrednosti modifikovane (za My current home page), pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte. [-HKEY_CURRENT_USER\software\microsoft\internet explorer\desktop\components\0] [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\Components\0] "Source"="About:Home" "SubscribedURL"="About:Home" "FriendlyName"="My Current Home Page" "Flags"=dword:00000002 "Position"=hex:2c,00,00,00,96,00,00,00,00,00,00,00,6a,04,00,00,c0,03,00,00,00,\ 00,00,00,01,00,00,00,01,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00 "CurrentState"=dword:40000004 "OriginalStateInfo"=hex:18,00,00,00,96,00,00,00,00,00,00,00,6a,04,00,00,c0,03,\ 00,00,04,00,00,40 "RestoredStateInfo"=hex:18,00,00,00,96,00,00,00,00,00,00,00,6a,04,00,00,c0,03,\ 00,00,01,00,00,00 Kako ukljuiti/iskljuiti? Postoji mali problem u vezi toga - Windows na vrlo ''nezgodan'' nain osveava ova setovanja. Praktino, potrebno je ili restartovati PC ili otvoriti/zatvoriti Desktop applet (bukvalno bez ikakvih podeavanja - samo ga otvoriti i OK). [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\Components] "DeskHtmlVersion"=dword:00000110 "DeskHtmlMinorVersion"=dword:00000005 "Settings"=dword:00000001

  • "GeneralFlags"=dword:00000004 4 - disabled 0 - enabled Ali... Ovo gore je pokaziva stanja - nije mogude pomodu ovog setovanja naterati Win da neto uradi. [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\Components\0] "Source"="About:Home" "SubscribedURL"="About:Home" "FriendlyName"="My Current Home Page" "Flags"=dword:00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osveava ba lako - no, hode da odreaguje i na Refresh Desktop-a. Ali, samo de da ukloni stranicu sa Desktopa - ostade i dalje neki ''vizuelni artifakti'' (udne ikonice) - za potpuni Refresh opet treba otvoriti Desktop applet. ***** ROOTKIT IAT, Inline i EAT hooking mogu da od programa sakriju neki fajl na disku. EAT je los po ovom pitanju zato sto rootkit mora da bude aktivan pre nego sto program ucita DLL. Naknadno patchovanje DLL-a od strane rootkita ne utice na programe koji su taj DLL vec ucitali dok je bio nepatchovan. Ukoliko je neki DLL injektovan u recimo Explorer proces, to se radi u memoriji. Ukoliko zatrazis Explorer.exe na upload, da bi mogao da ga proveris skeniranjem ili u sandboxu, taj Explorer.exe nece sadrzati maliciozni kod posto je fajl na disku cist. IAT _drajver ili dll koji je hook_ [sta je hookovao drajver/dll ! funkcija tog drajvera/dlla koja je hookovana] _na koju adresu u hook drajveru/dll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena. .text C:\WINDOWS\system32\cmd.exe[164] ntdll.dll!NtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija).

  • .text C:\Program Files\Internet Explorer\iexplore.exe[2844] USER32.dll!DialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1.Ovo znaci da je iexplore.exe patchovan tako sto su na adresi 7E4247AB izmenjena 5 bajta tako sto je u njih upisana instrukcija JMP 42F0F301 (JMP = jump, predji na adresu). Patchovanje je izvrseno u memoriji, nakon sto je iexplore.exe ucitan. Imas jos i podatak sta je tacno patchovano: USER32.dll!DialogBoxParamW - ovo znaci da je patchovan poziv user32.dll-u, tacnije funkciji DialogBoxParamW tog dll-a. 2.Ovo znaci da je iexplore.exe importovao funkciju DialogBoxParamA iz user32.dll, ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764. Funkcija je patchovana u memoriji, fajl user32.dll je na disku OK. Prvo, nagledaces se logova u kojima DaemonTools hookuje sve moguce device drajvere. Drugo, nagledaces se programa za ulepsavanje izgleda Windowsa, koji se injektuju u sve zive procese, itd. itd. Dodaj na to da svaki AV/FW dodaje svoje hookove na nivou kernela (Zw... funkcije), pa ti onda bude jasno da ces u logovima videti stotinu legitimnih hookova, a da u celoj toj zbrci trazis tri koja su eventualno maliciozna. U sustini svaki user mode rootkit ili hookovanje moze na ekranu da ispise poruku koja ce po svemu izgledati kao da ju je ispisao host (legitimni) program. Problem moze nastati ako se injektuje thread u program koji je konzolni, tj. nije Win32 GUI program i samim tim ne poznaje koncept formi (prozor programa), pa samim tim ne poznaje ni koncept dijaloga ili poruka. Takav program uopste ne ucitava GDI, pa bi remote thread srusio program ukoliko bi pokusao da na ekran izbaci poruku (poruku u formi/prozoru, ne konzolnu). Isto se desava ako se injektuje DLL u servis (neki user mode servis), koji po pravilu ne pristupa grafickom izlazu Windowsa (formama). Ako neko pokusa da uradi system wide hook (injektuje dll u sve zivo), to ce se injektovati i u servise. Ako iz takvog hooka pokusa da ispise poruku na ekran, krahirace ceo sistem jer ce to pokusati da uradi i iz programa koji ne poznaje koncept formi/prozora/dijaloga, tj. nemaju ucitan GDI dll. Zw i Nt funkcije se ne razlikuju ukoliko se pozivaju iz user modea. Ukoliko se pozivaju iz kernel modea, onda ima razlike, ali to nije toliko bitno za nas i nas posao ovde. U sustini, inline hooking daje najbolje rezultate u sakrivanju. Program ne mora da koristi IAT da bi importovao funkcije sistemskih DLLova, tako da patchovanje IAT-a nije 100% sigurna metoda. EAT je najlosiji, posto se patchovanje mora izvrsiti pre pokretanja programa koji zelimo da prevarimo. Patchovanje nakon pokretanja programa koji treba prevariti nema efekta uopste. ZwCreateFile - Kernel NtCreateFile - Kernel, ekvivalent ZwCreateFile funkciji CreateFile - User mode

  • Ljudima predstavlja problem da nadju informaciju o razlikama izmedju Nt i Zw seta funkcija. Pokusacu da objasnim u kratkim crtama. Prvo, ovo su NativeAPI funkcije, a to ne znaci da su kernel ili user mode funkcije. Mogu da se pozivaju iz oba ringa. Ako se te funkcije pozivaju iz UserModea (sto normalno ide preko NTDLL) onda nema nikakve razlike jer ce obe funkcije da pozovu isti kod. Razlika nastaje kad pozivanja tih funkcija iz kernel modea (sto ide preko NTOSKRNL). Kod pozivanja neke funkcije iz Nt seta poziva se isti kod kao i kod pozivanja iz user modea, sto znaci da ce proci sigurnosne provere u kodu pre izvrsenja. Zw funkcije pozvane iz kernel modea ne podlezu sigurnosnim proverama, tj. imaju apsolutni pristup nezavisno od toga ko ih je pozvao i koja prava na sistemu ima pozivaoc. CreateFile je Win32 funkcija (znaci UserMode) i podleze svim proverama sigurnosti (koja prava na sistemu ima pozivaoc, sto podrazumeva i proveru prava ulogovanog korisnika). Da bi ovo gore bilo jos jasnije, pokusacu da objasnim jos nesto. Windows je napravljen modularno. Prvo imamo kernel i njegov API (skup funkcija) Sledeci layer je NativeAPI. Winlogon i chkdsk su ti recimo NativeAPI aplikacije. Sledeci layer je Win32 subsistem. Ovde vec imas dovoljno funkcija da mozes da pises GUI programe. Sledeci layer je ShellAPI (ovo su funkcije koje obezbedjuje Windows Explorer). WinNT je osim Win32 subsistema imao jos i POSIX i OS/2 subsisteme. POSIX subsistem je omogucavao API za pokretanje *nix aplikacija, a OS/2 susbsistem za pokretanje OS/2 aplikacija. Razvoj tih subsistema je prekinut pre vise godina, tako da je Win2000 stigao samo sa Win32 subsistemom. Jos uvek postoji mogucnost da se od MS-a kupi POSIX subsistem za Win2000 i novije, kao poseban paket. reg. baza je abecedno sortirana sc stop "LiveUpdate" sc delete "LiveUpdate" del "C:\PROGRA~1\Symantec\LIVEUP~1\LUCOMS~1.EXE" del "C:\Program Files\Common Files\Symantec Shared\PIF\{B8E1DD85-8582-4c61-B58F-2F227FCA9A08}\PIFSvc.exe" sc stop "@%SystemRoot%\system32\qwave.dll" sc delete "@%SystemRoot%\system32\qwave.dll"

  • Nije mi jasno kako si stigao uopste do ovoga: del "%windir%\system32\svchost.exe qwave.dll" Pretpostavljam da izgleda ne znas sta je argumenat programa, tj. koncept argumenata. Vidi, svaki program moze da se napravi tako da prihvata argumente pri startovanju: program.exe argumenat_1 argumenat_2 argumenat_3 Sta i kako ce on uciniti sa tim argumentima, to zavisi od samog programa i kako je napravljen i zamisljen. Obicno u nekom help fajlu stoji kako se koriste argumenti za taj program, tj. sta mu se moze zadati od argumenata. Jedino pravilo je da su argumenti odvojeni razmakom. To pak znaci da sam argumenat ne sme sadrzati razmak. Ukoliko je razmak u argumentu neophodan, onda se argumenat stavlja pod navodnike. Bas u primeru koji si naveo, komandi del si prosledio argumenat sta da obrise. Znaci, komanda del kao prvi argumenat uzima ime fajla koji treba da se obrise. U slucaju HJT logova, tj. u slucaju svchosta, svchost kao prvi argumenat uzima ime dll -a koji treba da hostuje. U nasem slucaju, svchost.exe se koristi da bi se pokrenuo qwave.dll. To znaci da nemas tu nista posla sa svchostom, vec sa qwave.dll-om. Njega treba obrisati. Nemoj zaboraviti da je qwave.dll legitiman, i da je ovde uzet samo kao primer za vezbanje. Ovako treba: sc stop "LiveUpdate" sc delete "LiveUpdate" del "C:\PROGRA~1\Symantec\LIVEUP~1\LUCOMS~1.EXE" sc stop "LiveUpdate Notice Service" sc delete "LiveUpdate Notice Service" del "C:\Program Files\Common Files\Symantec Shared\PIF\{B8E1DD85-8582-4c61-B58F-2F227FCA9A08}\PIFSvc.exe" sc stop "QWAVE" sc delete "QWAVE" del "%SystemRoot%\system32\qwave.dll" MyWebSearch jede internet konekciju do besvesti. Takodje usporava i racunar dosta. Njega uklanjamo. Ask Toolbar je nesto drugo. Ask toolbar mozes naci i rebrandovan. Recimo, bas si gore postavio primer Daemon tools toolbara. To je u stvari Ask toolbar pod Daemonovim imenom. Ask daje pare firmama koje instaliraju taj njihov toolbar. Ni dana danasnjeg nije se doslo do konacnog misljenja da li ga proglasiti za nepozeljnog ili ne. AV programi ga ne otklanjaju.