26
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 između proizvođača ili prodavca softvera i krajnjeg korisnika tog softvera. U ovom ugovoru se obično 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 instaliraju 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.

ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

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 programateme 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 između proizvođača ili prodavca softvera i krajnjeg korisnika tog softvera U ovom ugovoru se obično 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 temomp2p 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 temup2p program vec se sama temap2p brise iz kompjutera a adware programi ostaju Cak ni sam proces deinstaliranja nije moguce izvesti iz AddRemove 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 AddRemove 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 AddRremove 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 AddRemove 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 adwareaspywarea isto koristi ovu mogucnostOd verzije IE 60 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 kaže predstavlja skeniranje na internetu (online - je engleska reč i znači na vezi tj na internetu) Potreba za online skeniranjem se javlja iz različitih razloga kao npr - provera određenih fajlova drugim antivirusnim rešenjem od našeg a da se ne mora u isto vreme i instalirati taj antivirusni program - testiranje učinkovitosti antivirusnog rešenja koje imamo na našem računaru na taj način što demo uz pomod online skenera testrati sumljive fajlove i samim tim proveriti i sposobnost našeg sopstvenog antivirusnog rešenja - u određenim situacijama naš antivirusni program može biti onesposobljen online skeniranjem možemo utvrditi sa kakvom malicioznom opasnošdu imamo posla i na osnovu toga koje mere možemo dalje preduzeti - i tako dalje i tako dalje potreba za skeniranjem na internetu može 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 cinitiAko recimo bude dolaznih TCP paketa na portu 80 FW sigurno zna da se to u browseru ucitava neka stranicaAko 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 (gt1024) 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 konekcijeServer 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 v202 Scan saved at 44013 PM on 3122009 Platform Windows XP SP2 (WinNT 5012600) MSIE Internet Explorer v600 SP2 (60029002180) Boot mode Normal Logfile of Trend Micro HijackThis v202 ova linija da je to log file od programa na kojem je pokrenuto skeniranje i njegovu verzijuObicno kod programa je bitna verzija zbog toga sto su neki zastarelia neki su opet najnovija verzija koja moguce da nije dovoljno testirana i samim tim nesigurna Scan saved at 44013 PM on 3122009 govori nam kad je obavljeno skeniranje sistema i bitno je zbog pregleda logajer 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 5012600) opisuje vrstu operativnog sistemakoristi 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 v600 SP2 (60029002180) govori nam verziju web borsweraa to je bitno zbog poznatih propusta broswera i zbog malware-a koji koriste te propuste Boot mode Normal govori nam u kom rezimu radi sistembitno je zbog toga jer nacin rada mora da bude normalan i da svi resursi rade normalnoda 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 1991 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 - windirNetwork Diagnosticxpnetdiagexe (file missing) O9 - Extra Tools menuitem xpsp3resdll-20001 - e2e2dd38-d088-4134-82b7-f2ba38496583 - windirNetwork Diagnosticxpnetdiagexe (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 - windirNetwork Diagnosticxpnetdiagexe -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) CWINDOWSSystem32smssexe ndash Smssexe je sastavni deo Majkrosoftovog operativnog sistema On je menadžer sesije podsistema koji je odgovoran za startovanje korisničke sesijeOvaj proces je uveden u sistemsku nit i odgovoran je za različite aktivnosti uključivši ldquolansiranjerdquo Winlogon-a i Win32-a(Csrssexe) procesa i podešavanje sistemskih promena Pošto su lansirani ovi procesi čekaju ili Winlogon-a ili Csrssexe da se završe Ako se ovo dešava normalno sistem se gasi ako se dogada neočekivano smssexe izaziva kočenje sistema Ovaj process je potreban za stabilno i normalno funkcionisanje windows-a i ne treba se gasititi Napomena smssexe fajl je lociran u CWindowsSystem32 folderu U drugim slučajevima smssexe je virus spyware trojanac ili crv CWINDOWSsystem32winlogonexe - Proces koji pripada windows-ovom login menadžeru On reguliše login i logout procedure na sistemu Ovaj process radi u pozadini Znači on vrši korisničku 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 CWINDOWSsystem32 folderu onda se radi o nekom malicioznom programu CWINDOWSsystem32servicesexe ndash Deo Majkrosoftovog operativnog sistema je servicesexe 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 gašenja kompjutera Proces je neophodan za stabilno i sigurno funkcionisanje računara 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 CWINDOWSsystem32servicesexe folderu onda se radi o nekom malicioznom programu CWINDOWSsystem32lsassexe ndash Majkrosoftov siguronosni mehanizam lsassexe je lokalni sigurnosni server za autentičnost On verifikuje validnost korisnikovih logova ka njegovom PCServer -u Generiše proces odgovoran za autentičnost korisnika za Winlogon servis Proces se odvija koristeci autentičnost paketa kao što je po standardu Msginadll Ako je potvrđena autentičnost Lsass generiše dokaz korisničkog pristupa koji je korišden da pokrene incijalni štit Ukratko on posebno ima posla sa lokalnom bezbednošcu i ldquologin policies-omrdquo Napomena Ovaj lsassexe fajl je smešten u CWindowsSystem32 folderu U ostalim slučajevima lsassexe je virus spyware trojanac ili crv

CWINDOWSsystem32svchostexe - Svchostexe je generični domadi proces a to je ime za servise koji polaze od dinamičke-link biblioteka (DLL) Ovaj fajl je lociran u SystemRootSystem32 folderu Prilikom starta on proverava delove servisa registrija da bi napravio listu servisa koji se moraju load -ovati Mnogostruki slučajevi svchostexe mogu raditi istovremeno Svaka grupa svchostexe može sadržati čitavu grupu servisa Zbog ovoga odvojeni servisi mogu počinjati u zavisnosti kako je svchostexe startovan Ovakva grupa servisa omoguduje bolju kontrolu i lakše otklanjanje grešaka 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 TASKLISTSVC onda pretisnemo ENTER Napomena kao i mnogi ostali sistemski procesi i ovaj je predmet imitacije raznih malicioznih programa Npr ako se ne nalazi u CWINDOWSsystem32 folderu onda se radi o nekom malicioznom programu Svchostexe grupe servisa se sadrze u sledecem kljucu HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsNTCurrentVersionSvchost Svaka vrednost pod ovim kljucem predstavlja razlicitu Svchost grupu i predstavlja razlicitu linijuvrednost 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_MACHINESystemCurrentControlSetServicesService Primer grupa servisa koje svchostexe opsluzuje svchostexe 772 DcomLaunch TermService svchostexe 820 RpcSs svchostexe 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 svchostexe 972 Dnscache svchostexe 1084 LmHosts RemoteRegistry SSDPSRV WebClient svchostexe 672 scan Brojevi oznacavaju PID ili Process ID Jedan svchostexe 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 grupeOvo 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 servisimaPrvima 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 servisimaOni imaju ona prava koja ima i nalog pod kojim su pokrenutiAnalogno 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 fajlovaOn 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 67 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 CProgram FilesMessengermsmsgsexe ndash Msmsgsexe 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 takođe instaliran pored ovog procesa za lakši pristup osobinama kao što su internet čat deljenje fajlova i audiovideo konferisanje Ovaj process nije neophodan Diseblovanje ili omogudavanje je stvar samog korisnika Napomena ovaj process je smešten u CProgram FilesMessenger folderu u suprotnom radi se o malicioznom programu CWINDOWSsystem32ctfmonexe - Ctfmonexe je process Majkrosoftovog službenog sajta koji prati sve windows-ove aktivnosti i omogudava stavljanje teksta sa servisnom podrškom za raspoznavanje govora raspoznavanje ručnog pisanja tastature prevoda i druge alternativne korisničke 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 apletuUbijanjem procesa ne nestaje language bar ali ni ne funkcionise vise CWINDOWSExplorerexe - Microsoft Windows Explorer ima dvojaku funkciju tjmoze da se startuje u dva moda On je Windows-ov menadžer programa Upravlja Windows-ovom grafičkom školjkom uključujudi taskbar desktop i fajl menadžer Ako se ovaj proces isključi Windows-ov grafički 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 ExploreraNajcesci simptomi su prazan ekran bez radne povrsine inace moze i tada da se pokrene explorer preko Task Manager-a -gt File-gt 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 CWINDOWSsystem32servicesexe - Sluzi za pokretanje gasenje i saradnju sa ostalim servisima OS-a CWindowsSystem32rundll32exe - 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 funkcijeRUNDLL32 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 pokretanjeRundll32 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 Rundll32exe je univerzalan program za pokretanje standardnih DLL fajlova Pod standardnim DLL fajlovima podrazumevam sve one koji imaju implementiranu funkciju DllMain() Uz pomoc rundll32exe 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 CProgram FilesCommon FilesMicrosoft SharedVS7DEBUGMDMEXE 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 stage1stage 2 Svaki Stage sluzi za nalazenje jedne konkretne infekcijePrimer (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_USERSoftwareMicrosoftInternet ExplorerSearchURL] (Default)=httpwwwupdatesearchescomsearchphpqq=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_USERSoftwareVendors nameApplications nameVersionSetting 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 podesavanjimakonfiguraciji 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 NTUSERDAT i USRCLASSDAT unutar njihovog Documents and Settings foldera HKLM-HKEY_LOCAL_MACHINE-Hive koji sadrzi informacije o globalnim podesavanjima[Hardwerneka 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 SystemRootSystem32config 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 razlicitHKLM ostaje istiTo je zato sto sadrzi informacije o samom racunaru OS-u hardware-uPriporitet 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 kljucOvo 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 amp SettingsUSERNAMENtuserdat) O4 - HKUSDEFAULTRun [Security] CWindowssystem32explorerexe (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 fajloveWinXP prepoznaje i RegEdit 4 format ali uvodi i verziju 5Prva razlika je u samom zapisu REG fajlova Header kod verzije 4 REGEDIT4 Header kod verzije 5 Windows Registry Editor Version 500 Druga razlika je u formatuZa 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 zapisaWindows od Win2k na ovamo koristi UTF-16 a pre toga je koristio UCS-2Inace 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 ASCIIANSI setom Ukoliko v5 snimimo kao ANSI i pokusamo takav fajl da importujemo u reg bazu - dobicijamo poruku da fajl nije validan REG fajlIsto 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 ASCIIANSI 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) httpwwwmycityrsAV-Arhiva-skole01-helen1html801520

VARIJABLE F1 - winini load=ptsnoopexe Kako ce Windows znati u kom folderu da potrazi taj fajl ptsnoopexe 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-gt Properties-gt Advanced-gtEnvironment Variables Postoji i laksi nacin - iz konzoleSamo otkucamo ime varijable i pritisnes Enter (start-gtrun-gtcmd-gtecho 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 gt Clogtxt echo PATHEXT gtgt Clogtxt notepadexe clogtxt -gt httpwwwmycityrsslikaphpslika=109451_304978409_Noname1JPG 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 WindowsObicno je kod vecine korisnika u CWindows ali isto tako kod nekog moze biti u recimo FWindows ili mozda cak DMoj_OS ukoliko je tako odabrao pri instalacijiDa 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 modularnoNa kernel mozes ubaciti razlicite subsisteme s tim sto XP dolazi samo sa Win32 subsistemom (NT je dolazio i sa OS2 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 treciIz 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 delovaHJT 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 deoServisi 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 razlogaSamo Ring0 moze da izazove BSOD Ring3 moze da izazove samo greske koje ne obaraju kompletan WindowsRing0 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 obrisanNajgora 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 navodnicimaSvaki 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 CDocuments and SettingsAdministrator NihadStart MenuProgramsStartup Adobe Gammalnk - CProgram FilesCommon FilesAdobeCalibrationAdobe Gamma Loaderexe [2005-03-16 191650 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 nalogaSvaki od njih ima svoj Startup folder koji naravno moze biti razlicit za svakog korisnikaUkoliko 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 CDocuments and SettingsAll UsersStart MenuProgramsStartup Cemu sluze CDocuments and Settings (Default User LocalService) U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobitiZnaci sta ce biti u start menu-juTo je osnova za novi accountZnaci 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 privilegijeOvo 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 nalogaSystem 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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 2: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

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 adwareaspywarea isto koristi ovu mogucnostOd verzije IE 60 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 kaže predstavlja skeniranje na internetu (online - je engleska reč i znači na vezi tj na internetu) Potreba za online skeniranjem se javlja iz različitih razloga kao npr - provera određenih fajlova drugim antivirusnim rešenjem od našeg a da se ne mora u isto vreme i instalirati taj antivirusni program - testiranje učinkovitosti antivirusnog rešenja koje imamo na našem računaru na taj način što demo uz pomod online skenera testrati sumljive fajlove i samim tim proveriti i sposobnost našeg sopstvenog antivirusnog rešenja - u određenim situacijama naš antivirusni program može biti onesposobljen online skeniranjem možemo utvrditi sa kakvom malicioznom opasnošdu imamo posla i na osnovu toga koje mere možemo dalje preduzeti - i tako dalje i tako dalje potreba za skeniranjem na internetu može 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 cinitiAko recimo bude dolaznih TCP paketa na portu 80 FW sigurno zna da se to u browseru ucitava neka stranicaAko 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 (gt1024) 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 konekcijeServer 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 v202 Scan saved at 44013 PM on 3122009 Platform Windows XP SP2 (WinNT 5012600) MSIE Internet Explorer v600 SP2 (60029002180) Boot mode Normal Logfile of Trend Micro HijackThis v202 ova linija da je to log file od programa na kojem je pokrenuto skeniranje i njegovu verzijuObicno kod programa je bitna verzija zbog toga sto su neki zastarelia neki su opet najnovija verzija koja moguce da nije dovoljno testirana i samim tim nesigurna Scan saved at 44013 PM on 3122009 govori nam kad je obavljeno skeniranje sistema i bitno je zbog pregleda logajer 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 5012600) opisuje vrstu operativnog sistemakoristi 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 v600 SP2 (60029002180) govori nam verziju web borsweraa to je bitno zbog poznatih propusta broswera i zbog malware-a koji koriste te propuste Boot mode Normal govori nam u kom rezimu radi sistembitno je zbog toga jer nacin rada mora da bude normalan i da svi resursi rade normalnoda 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 1991 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 - windirNetwork Diagnosticxpnetdiagexe (file missing) O9 - Extra Tools menuitem xpsp3resdll-20001 - e2e2dd38-d088-4134-82b7-f2ba38496583 - windirNetwork Diagnosticxpnetdiagexe (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 - windirNetwork Diagnosticxpnetdiagexe -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) CWINDOWSSystem32smssexe ndash Smssexe je sastavni deo Majkrosoftovog operativnog sistema On je menadžer sesije podsistema koji je odgovoran za startovanje korisničke sesijeOvaj proces je uveden u sistemsku nit i odgovoran je za različite aktivnosti uključivši ldquolansiranjerdquo Winlogon-a i Win32-a(Csrssexe) procesa i podešavanje sistemskih promena Pošto su lansirani ovi procesi čekaju ili Winlogon-a ili Csrssexe da se završe Ako se ovo dešava normalno sistem se gasi ako se dogada neočekivano smssexe izaziva kočenje sistema Ovaj process je potreban za stabilno i normalno funkcionisanje windows-a i ne treba se gasititi Napomena smssexe fajl je lociran u CWindowsSystem32 folderu U drugim slučajevima smssexe je virus spyware trojanac ili crv CWINDOWSsystem32winlogonexe - Proces koji pripada windows-ovom login menadžeru On reguliše login i logout procedure na sistemu Ovaj process radi u pozadini Znači on vrši korisničku 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 CWINDOWSsystem32 folderu onda se radi o nekom malicioznom programu CWINDOWSsystem32servicesexe ndash Deo Majkrosoftovog operativnog sistema je servicesexe 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 gašenja kompjutera Proces je neophodan za stabilno i sigurno funkcionisanje računara 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 CWINDOWSsystem32servicesexe folderu onda se radi o nekom malicioznom programu CWINDOWSsystem32lsassexe ndash Majkrosoftov siguronosni mehanizam lsassexe je lokalni sigurnosni server za autentičnost On verifikuje validnost korisnikovih logova ka njegovom PCServer -u Generiše proces odgovoran za autentičnost korisnika za Winlogon servis Proces se odvija koristeci autentičnost paketa kao što je po standardu Msginadll Ako je potvrđena autentičnost Lsass generiše dokaz korisničkog pristupa koji je korišden da pokrene incijalni štit Ukratko on posebno ima posla sa lokalnom bezbednošcu i ldquologin policies-omrdquo Napomena Ovaj lsassexe fajl je smešten u CWindowsSystem32 folderu U ostalim slučajevima lsassexe je virus spyware trojanac ili crv

CWINDOWSsystem32svchostexe - Svchostexe je generični domadi proces a to je ime za servise koji polaze od dinamičke-link biblioteka (DLL) Ovaj fajl je lociran u SystemRootSystem32 folderu Prilikom starta on proverava delove servisa registrija da bi napravio listu servisa koji se moraju load -ovati Mnogostruki slučajevi svchostexe mogu raditi istovremeno Svaka grupa svchostexe može sadržati čitavu grupu servisa Zbog ovoga odvojeni servisi mogu počinjati u zavisnosti kako je svchostexe startovan Ovakva grupa servisa omoguduje bolju kontrolu i lakše otklanjanje grešaka 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 TASKLISTSVC onda pretisnemo ENTER Napomena kao i mnogi ostali sistemski procesi i ovaj je predmet imitacije raznih malicioznih programa Npr ako se ne nalazi u CWINDOWSsystem32 folderu onda se radi o nekom malicioznom programu Svchostexe grupe servisa se sadrze u sledecem kljucu HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsNTCurrentVersionSvchost Svaka vrednost pod ovim kljucem predstavlja razlicitu Svchost grupu i predstavlja razlicitu linijuvrednost 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_MACHINESystemCurrentControlSetServicesService Primer grupa servisa koje svchostexe opsluzuje svchostexe 772 DcomLaunch TermService svchostexe 820 RpcSs svchostexe 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 svchostexe 972 Dnscache svchostexe 1084 LmHosts RemoteRegistry SSDPSRV WebClient svchostexe 672 scan Brojevi oznacavaju PID ili Process ID Jedan svchostexe 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 grupeOvo 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 servisimaPrvima 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 servisimaOni imaju ona prava koja ima i nalog pod kojim su pokrenutiAnalogno 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 fajlovaOn 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 67 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 CProgram FilesMessengermsmsgsexe ndash Msmsgsexe 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 takođe instaliran pored ovog procesa za lakši pristup osobinama kao što su internet čat deljenje fajlova i audiovideo konferisanje Ovaj process nije neophodan Diseblovanje ili omogudavanje je stvar samog korisnika Napomena ovaj process je smešten u CProgram FilesMessenger folderu u suprotnom radi se o malicioznom programu CWINDOWSsystem32ctfmonexe - Ctfmonexe je process Majkrosoftovog službenog sajta koji prati sve windows-ove aktivnosti i omogudava stavljanje teksta sa servisnom podrškom za raspoznavanje govora raspoznavanje ručnog pisanja tastature prevoda i druge alternativne korisničke 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 apletuUbijanjem procesa ne nestaje language bar ali ni ne funkcionise vise CWINDOWSExplorerexe - Microsoft Windows Explorer ima dvojaku funkciju tjmoze da se startuje u dva moda On je Windows-ov menadžer programa Upravlja Windows-ovom grafičkom školjkom uključujudi taskbar desktop i fajl menadžer Ako se ovaj proces isključi Windows-ov grafički 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 ExploreraNajcesci simptomi su prazan ekran bez radne povrsine inace moze i tada da se pokrene explorer preko Task Manager-a -gt File-gt 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 CWINDOWSsystem32servicesexe - Sluzi za pokretanje gasenje i saradnju sa ostalim servisima OS-a CWindowsSystem32rundll32exe - 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 funkcijeRUNDLL32 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 pokretanjeRundll32 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 Rundll32exe je univerzalan program za pokretanje standardnih DLL fajlova Pod standardnim DLL fajlovima podrazumevam sve one koji imaju implementiranu funkciju DllMain() Uz pomoc rundll32exe 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 CProgram FilesCommon FilesMicrosoft SharedVS7DEBUGMDMEXE 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 stage1stage 2 Svaki Stage sluzi za nalazenje jedne konkretne infekcijePrimer (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_USERSoftwareMicrosoftInternet ExplorerSearchURL] (Default)=httpwwwupdatesearchescomsearchphpqq=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_USERSoftwareVendors nameApplications nameVersionSetting 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 podesavanjimakonfiguraciji 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 NTUSERDAT i USRCLASSDAT unutar njihovog Documents and Settings foldera HKLM-HKEY_LOCAL_MACHINE-Hive koji sadrzi informacije o globalnim podesavanjima[Hardwerneka 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 SystemRootSystem32config 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 razlicitHKLM ostaje istiTo je zato sto sadrzi informacije o samom racunaru OS-u hardware-uPriporitet 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 kljucOvo 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 amp SettingsUSERNAMENtuserdat) O4 - HKUSDEFAULTRun [Security] CWindowssystem32explorerexe (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 fajloveWinXP prepoznaje i RegEdit 4 format ali uvodi i verziju 5Prva razlika je u samom zapisu REG fajlova Header kod verzije 4 REGEDIT4 Header kod verzije 5 Windows Registry Editor Version 500 Druga razlika je u formatuZa 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 zapisaWindows od Win2k na ovamo koristi UTF-16 a pre toga je koristio UCS-2Inace 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 ASCIIANSI setom Ukoliko v5 snimimo kao ANSI i pokusamo takav fajl da importujemo u reg bazu - dobicijamo poruku da fajl nije validan REG fajlIsto 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 ASCIIANSI 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) httpwwwmycityrsAV-Arhiva-skole01-helen1html801520

VARIJABLE F1 - winini load=ptsnoopexe Kako ce Windows znati u kom folderu da potrazi taj fajl ptsnoopexe 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-gt Properties-gt Advanced-gtEnvironment Variables Postoji i laksi nacin - iz konzoleSamo otkucamo ime varijable i pritisnes Enter (start-gtrun-gtcmd-gtecho 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 gt Clogtxt echo PATHEXT gtgt Clogtxt notepadexe clogtxt -gt httpwwwmycityrsslikaphpslika=109451_304978409_Noname1JPG 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 WindowsObicno je kod vecine korisnika u CWindows ali isto tako kod nekog moze biti u recimo FWindows ili mozda cak DMoj_OS ukoliko je tako odabrao pri instalacijiDa 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 modularnoNa kernel mozes ubaciti razlicite subsisteme s tim sto XP dolazi samo sa Win32 subsistemom (NT je dolazio i sa OS2 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 treciIz 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 delovaHJT 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 deoServisi 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 razlogaSamo Ring0 moze da izazove BSOD Ring3 moze da izazove samo greske koje ne obaraju kompletan WindowsRing0 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 obrisanNajgora 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 navodnicimaSvaki 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 CDocuments and SettingsAdministrator NihadStart MenuProgramsStartup Adobe Gammalnk - CProgram FilesCommon FilesAdobeCalibrationAdobe Gamma Loaderexe [2005-03-16 191650 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 nalogaSvaki od njih ima svoj Startup folder koji naravno moze biti razlicit za svakog korisnikaUkoliko 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 CDocuments and SettingsAll UsersStart MenuProgramsStartup Cemu sluze CDocuments and Settings (Default User LocalService) U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobitiZnaci sta ce biti u start menu-juTo je osnova za novi accountZnaci 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 privilegijeOvo 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 nalogaSystem 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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 3: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

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 cinitiAko recimo bude dolaznih TCP paketa na portu 80 FW sigurno zna da se to u browseru ucitava neka stranicaAko 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 (gt1024) 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 konekcijeServer 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 v202 Scan saved at 44013 PM on 3122009 Platform Windows XP SP2 (WinNT 5012600) MSIE Internet Explorer v600 SP2 (60029002180) Boot mode Normal Logfile of Trend Micro HijackThis v202 ova linija da je to log file od programa na kojem je pokrenuto skeniranje i njegovu verzijuObicno kod programa je bitna verzija zbog toga sto su neki zastarelia neki su opet najnovija verzija koja moguce da nije dovoljno testirana i samim tim nesigurna Scan saved at 44013 PM on 3122009 govori nam kad je obavljeno skeniranje sistema i bitno je zbog pregleda logajer 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 5012600) opisuje vrstu operativnog sistemakoristi 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 v600 SP2 (60029002180) govori nam verziju web borsweraa to je bitno zbog poznatih propusta broswera i zbog malware-a koji koriste te propuste Boot mode Normal govori nam u kom rezimu radi sistembitno je zbog toga jer nacin rada mora da bude normalan i da svi resursi rade normalnoda 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 1991 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 - windirNetwork Diagnosticxpnetdiagexe (file missing) O9 - Extra Tools menuitem xpsp3resdll-20001 - e2e2dd38-d088-4134-82b7-f2ba38496583 - windirNetwork Diagnosticxpnetdiagexe (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 - windirNetwork Diagnosticxpnetdiagexe -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) CWINDOWSSystem32smssexe ndash Smssexe je sastavni deo Majkrosoftovog operativnog sistema On je menadžer sesije podsistema koji je odgovoran za startovanje korisničke sesijeOvaj proces je uveden u sistemsku nit i odgovoran je za različite aktivnosti uključivši ldquolansiranjerdquo Winlogon-a i Win32-a(Csrssexe) procesa i podešavanje sistemskih promena Pošto su lansirani ovi procesi čekaju ili Winlogon-a ili Csrssexe da se završe Ako se ovo dešava normalno sistem se gasi ako se dogada neočekivano smssexe izaziva kočenje sistema Ovaj process je potreban za stabilno i normalno funkcionisanje windows-a i ne treba se gasititi Napomena smssexe fajl je lociran u CWindowsSystem32 folderu U drugim slučajevima smssexe je virus spyware trojanac ili crv CWINDOWSsystem32winlogonexe - Proces koji pripada windows-ovom login menadžeru On reguliše login i logout procedure na sistemu Ovaj process radi u pozadini Znači on vrši korisničku 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 CWINDOWSsystem32 folderu onda se radi o nekom malicioznom programu CWINDOWSsystem32servicesexe ndash Deo Majkrosoftovog operativnog sistema je servicesexe 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 gašenja kompjutera Proces je neophodan za stabilno i sigurno funkcionisanje računara 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 CWINDOWSsystem32servicesexe folderu onda se radi o nekom malicioznom programu CWINDOWSsystem32lsassexe ndash Majkrosoftov siguronosni mehanizam lsassexe je lokalni sigurnosni server za autentičnost On verifikuje validnost korisnikovih logova ka njegovom PCServer -u Generiše proces odgovoran za autentičnost korisnika za Winlogon servis Proces se odvija koristeci autentičnost paketa kao što je po standardu Msginadll Ako je potvrđena autentičnost Lsass generiše dokaz korisničkog pristupa koji je korišden da pokrene incijalni štit Ukratko on posebno ima posla sa lokalnom bezbednošcu i ldquologin policies-omrdquo Napomena Ovaj lsassexe fajl je smešten u CWindowsSystem32 folderu U ostalim slučajevima lsassexe je virus spyware trojanac ili crv

CWINDOWSsystem32svchostexe - Svchostexe je generični domadi proces a to je ime za servise koji polaze od dinamičke-link biblioteka (DLL) Ovaj fajl je lociran u SystemRootSystem32 folderu Prilikom starta on proverava delove servisa registrija da bi napravio listu servisa koji se moraju load -ovati Mnogostruki slučajevi svchostexe mogu raditi istovremeno Svaka grupa svchostexe može sadržati čitavu grupu servisa Zbog ovoga odvojeni servisi mogu počinjati u zavisnosti kako je svchostexe startovan Ovakva grupa servisa omoguduje bolju kontrolu i lakše otklanjanje grešaka 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 TASKLISTSVC onda pretisnemo ENTER Napomena kao i mnogi ostali sistemski procesi i ovaj je predmet imitacije raznih malicioznih programa Npr ako se ne nalazi u CWINDOWSsystem32 folderu onda se radi o nekom malicioznom programu Svchostexe grupe servisa se sadrze u sledecem kljucu HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsNTCurrentVersionSvchost Svaka vrednost pod ovim kljucem predstavlja razlicitu Svchost grupu i predstavlja razlicitu linijuvrednost 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_MACHINESystemCurrentControlSetServicesService Primer grupa servisa koje svchostexe opsluzuje svchostexe 772 DcomLaunch TermService svchostexe 820 RpcSs svchostexe 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 svchostexe 972 Dnscache svchostexe 1084 LmHosts RemoteRegistry SSDPSRV WebClient svchostexe 672 scan Brojevi oznacavaju PID ili Process ID Jedan svchostexe 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 grupeOvo 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 servisimaPrvima 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 servisimaOni imaju ona prava koja ima i nalog pod kojim su pokrenutiAnalogno 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 fajlovaOn 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 67 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 CProgram FilesMessengermsmsgsexe ndash Msmsgsexe 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 takođe instaliran pored ovog procesa za lakši pristup osobinama kao što su internet čat deljenje fajlova i audiovideo konferisanje Ovaj process nije neophodan Diseblovanje ili omogudavanje je stvar samog korisnika Napomena ovaj process je smešten u CProgram FilesMessenger folderu u suprotnom radi se o malicioznom programu CWINDOWSsystem32ctfmonexe - Ctfmonexe je process Majkrosoftovog službenog sajta koji prati sve windows-ove aktivnosti i omogudava stavljanje teksta sa servisnom podrškom za raspoznavanje govora raspoznavanje ručnog pisanja tastature prevoda i druge alternativne korisničke 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 apletuUbijanjem procesa ne nestaje language bar ali ni ne funkcionise vise CWINDOWSExplorerexe - Microsoft Windows Explorer ima dvojaku funkciju tjmoze da se startuje u dva moda On je Windows-ov menadžer programa Upravlja Windows-ovom grafičkom školjkom uključujudi taskbar desktop i fajl menadžer Ako se ovaj proces isključi Windows-ov grafički 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 ExploreraNajcesci simptomi su prazan ekran bez radne povrsine inace moze i tada da se pokrene explorer preko Task Manager-a -gt File-gt 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 CWINDOWSsystem32servicesexe - Sluzi za pokretanje gasenje i saradnju sa ostalim servisima OS-a CWindowsSystem32rundll32exe - 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 funkcijeRUNDLL32 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 pokretanjeRundll32 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 Rundll32exe je univerzalan program za pokretanje standardnih DLL fajlova Pod standardnim DLL fajlovima podrazumevam sve one koji imaju implementiranu funkciju DllMain() Uz pomoc rundll32exe 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 CProgram FilesCommon FilesMicrosoft SharedVS7DEBUGMDMEXE 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 stage1stage 2 Svaki Stage sluzi za nalazenje jedne konkretne infekcijePrimer (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_USERSoftwareMicrosoftInternet ExplorerSearchURL] (Default)=httpwwwupdatesearchescomsearchphpqq=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_USERSoftwareVendors nameApplications nameVersionSetting 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 podesavanjimakonfiguraciji 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 NTUSERDAT i USRCLASSDAT unutar njihovog Documents and Settings foldera HKLM-HKEY_LOCAL_MACHINE-Hive koji sadrzi informacije o globalnim podesavanjima[Hardwerneka 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 SystemRootSystem32config 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 razlicitHKLM ostaje istiTo je zato sto sadrzi informacije o samom racunaru OS-u hardware-uPriporitet 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 kljucOvo 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 amp SettingsUSERNAMENtuserdat) O4 - HKUSDEFAULTRun [Security] CWindowssystem32explorerexe (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 fajloveWinXP prepoznaje i RegEdit 4 format ali uvodi i verziju 5Prva razlika je u samom zapisu REG fajlova Header kod verzije 4 REGEDIT4 Header kod verzije 5 Windows Registry Editor Version 500 Druga razlika je u formatuZa 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 zapisaWindows od Win2k na ovamo koristi UTF-16 a pre toga je koristio UCS-2Inace 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 ASCIIANSI setom Ukoliko v5 snimimo kao ANSI i pokusamo takav fajl da importujemo u reg bazu - dobicijamo poruku da fajl nije validan REG fajlIsto 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 ASCIIANSI 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) httpwwwmycityrsAV-Arhiva-skole01-helen1html801520

VARIJABLE F1 - winini load=ptsnoopexe Kako ce Windows znati u kom folderu da potrazi taj fajl ptsnoopexe 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-gt Properties-gt Advanced-gtEnvironment Variables Postoji i laksi nacin - iz konzoleSamo otkucamo ime varijable i pritisnes Enter (start-gtrun-gtcmd-gtecho 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 gt Clogtxt echo PATHEXT gtgt Clogtxt notepadexe clogtxt -gt httpwwwmycityrsslikaphpslika=109451_304978409_Noname1JPG 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 WindowsObicno je kod vecine korisnika u CWindows ali isto tako kod nekog moze biti u recimo FWindows ili mozda cak DMoj_OS ukoliko je tako odabrao pri instalacijiDa 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 modularnoNa kernel mozes ubaciti razlicite subsisteme s tim sto XP dolazi samo sa Win32 subsistemom (NT je dolazio i sa OS2 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 treciIz 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 delovaHJT 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 deoServisi 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 razlogaSamo Ring0 moze da izazove BSOD Ring3 moze da izazove samo greske koje ne obaraju kompletan WindowsRing0 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 obrisanNajgora 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 navodnicimaSvaki 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 CDocuments and SettingsAdministrator NihadStart MenuProgramsStartup Adobe Gammalnk - CProgram FilesCommon FilesAdobeCalibrationAdobe Gamma Loaderexe [2005-03-16 191650 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 nalogaSvaki od njih ima svoj Startup folder koji naravno moze biti razlicit za svakog korisnikaUkoliko 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 CDocuments and SettingsAll UsersStart MenuProgramsStartup Cemu sluze CDocuments and Settings (Default User LocalService) U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobitiZnaci sta ce biti u start menu-juTo je osnova za novi accountZnaci 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 privilegijeOvo 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 nalogaSystem 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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 4: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

HIJACK THIS Logfile of Trend Micro HijackThis v202 Scan saved at 44013 PM on 3122009 Platform Windows XP SP2 (WinNT 5012600) MSIE Internet Explorer v600 SP2 (60029002180) Boot mode Normal Logfile of Trend Micro HijackThis v202 ova linija da je to log file od programa na kojem je pokrenuto skeniranje i njegovu verzijuObicno kod programa je bitna verzija zbog toga sto su neki zastarelia neki su opet najnovija verzija koja moguce da nije dovoljno testirana i samim tim nesigurna Scan saved at 44013 PM on 3122009 govori nam kad je obavljeno skeniranje sistema i bitno je zbog pregleda logajer 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 5012600) opisuje vrstu operativnog sistemakoristi 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 v600 SP2 (60029002180) govori nam verziju web borsweraa to je bitno zbog poznatih propusta broswera i zbog malware-a koji koriste te propuste Boot mode Normal govori nam u kom rezimu radi sistembitno je zbog toga jer nacin rada mora da bude normalan i da svi resursi rade normalnoda 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 1991 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 - windirNetwork Diagnosticxpnetdiagexe (file missing) O9 - Extra Tools menuitem xpsp3resdll-20001 - e2e2dd38-d088-4134-82b7-f2ba38496583 - windirNetwork Diagnosticxpnetdiagexe (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 - windirNetwork Diagnosticxpnetdiagexe -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) CWINDOWSSystem32smssexe ndash Smssexe je sastavni deo Majkrosoftovog operativnog sistema On je menadžer sesije podsistema koji je odgovoran za startovanje korisničke sesijeOvaj proces je uveden u sistemsku nit i odgovoran je za različite aktivnosti uključivši ldquolansiranjerdquo Winlogon-a i Win32-a(Csrssexe) procesa i podešavanje sistemskih promena Pošto su lansirani ovi procesi čekaju ili Winlogon-a ili Csrssexe da se završe Ako se ovo dešava normalno sistem se gasi ako se dogada neočekivano smssexe izaziva kočenje sistema Ovaj process je potreban za stabilno i normalno funkcionisanje windows-a i ne treba se gasititi Napomena smssexe fajl je lociran u CWindowsSystem32 folderu U drugim slučajevima smssexe je virus spyware trojanac ili crv CWINDOWSsystem32winlogonexe - Proces koji pripada windows-ovom login menadžeru On reguliše login i logout procedure na sistemu Ovaj process radi u pozadini Znači on vrši korisničku 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 CWINDOWSsystem32 folderu onda se radi o nekom malicioznom programu CWINDOWSsystem32servicesexe ndash Deo Majkrosoftovog operativnog sistema je servicesexe 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 gašenja kompjutera Proces je neophodan za stabilno i sigurno funkcionisanje računara 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 CWINDOWSsystem32servicesexe folderu onda se radi o nekom malicioznom programu CWINDOWSsystem32lsassexe ndash Majkrosoftov siguronosni mehanizam lsassexe je lokalni sigurnosni server za autentičnost On verifikuje validnost korisnikovih logova ka njegovom PCServer -u Generiše proces odgovoran za autentičnost korisnika za Winlogon servis Proces se odvija koristeci autentičnost paketa kao što je po standardu Msginadll Ako je potvrđena autentičnost Lsass generiše dokaz korisničkog pristupa koji je korišden da pokrene incijalni štit Ukratko on posebno ima posla sa lokalnom bezbednošcu i ldquologin policies-omrdquo Napomena Ovaj lsassexe fajl je smešten u CWindowsSystem32 folderu U ostalim slučajevima lsassexe je virus spyware trojanac ili crv

CWINDOWSsystem32svchostexe - Svchostexe je generični domadi proces a to je ime za servise koji polaze od dinamičke-link biblioteka (DLL) Ovaj fajl je lociran u SystemRootSystem32 folderu Prilikom starta on proverava delove servisa registrija da bi napravio listu servisa koji se moraju load -ovati Mnogostruki slučajevi svchostexe mogu raditi istovremeno Svaka grupa svchostexe može sadržati čitavu grupu servisa Zbog ovoga odvojeni servisi mogu počinjati u zavisnosti kako je svchostexe startovan Ovakva grupa servisa omoguduje bolju kontrolu i lakše otklanjanje grešaka 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 TASKLISTSVC onda pretisnemo ENTER Napomena kao i mnogi ostali sistemski procesi i ovaj je predmet imitacije raznih malicioznih programa Npr ako se ne nalazi u CWINDOWSsystem32 folderu onda se radi o nekom malicioznom programu Svchostexe grupe servisa se sadrze u sledecem kljucu HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsNTCurrentVersionSvchost Svaka vrednost pod ovim kljucem predstavlja razlicitu Svchost grupu i predstavlja razlicitu linijuvrednost 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_MACHINESystemCurrentControlSetServicesService Primer grupa servisa koje svchostexe opsluzuje svchostexe 772 DcomLaunch TermService svchostexe 820 RpcSs svchostexe 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 svchostexe 972 Dnscache svchostexe 1084 LmHosts RemoteRegistry SSDPSRV WebClient svchostexe 672 scan Brojevi oznacavaju PID ili Process ID Jedan svchostexe 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 grupeOvo 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 servisimaPrvima 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 servisimaOni imaju ona prava koja ima i nalog pod kojim su pokrenutiAnalogno 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 fajlovaOn 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 67 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 CProgram FilesMessengermsmsgsexe ndash Msmsgsexe 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 takođe instaliran pored ovog procesa za lakši pristup osobinama kao što su internet čat deljenje fajlova i audiovideo konferisanje Ovaj process nije neophodan Diseblovanje ili omogudavanje je stvar samog korisnika Napomena ovaj process je smešten u CProgram FilesMessenger folderu u suprotnom radi se o malicioznom programu CWINDOWSsystem32ctfmonexe - Ctfmonexe je process Majkrosoftovog službenog sajta koji prati sve windows-ove aktivnosti i omogudava stavljanje teksta sa servisnom podrškom za raspoznavanje govora raspoznavanje ručnog pisanja tastature prevoda i druge alternativne korisničke 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 apletuUbijanjem procesa ne nestaje language bar ali ni ne funkcionise vise CWINDOWSExplorerexe - Microsoft Windows Explorer ima dvojaku funkciju tjmoze da se startuje u dva moda On je Windows-ov menadžer programa Upravlja Windows-ovom grafičkom školjkom uključujudi taskbar desktop i fajl menadžer Ako se ovaj proces isključi Windows-ov grafički 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 ExploreraNajcesci simptomi su prazan ekran bez radne povrsine inace moze i tada da se pokrene explorer preko Task Manager-a -gt File-gt 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 CWINDOWSsystem32servicesexe - Sluzi za pokretanje gasenje i saradnju sa ostalim servisima OS-a CWindowsSystem32rundll32exe - 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 funkcijeRUNDLL32 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 pokretanjeRundll32 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 Rundll32exe je univerzalan program za pokretanje standardnih DLL fajlova Pod standardnim DLL fajlovima podrazumevam sve one koji imaju implementiranu funkciju DllMain() Uz pomoc rundll32exe 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 CProgram FilesCommon FilesMicrosoft SharedVS7DEBUGMDMEXE 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 stage1stage 2 Svaki Stage sluzi za nalazenje jedne konkretne infekcijePrimer (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_USERSoftwareMicrosoftInternet ExplorerSearchURL] (Default)=httpwwwupdatesearchescomsearchphpqq=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_USERSoftwareVendors nameApplications nameVersionSetting 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 podesavanjimakonfiguraciji 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 NTUSERDAT i USRCLASSDAT unutar njihovog Documents and Settings foldera HKLM-HKEY_LOCAL_MACHINE-Hive koji sadrzi informacije o globalnim podesavanjima[Hardwerneka 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 SystemRootSystem32config 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 razlicitHKLM ostaje istiTo je zato sto sadrzi informacije o samom racunaru OS-u hardware-uPriporitet 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 kljucOvo 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 amp SettingsUSERNAMENtuserdat) O4 - HKUSDEFAULTRun [Security] CWindowssystem32explorerexe (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 fajloveWinXP prepoznaje i RegEdit 4 format ali uvodi i verziju 5Prva razlika je u samom zapisu REG fajlova Header kod verzije 4 REGEDIT4 Header kod verzije 5 Windows Registry Editor Version 500 Druga razlika je u formatuZa 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 zapisaWindows od Win2k na ovamo koristi UTF-16 a pre toga je koristio UCS-2Inace 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 ASCIIANSI setom Ukoliko v5 snimimo kao ANSI i pokusamo takav fajl da importujemo u reg bazu - dobicijamo poruku da fajl nije validan REG fajlIsto 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 ASCIIANSI 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) httpwwwmycityrsAV-Arhiva-skole01-helen1html801520

VARIJABLE F1 - winini load=ptsnoopexe Kako ce Windows znati u kom folderu da potrazi taj fajl ptsnoopexe 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-gt Properties-gt Advanced-gtEnvironment Variables Postoji i laksi nacin - iz konzoleSamo otkucamo ime varijable i pritisnes Enter (start-gtrun-gtcmd-gtecho 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 gt Clogtxt echo PATHEXT gtgt Clogtxt notepadexe clogtxt -gt httpwwwmycityrsslikaphpslika=109451_304978409_Noname1JPG 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 WindowsObicno je kod vecine korisnika u CWindows ali isto tako kod nekog moze biti u recimo FWindows ili mozda cak DMoj_OS ukoliko je tako odabrao pri instalacijiDa 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 modularnoNa kernel mozes ubaciti razlicite subsisteme s tim sto XP dolazi samo sa Win32 subsistemom (NT je dolazio i sa OS2 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 treciIz 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 delovaHJT 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 deoServisi 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 razlogaSamo Ring0 moze da izazove BSOD Ring3 moze da izazove samo greske koje ne obaraju kompletan WindowsRing0 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 obrisanNajgora 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 navodnicimaSvaki 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 CDocuments and SettingsAdministrator NihadStart MenuProgramsStartup Adobe Gammalnk - CProgram FilesCommon FilesAdobeCalibrationAdobe Gamma Loaderexe [2005-03-16 191650 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 nalogaSvaki od njih ima svoj Startup folder koji naravno moze biti razlicit za svakog korisnikaUkoliko 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 CDocuments and SettingsAll UsersStart MenuProgramsStartup Cemu sluze CDocuments and Settings (Default User LocalService) U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobitiZnaci sta ce biti u start menu-juTo je osnova za novi accountZnaci 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 privilegijeOvo 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 nalogaSystem 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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 5: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

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 - windirNetwork Diagnosticxpnetdiagexe -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) CWINDOWSSystem32smssexe ndash Smssexe je sastavni deo Majkrosoftovog operativnog sistema On je menadžer sesije podsistema koji je odgovoran za startovanje korisničke sesijeOvaj proces je uveden u sistemsku nit i odgovoran je za različite aktivnosti uključivši ldquolansiranjerdquo Winlogon-a i Win32-a(Csrssexe) procesa i podešavanje sistemskih promena Pošto su lansirani ovi procesi čekaju ili Winlogon-a ili Csrssexe da se završe Ako se ovo dešava normalno sistem se gasi ako se dogada neočekivano smssexe izaziva kočenje sistema Ovaj process je potreban za stabilno i normalno funkcionisanje windows-a i ne treba se gasititi Napomena smssexe fajl je lociran u CWindowsSystem32 folderu U drugim slučajevima smssexe je virus spyware trojanac ili crv CWINDOWSsystem32winlogonexe - Proces koji pripada windows-ovom login menadžeru On reguliše login i logout procedure na sistemu Ovaj process radi u pozadini Znači on vrši korisničku 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 CWINDOWSsystem32 folderu onda se radi o nekom malicioznom programu CWINDOWSsystem32servicesexe ndash Deo Majkrosoftovog operativnog sistema je servicesexe 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 gašenja kompjutera Proces je neophodan za stabilno i sigurno funkcionisanje računara 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 CWINDOWSsystem32servicesexe folderu onda se radi o nekom malicioznom programu CWINDOWSsystem32lsassexe ndash Majkrosoftov siguronosni mehanizam lsassexe je lokalni sigurnosni server za autentičnost On verifikuje validnost korisnikovih logova ka njegovom PCServer -u Generiše proces odgovoran za autentičnost korisnika za Winlogon servis Proces se odvija koristeci autentičnost paketa kao što je po standardu Msginadll Ako je potvrđena autentičnost Lsass generiše dokaz korisničkog pristupa koji je korišden da pokrene incijalni štit Ukratko on posebno ima posla sa lokalnom bezbednošcu i ldquologin policies-omrdquo Napomena Ovaj lsassexe fajl je smešten u CWindowsSystem32 folderu U ostalim slučajevima lsassexe je virus spyware trojanac ili crv

CWINDOWSsystem32svchostexe - Svchostexe je generični domadi proces a to je ime za servise koji polaze od dinamičke-link biblioteka (DLL) Ovaj fajl je lociran u SystemRootSystem32 folderu Prilikom starta on proverava delove servisa registrija da bi napravio listu servisa koji se moraju load -ovati Mnogostruki slučajevi svchostexe mogu raditi istovremeno Svaka grupa svchostexe može sadržati čitavu grupu servisa Zbog ovoga odvojeni servisi mogu počinjati u zavisnosti kako je svchostexe startovan Ovakva grupa servisa omoguduje bolju kontrolu i lakše otklanjanje grešaka 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 TASKLISTSVC onda pretisnemo ENTER Napomena kao i mnogi ostali sistemski procesi i ovaj je predmet imitacije raznih malicioznih programa Npr ako se ne nalazi u CWINDOWSsystem32 folderu onda se radi o nekom malicioznom programu Svchostexe grupe servisa se sadrze u sledecem kljucu HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsNTCurrentVersionSvchost Svaka vrednost pod ovim kljucem predstavlja razlicitu Svchost grupu i predstavlja razlicitu linijuvrednost 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_MACHINESystemCurrentControlSetServicesService Primer grupa servisa koje svchostexe opsluzuje svchostexe 772 DcomLaunch TermService svchostexe 820 RpcSs svchostexe 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 svchostexe 972 Dnscache svchostexe 1084 LmHosts RemoteRegistry SSDPSRV WebClient svchostexe 672 scan Brojevi oznacavaju PID ili Process ID Jedan svchostexe 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 grupeOvo 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 servisimaPrvima 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 servisimaOni imaju ona prava koja ima i nalog pod kojim su pokrenutiAnalogno 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 fajlovaOn 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 67 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 CProgram FilesMessengermsmsgsexe ndash Msmsgsexe 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 takođe instaliran pored ovog procesa za lakši pristup osobinama kao što su internet čat deljenje fajlova i audiovideo konferisanje Ovaj process nije neophodan Diseblovanje ili omogudavanje je stvar samog korisnika Napomena ovaj process je smešten u CProgram FilesMessenger folderu u suprotnom radi se o malicioznom programu CWINDOWSsystem32ctfmonexe - Ctfmonexe je process Majkrosoftovog službenog sajta koji prati sve windows-ove aktivnosti i omogudava stavljanje teksta sa servisnom podrškom za raspoznavanje govora raspoznavanje ručnog pisanja tastature prevoda i druge alternativne korisničke 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 apletuUbijanjem procesa ne nestaje language bar ali ni ne funkcionise vise CWINDOWSExplorerexe - Microsoft Windows Explorer ima dvojaku funkciju tjmoze da se startuje u dva moda On je Windows-ov menadžer programa Upravlja Windows-ovom grafičkom školjkom uključujudi taskbar desktop i fajl menadžer Ako se ovaj proces isključi Windows-ov grafički 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 ExploreraNajcesci simptomi su prazan ekran bez radne povrsine inace moze i tada da se pokrene explorer preko Task Manager-a -gt File-gt 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 CWINDOWSsystem32servicesexe - Sluzi za pokretanje gasenje i saradnju sa ostalim servisima OS-a CWindowsSystem32rundll32exe - 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 funkcijeRUNDLL32 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 pokretanjeRundll32 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 Rundll32exe je univerzalan program za pokretanje standardnih DLL fajlova Pod standardnim DLL fajlovima podrazumevam sve one koji imaju implementiranu funkciju DllMain() Uz pomoc rundll32exe 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 CProgram FilesCommon FilesMicrosoft SharedVS7DEBUGMDMEXE 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 stage1stage 2 Svaki Stage sluzi za nalazenje jedne konkretne infekcijePrimer (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_USERSoftwareMicrosoftInternet ExplorerSearchURL] (Default)=httpwwwupdatesearchescomsearchphpqq=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_USERSoftwareVendors nameApplications nameVersionSetting 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 podesavanjimakonfiguraciji 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 NTUSERDAT i USRCLASSDAT unutar njihovog Documents and Settings foldera HKLM-HKEY_LOCAL_MACHINE-Hive koji sadrzi informacije o globalnim podesavanjima[Hardwerneka 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 SystemRootSystem32config 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 razlicitHKLM ostaje istiTo je zato sto sadrzi informacije o samom racunaru OS-u hardware-uPriporitet 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 kljucOvo 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 amp SettingsUSERNAMENtuserdat) O4 - HKUSDEFAULTRun [Security] CWindowssystem32explorerexe (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 fajloveWinXP prepoznaje i RegEdit 4 format ali uvodi i verziju 5Prva razlika je u samom zapisu REG fajlova Header kod verzije 4 REGEDIT4 Header kod verzije 5 Windows Registry Editor Version 500 Druga razlika je u formatuZa 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 zapisaWindows od Win2k na ovamo koristi UTF-16 a pre toga je koristio UCS-2Inace 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 ASCIIANSI setom Ukoliko v5 snimimo kao ANSI i pokusamo takav fajl da importujemo u reg bazu - dobicijamo poruku da fajl nije validan REG fajlIsto 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 ASCIIANSI 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) httpwwwmycityrsAV-Arhiva-skole01-helen1html801520

VARIJABLE F1 - winini load=ptsnoopexe Kako ce Windows znati u kom folderu da potrazi taj fajl ptsnoopexe 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-gt Properties-gt Advanced-gtEnvironment Variables Postoji i laksi nacin - iz konzoleSamo otkucamo ime varijable i pritisnes Enter (start-gtrun-gtcmd-gtecho 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 gt Clogtxt echo PATHEXT gtgt Clogtxt notepadexe clogtxt -gt httpwwwmycityrsslikaphpslika=109451_304978409_Noname1JPG 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 WindowsObicno je kod vecine korisnika u CWindows ali isto tako kod nekog moze biti u recimo FWindows ili mozda cak DMoj_OS ukoliko je tako odabrao pri instalacijiDa 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 modularnoNa kernel mozes ubaciti razlicite subsisteme s tim sto XP dolazi samo sa Win32 subsistemom (NT je dolazio i sa OS2 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 treciIz 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 delovaHJT 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 deoServisi 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 razlogaSamo Ring0 moze da izazove BSOD Ring3 moze da izazove samo greske koje ne obaraju kompletan WindowsRing0 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 obrisanNajgora 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 navodnicimaSvaki 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 CDocuments and SettingsAdministrator NihadStart MenuProgramsStartup Adobe Gammalnk - CProgram FilesCommon FilesAdobeCalibrationAdobe Gamma Loaderexe [2005-03-16 191650 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 nalogaSvaki od njih ima svoj Startup folder koji naravno moze biti razlicit za svakog korisnikaUkoliko 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 CDocuments and SettingsAll UsersStart MenuProgramsStartup Cemu sluze CDocuments and Settings (Default User LocalService) U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobitiZnaci sta ce biti u start menu-juTo je osnova za novi accountZnaci 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 privilegijeOvo 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 nalogaSystem 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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 6: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

CWINDOWSsystem32svchostexe - Svchostexe je generični domadi proces a to je ime za servise koji polaze od dinamičke-link biblioteka (DLL) Ovaj fajl je lociran u SystemRootSystem32 folderu Prilikom starta on proverava delove servisa registrija da bi napravio listu servisa koji se moraju load -ovati Mnogostruki slučajevi svchostexe mogu raditi istovremeno Svaka grupa svchostexe može sadržati čitavu grupu servisa Zbog ovoga odvojeni servisi mogu počinjati u zavisnosti kako je svchostexe startovan Ovakva grupa servisa omoguduje bolju kontrolu i lakše otklanjanje grešaka 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 TASKLISTSVC onda pretisnemo ENTER Napomena kao i mnogi ostali sistemski procesi i ovaj je predmet imitacije raznih malicioznih programa Npr ako se ne nalazi u CWINDOWSsystem32 folderu onda se radi o nekom malicioznom programu Svchostexe grupe servisa se sadrze u sledecem kljucu HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsNTCurrentVersionSvchost Svaka vrednost pod ovim kljucem predstavlja razlicitu Svchost grupu i predstavlja razlicitu linijuvrednost 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_MACHINESystemCurrentControlSetServicesService Primer grupa servisa koje svchostexe opsluzuje svchostexe 772 DcomLaunch TermService svchostexe 820 RpcSs svchostexe 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 svchostexe 972 Dnscache svchostexe 1084 LmHosts RemoteRegistry SSDPSRV WebClient svchostexe 672 scan Brojevi oznacavaju PID ili Process ID Jedan svchostexe 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 grupeOvo 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 servisimaPrvima 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 servisimaOni imaju ona prava koja ima i nalog pod kojim su pokrenutiAnalogno 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 fajlovaOn 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 67 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 CProgram FilesMessengermsmsgsexe ndash Msmsgsexe 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 takođe instaliran pored ovog procesa za lakši pristup osobinama kao što su internet čat deljenje fajlova i audiovideo konferisanje Ovaj process nije neophodan Diseblovanje ili omogudavanje je stvar samog korisnika Napomena ovaj process je smešten u CProgram FilesMessenger folderu u suprotnom radi se o malicioznom programu CWINDOWSsystem32ctfmonexe - Ctfmonexe je process Majkrosoftovog službenog sajta koji prati sve windows-ove aktivnosti i omogudava stavljanje teksta sa servisnom podrškom za raspoznavanje govora raspoznavanje ručnog pisanja tastature prevoda i druge alternativne korisničke 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 apletuUbijanjem procesa ne nestaje language bar ali ni ne funkcionise vise CWINDOWSExplorerexe - Microsoft Windows Explorer ima dvojaku funkciju tjmoze da se startuje u dva moda On je Windows-ov menadžer programa Upravlja Windows-ovom grafičkom školjkom uključujudi taskbar desktop i fajl menadžer Ako se ovaj proces isključi Windows-ov grafički 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 ExploreraNajcesci simptomi su prazan ekran bez radne povrsine inace moze i tada da se pokrene explorer preko Task Manager-a -gt File-gt 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 CWINDOWSsystem32servicesexe - Sluzi za pokretanje gasenje i saradnju sa ostalim servisima OS-a CWindowsSystem32rundll32exe - 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 funkcijeRUNDLL32 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 pokretanjeRundll32 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 Rundll32exe je univerzalan program za pokretanje standardnih DLL fajlova Pod standardnim DLL fajlovima podrazumevam sve one koji imaju implementiranu funkciju DllMain() Uz pomoc rundll32exe 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 CProgram FilesCommon FilesMicrosoft SharedVS7DEBUGMDMEXE 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 stage1stage 2 Svaki Stage sluzi za nalazenje jedne konkretne infekcijePrimer (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_USERSoftwareMicrosoftInternet ExplorerSearchURL] (Default)=httpwwwupdatesearchescomsearchphpqq=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_USERSoftwareVendors nameApplications nameVersionSetting 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 podesavanjimakonfiguraciji 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 NTUSERDAT i USRCLASSDAT unutar njihovog Documents and Settings foldera HKLM-HKEY_LOCAL_MACHINE-Hive koji sadrzi informacije o globalnim podesavanjima[Hardwerneka 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 SystemRootSystem32config 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 razlicitHKLM ostaje istiTo je zato sto sadrzi informacije o samom racunaru OS-u hardware-uPriporitet 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 kljucOvo 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 amp SettingsUSERNAMENtuserdat) O4 - HKUSDEFAULTRun [Security] CWindowssystem32explorerexe (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 fajloveWinXP prepoznaje i RegEdit 4 format ali uvodi i verziju 5Prva razlika je u samom zapisu REG fajlova Header kod verzije 4 REGEDIT4 Header kod verzije 5 Windows Registry Editor Version 500 Druga razlika je u formatuZa 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 zapisaWindows od Win2k na ovamo koristi UTF-16 a pre toga je koristio UCS-2Inace 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 ASCIIANSI setom Ukoliko v5 snimimo kao ANSI i pokusamo takav fajl da importujemo u reg bazu - dobicijamo poruku da fajl nije validan REG fajlIsto 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 ASCIIANSI 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) httpwwwmycityrsAV-Arhiva-skole01-helen1html801520

VARIJABLE F1 - winini load=ptsnoopexe Kako ce Windows znati u kom folderu da potrazi taj fajl ptsnoopexe 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-gt Properties-gt Advanced-gtEnvironment Variables Postoji i laksi nacin - iz konzoleSamo otkucamo ime varijable i pritisnes Enter (start-gtrun-gtcmd-gtecho 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 gt Clogtxt echo PATHEXT gtgt Clogtxt notepadexe clogtxt -gt httpwwwmycityrsslikaphpslika=109451_304978409_Noname1JPG 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 WindowsObicno je kod vecine korisnika u CWindows ali isto tako kod nekog moze biti u recimo FWindows ili mozda cak DMoj_OS ukoliko je tako odabrao pri instalacijiDa 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 modularnoNa kernel mozes ubaciti razlicite subsisteme s tim sto XP dolazi samo sa Win32 subsistemom (NT je dolazio i sa OS2 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 treciIz 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 delovaHJT 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 deoServisi 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 razlogaSamo Ring0 moze da izazove BSOD Ring3 moze da izazove samo greske koje ne obaraju kompletan WindowsRing0 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 obrisanNajgora 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 navodnicimaSvaki 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 CDocuments and SettingsAdministrator NihadStart MenuProgramsStartup Adobe Gammalnk - CProgram FilesCommon FilesAdobeCalibrationAdobe Gamma Loaderexe [2005-03-16 191650 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 nalogaSvaki od njih ima svoj Startup folder koji naravno moze biti razlicit za svakog korisnikaUkoliko 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 CDocuments and SettingsAll UsersStart MenuProgramsStartup Cemu sluze CDocuments and Settings (Default User LocalService) U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobitiZnaci sta ce biti u start menu-juTo je osnova za novi accountZnaci 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 privilegijeOvo 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 nalogaSystem 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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 7: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

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 servisimaOni imaju ona prava koja ima i nalog pod kojim su pokrenutiAnalogno 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 fajlovaOn 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 67 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 CProgram FilesMessengermsmsgsexe ndash Msmsgsexe 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 takođe instaliran pored ovog procesa za lakši pristup osobinama kao što su internet čat deljenje fajlova i audiovideo konferisanje Ovaj process nije neophodan Diseblovanje ili omogudavanje je stvar samog korisnika Napomena ovaj process je smešten u CProgram FilesMessenger folderu u suprotnom radi se o malicioznom programu CWINDOWSsystem32ctfmonexe - Ctfmonexe je process Majkrosoftovog službenog sajta koji prati sve windows-ove aktivnosti i omogudava stavljanje teksta sa servisnom podrškom za raspoznavanje govora raspoznavanje ručnog pisanja tastature prevoda i druge alternativne korisničke 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 apletuUbijanjem procesa ne nestaje language bar ali ni ne funkcionise vise CWINDOWSExplorerexe - Microsoft Windows Explorer ima dvojaku funkciju tjmoze da se startuje u dva moda On je Windows-ov menadžer programa Upravlja Windows-ovom grafičkom školjkom uključujudi taskbar desktop i fajl menadžer Ako se ovaj proces isključi Windows-ov grafički 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 ExploreraNajcesci simptomi su prazan ekran bez radne povrsine inace moze i tada da se pokrene explorer preko Task Manager-a -gt File-gt 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 CWINDOWSsystem32servicesexe - Sluzi za pokretanje gasenje i saradnju sa ostalim servisima OS-a CWindowsSystem32rundll32exe - 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 funkcijeRUNDLL32 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 pokretanjeRundll32 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 Rundll32exe je univerzalan program za pokretanje standardnih DLL fajlova Pod standardnim DLL fajlovima podrazumevam sve one koji imaju implementiranu funkciju DllMain() Uz pomoc rundll32exe 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 CProgram FilesCommon FilesMicrosoft SharedVS7DEBUGMDMEXE 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 stage1stage 2 Svaki Stage sluzi za nalazenje jedne konkretne infekcijePrimer (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_USERSoftwareMicrosoftInternet ExplorerSearchURL] (Default)=httpwwwupdatesearchescomsearchphpqq=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_USERSoftwareVendors nameApplications nameVersionSetting 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 podesavanjimakonfiguraciji 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 NTUSERDAT i USRCLASSDAT unutar njihovog Documents and Settings foldera HKLM-HKEY_LOCAL_MACHINE-Hive koji sadrzi informacije o globalnim podesavanjima[Hardwerneka 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 SystemRootSystem32config 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 razlicitHKLM ostaje istiTo je zato sto sadrzi informacije o samom racunaru OS-u hardware-uPriporitet 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 kljucOvo 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 amp SettingsUSERNAMENtuserdat) O4 - HKUSDEFAULTRun [Security] CWindowssystem32explorerexe (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 fajloveWinXP prepoznaje i RegEdit 4 format ali uvodi i verziju 5Prva razlika je u samom zapisu REG fajlova Header kod verzije 4 REGEDIT4 Header kod verzije 5 Windows Registry Editor Version 500 Druga razlika je u formatuZa 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 zapisaWindows od Win2k na ovamo koristi UTF-16 a pre toga je koristio UCS-2Inace 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 ASCIIANSI setom Ukoliko v5 snimimo kao ANSI i pokusamo takav fajl da importujemo u reg bazu - dobicijamo poruku da fajl nije validan REG fajlIsto 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 ASCIIANSI 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) httpwwwmycityrsAV-Arhiva-skole01-helen1html801520

VARIJABLE F1 - winini load=ptsnoopexe Kako ce Windows znati u kom folderu da potrazi taj fajl ptsnoopexe 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-gt Properties-gt Advanced-gtEnvironment Variables Postoji i laksi nacin - iz konzoleSamo otkucamo ime varijable i pritisnes Enter (start-gtrun-gtcmd-gtecho 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 gt Clogtxt echo PATHEXT gtgt Clogtxt notepadexe clogtxt -gt httpwwwmycityrsslikaphpslika=109451_304978409_Noname1JPG 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 WindowsObicno je kod vecine korisnika u CWindows ali isto tako kod nekog moze biti u recimo FWindows ili mozda cak DMoj_OS ukoliko je tako odabrao pri instalacijiDa 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 modularnoNa kernel mozes ubaciti razlicite subsisteme s tim sto XP dolazi samo sa Win32 subsistemom (NT je dolazio i sa OS2 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 treciIz 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 delovaHJT 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 deoServisi 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 razlogaSamo Ring0 moze da izazove BSOD Ring3 moze da izazove samo greske koje ne obaraju kompletan WindowsRing0 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 obrisanNajgora 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 navodnicimaSvaki 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 CDocuments and SettingsAdministrator NihadStart MenuProgramsStartup Adobe Gammalnk - CProgram FilesCommon FilesAdobeCalibrationAdobe Gamma Loaderexe [2005-03-16 191650 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 nalogaSvaki od njih ima svoj Startup folder koji naravno moze biti razlicit za svakog korisnikaUkoliko 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 CDocuments and SettingsAll UsersStart MenuProgramsStartup Cemu sluze CDocuments and Settings (Default User LocalService) U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobitiZnaci sta ce biti u start menu-juTo je osnova za novi accountZnaci 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 privilegijeOvo 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 nalogaSystem 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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 8: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

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 ExploreraNajcesci simptomi su prazan ekran bez radne povrsine inace moze i tada da se pokrene explorer preko Task Manager-a -gt File-gt 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 CWINDOWSsystem32servicesexe - Sluzi za pokretanje gasenje i saradnju sa ostalim servisima OS-a CWindowsSystem32rundll32exe - 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 funkcijeRUNDLL32 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 pokretanjeRundll32 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 Rundll32exe je univerzalan program za pokretanje standardnih DLL fajlova Pod standardnim DLL fajlovima podrazumevam sve one koji imaju implementiranu funkciju DllMain() Uz pomoc rundll32exe 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 CProgram FilesCommon FilesMicrosoft SharedVS7DEBUGMDMEXE 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 stage1stage 2 Svaki Stage sluzi za nalazenje jedne konkretne infekcijePrimer (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_USERSoftwareMicrosoftInternet ExplorerSearchURL] (Default)=httpwwwupdatesearchescomsearchphpqq=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_USERSoftwareVendors nameApplications nameVersionSetting 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 podesavanjimakonfiguraciji 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 NTUSERDAT i USRCLASSDAT unutar njihovog Documents and Settings foldera HKLM-HKEY_LOCAL_MACHINE-Hive koji sadrzi informacije o globalnim podesavanjima[Hardwerneka 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 SystemRootSystem32config 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 razlicitHKLM ostaje istiTo je zato sto sadrzi informacije o samom racunaru OS-u hardware-uPriporitet 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 kljucOvo 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 amp SettingsUSERNAMENtuserdat) O4 - HKUSDEFAULTRun [Security] CWindowssystem32explorerexe (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 fajloveWinXP prepoznaje i RegEdit 4 format ali uvodi i verziju 5Prva razlika je u samom zapisu REG fajlova Header kod verzije 4 REGEDIT4 Header kod verzije 5 Windows Registry Editor Version 500 Druga razlika je u formatuZa 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 zapisaWindows od Win2k na ovamo koristi UTF-16 a pre toga je koristio UCS-2Inace 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 ASCIIANSI setom Ukoliko v5 snimimo kao ANSI i pokusamo takav fajl da importujemo u reg bazu - dobicijamo poruku da fajl nije validan REG fajlIsto 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 ASCIIANSI 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) httpwwwmycityrsAV-Arhiva-skole01-helen1html801520

VARIJABLE F1 - winini load=ptsnoopexe Kako ce Windows znati u kom folderu da potrazi taj fajl ptsnoopexe 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-gt Properties-gt Advanced-gtEnvironment Variables Postoji i laksi nacin - iz konzoleSamo otkucamo ime varijable i pritisnes Enter (start-gtrun-gtcmd-gtecho 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 gt Clogtxt echo PATHEXT gtgt Clogtxt notepadexe clogtxt -gt httpwwwmycityrsslikaphpslika=109451_304978409_Noname1JPG 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 WindowsObicno je kod vecine korisnika u CWindows ali isto tako kod nekog moze biti u recimo FWindows ili mozda cak DMoj_OS ukoliko je tako odabrao pri instalacijiDa 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 modularnoNa kernel mozes ubaciti razlicite subsisteme s tim sto XP dolazi samo sa Win32 subsistemom (NT je dolazio i sa OS2 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 treciIz 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 delovaHJT 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 deoServisi 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 razlogaSamo Ring0 moze da izazove BSOD Ring3 moze da izazove samo greske koje ne obaraju kompletan WindowsRing0 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 obrisanNajgora 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 navodnicimaSvaki 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 CDocuments and SettingsAdministrator NihadStart MenuProgramsStartup Adobe Gammalnk - CProgram FilesCommon FilesAdobeCalibrationAdobe Gamma Loaderexe [2005-03-16 191650 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 nalogaSvaki od njih ima svoj Startup folder koji naravno moze biti razlicit za svakog korisnikaUkoliko 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 CDocuments and SettingsAll UsersStart MenuProgramsStartup Cemu sluze CDocuments and Settings (Default User LocalService) U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobitiZnaci sta ce biti u start menu-juTo je osnova za novi accountZnaci 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 privilegijeOvo 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 nalogaSystem 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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 9: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

Reduced mod U reduced modu ne brise nista automatski vec samo pravi log Sta on radi kad vrti to stage1stage 2 Svaki Stage sluzi za nalazenje jedne konkretne infekcijePrimer (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_USERSoftwareMicrosoftInternet ExplorerSearchURL] (Default)=httpwwwupdatesearchescomsearchphpqq=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_USERSoftwareVendors nameApplications nameVersionSetting 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 podesavanjimakonfiguraciji 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 NTUSERDAT i USRCLASSDAT unutar njihovog Documents and Settings foldera HKLM-HKEY_LOCAL_MACHINE-Hive koji sadrzi informacije o globalnim podesavanjima[Hardwerneka 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 SystemRootSystem32config 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 razlicitHKLM ostaje istiTo je zato sto sadrzi informacije o samom racunaru OS-u hardware-uPriporitet 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 kljucOvo 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 amp SettingsUSERNAMENtuserdat) O4 - HKUSDEFAULTRun [Security] CWindowssystem32explorerexe (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 fajloveWinXP prepoznaje i RegEdit 4 format ali uvodi i verziju 5Prva razlika je u samom zapisu REG fajlova Header kod verzije 4 REGEDIT4 Header kod verzije 5 Windows Registry Editor Version 500 Druga razlika je u formatuZa 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 zapisaWindows od Win2k na ovamo koristi UTF-16 a pre toga je koristio UCS-2Inace 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 ASCIIANSI setom Ukoliko v5 snimimo kao ANSI i pokusamo takav fajl da importujemo u reg bazu - dobicijamo poruku da fajl nije validan REG fajlIsto 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 ASCIIANSI 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) httpwwwmycityrsAV-Arhiva-skole01-helen1html801520

VARIJABLE F1 - winini load=ptsnoopexe Kako ce Windows znati u kom folderu da potrazi taj fajl ptsnoopexe 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-gt Properties-gt Advanced-gtEnvironment Variables Postoji i laksi nacin - iz konzoleSamo otkucamo ime varijable i pritisnes Enter (start-gtrun-gtcmd-gtecho 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 gt Clogtxt echo PATHEXT gtgt Clogtxt notepadexe clogtxt -gt httpwwwmycityrsslikaphpslika=109451_304978409_Noname1JPG 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 WindowsObicno je kod vecine korisnika u CWindows ali isto tako kod nekog moze biti u recimo FWindows ili mozda cak DMoj_OS ukoliko je tako odabrao pri instalacijiDa 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 modularnoNa kernel mozes ubaciti razlicite subsisteme s tim sto XP dolazi samo sa Win32 subsistemom (NT je dolazio i sa OS2 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 treciIz 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 delovaHJT 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 deoServisi 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 razlogaSamo Ring0 moze da izazove BSOD Ring3 moze da izazove samo greske koje ne obaraju kompletan WindowsRing0 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 obrisanNajgora 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 navodnicimaSvaki 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 CDocuments and SettingsAdministrator NihadStart MenuProgramsStartup Adobe Gammalnk - CProgram FilesCommon FilesAdobeCalibrationAdobe Gamma Loaderexe [2005-03-16 191650 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 nalogaSvaki od njih ima svoj Startup folder koji naravno moze biti razlicit za svakog korisnikaUkoliko 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 CDocuments and SettingsAll UsersStart MenuProgramsStartup Cemu sluze CDocuments and Settings (Default User LocalService) U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobitiZnaci sta ce biti u start menu-juTo je osnova za novi accountZnaci 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 privilegijeOvo 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 nalogaSystem 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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 10: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

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 amp SettingsUSERNAMENtuserdat) O4 - HKUSDEFAULTRun [Security] CWindowssystem32explorerexe (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 fajloveWinXP prepoznaje i RegEdit 4 format ali uvodi i verziju 5Prva razlika je u samom zapisu REG fajlova Header kod verzije 4 REGEDIT4 Header kod verzije 5 Windows Registry Editor Version 500 Druga razlika je u formatuZa 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 zapisaWindows od Win2k na ovamo koristi UTF-16 a pre toga je koristio UCS-2Inace 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 ASCIIANSI setom Ukoliko v5 snimimo kao ANSI i pokusamo takav fajl da importujemo u reg bazu - dobicijamo poruku da fajl nije validan REG fajlIsto 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 ASCIIANSI 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) httpwwwmycityrsAV-Arhiva-skole01-helen1html801520

VARIJABLE F1 - winini load=ptsnoopexe Kako ce Windows znati u kom folderu da potrazi taj fajl ptsnoopexe 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-gt Properties-gt Advanced-gtEnvironment Variables Postoji i laksi nacin - iz konzoleSamo otkucamo ime varijable i pritisnes Enter (start-gtrun-gtcmd-gtecho 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 gt Clogtxt echo PATHEXT gtgt Clogtxt notepadexe clogtxt -gt httpwwwmycityrsslikaphpslika=109451_304978409_Noname1JPG 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 WindowsObicno je kod vecine korisnika u CWindows ali isto tako kod nekog moze biti u recimo FWindows ili mozda cak DMoj_OS ukoliko je tako odabrao pri instalacijiDa 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 modularnoNa kernel mozes ubaciti razlicite subsisteme s tim sto XP dolazi samo sa Win32 subsistemom (NT je dolazio i sa OS2 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 treciIz 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 delovaHJT 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 deoServisi 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 razlogaSamo Ring0 moze da izazove BSOD Ring3 moze da izazove samo greske koje ne obaraju kompletan WindowsRing0 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 obrisanNajgora 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 navodnicimaSvaki 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 CDocuments and SettingsAdministrator NihadStart MenuProgramsStartup Adobe Gammalnk - CProgram FilesCommon FilesAdobeCalibrationAdobe Gamma Loaderexe [2005-03-16 191650 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 nalogaSvaki od njih ima svoj Startup folder koji naravno moze biti razlicit za svakog korisnikaUkoliko 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 CDocuments and SettingsAll UsersStart MenuProgramsStartup Cemu sluze CDocuments and Settings (Default User LocalService) U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobitiZnaci sta ce biti u start menu-juTo je osnova za novi accountZnaci 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 privilegijeOvo 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 nalogaSystem 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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 11: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

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-gt Properties-gt Advanced-gtEnvironment Variables Postoji i laksi nacin - iz konzoleSamo otkucamo ime varijable i pritisnes Enter (start-gtrun-gtcmd-gtecho 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 gt Clogtxt echo PATHEXT gtgt Clogtxt notepadexe clogtxt -gt httpwwwmycityrsslikaphpslika=109451_304978409_Noname1JPG 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 WindowsObicno je kod vecine korisnika u CWindows ali isto tako kod nekog moze biti u recimo FWindows ili mozda cak DMoj_OS ukoliko je tako odabrao pri instalacijiDa 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 modularnoNa kernel mozes ubaciti razlicite subsisteme s tim sto XP dolazi samo sa Win32 subsistemom (NT je dolazio i sa OS2 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 treciIz 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 delovaHJT 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 deoServisi 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 razlogaSamo Ring0 moze da izazove BSOD Ring3 moze da izazove samo greske koje ne obaraju kompletan WindowsRing0 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 obrisanNajgora 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 navodnicimaSvaki 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 CDocuments and SettingsAdministrator NihadStart MenuProgramsStartup Adobe Gammalnk - CProgram FilesCommon FilesAdobeCalibrationAdobe Gamma Loaderexe [2005-03-16 191650 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 nalogaSvaki od njih ima svoj Startup folder koji naravno moze biti razlicit za svakog korisnikaUkoliko 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 CDocuments and SettingsAll UsersStart MenuProgramsStartup Cemu sluze CDocuments and Settings (Default User LocalService) U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobitiZnaci sta ce biti u start menu-juTo je osnova za novi accountZnaci 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 privilegijeOvo 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 nalogaSystem 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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 12: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

Sada reg baza se sastoji iz delova Kernel ucitava jedan deo pa onda Win32 subsistem drugi pa shell treciIz 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 delovaHJT 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 deoServisi 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 razlogaSamo Ring0 moze da izazove BSOD Ring3 moze da izazove samo greske koje ne obaraju kompletan WindowsRing0 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 obrisanNajgora 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 navodnicimaSvaki 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 CDocuments and SettingsAdministrator NihadStart MenuProgramsStartup Adobe Gammalnk - CProgram FilesCommon FilesAdobeCalibrationAdobe Gamma Loaderexe [2005-03-16 191650 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 nalogaSvaki od njih ima svoj Startup folder koji naravno moze biti razlicit za svakog korisnikaUkoliko 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 CDocuments and SettingsAll UsersStart MenuProgramsStartup Cemu sluze CDocuments and Settings (Default User LocalService) U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobitiZnaci sta ce biti u start menu-juTo je osnova za novi accountZnaci 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 privilegijeOvo 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 nalogaSystem 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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 13: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

REG_SZ iliti stringovi Stringovi se upisuju pod navodnicimaSvaki 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 CDocuments and SettingsAdministrator NihadStart MenuProgramsStartup Adobe Gammalnk - CProgram FilesCommon FilesAdobeCalibrationAdobe Gamma Loaderexe [2005-03-16 191650 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 nalogaSvaki od njih ima svoj Startup folder koji naravno moze biti razlicit za svakog korisnikaUkoliko 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 CDocuments and SettingsAll UsersStart MenuProgramsStartup Cemu sluze CDocuments and Settings (Default User LocalService) U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobitiZnaci sta ce biti u start menu-juTo je osnova za novi accountZnaci 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 privilegijeOvo 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 nalogaSystem 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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 14: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

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 zadatakZnaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsiServis 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 funkcionisaoPrimera 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 dozvoljenIz 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 servisIz 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 korisnikuZnam 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 wwwmycityrs broswer dodaje http ili ako stavimo mycityrs onda ce dodati httpwww 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 wwwmycityrs ce postati httpwwwmycityrs mycityrs ce postati httpmycityrs ne httpwwwmycityrs 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 ftpmycityrs 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

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 15: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

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 httpwwwmycityrsAV-Arhiva-skole08-diarnohtml Oznakaime 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 ftpmccom a u Prefix kljucu stoji ftp = ftponda ce IE da adresu promeni u ftpftpmccomZnaci 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 protokolaMi 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 skidaUradi 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 serveraRecimo record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenuZbog toga ce MyCity uspesno da se otvori i kada ukucas httpwwwmycityrs i httpmycityrsOvo 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 URLuRecimo za adresu ftpmycityrs bi IE automatski pokusao da postavi protokol ftpTo znaci da bi on pokusao da otvori ftpftpmycityrs CLSID PRIMER O2 - BHO EF99BD32-C1FB-11D2-892F-0090271D4F88 - 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 - (no file) EF99BD32-C1FB-11D2-892F-0090271D4F88 -gt yahoo 7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31 -gt 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 ) - CProgramFilesCommon FilesAdobeAcrobatActiveXAcroIEHelperdll ( 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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 16: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

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- wwwapnicnet - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje Aljasku Australiju i druge regione koji pripadaju Pacifickoj regiji] ARIN - wwwarinnet - Obuhvata SAD Kanadu i neka ostrva u Atlantskom okeanu RIPE- wwwripenet - Pokriva Evropu LACNIC-wwwlacnicnet - Latinsku Ameriku AFRINIC- wwwafrinicnet - Obuhvata Afriku O1 - Hosts 3510794918 autosearchmsncom Postoji par nacina zapisa IP adresa Gore je koriscen zapis u obliku DWORDaSkini 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) 20966122166 Path (deobfuscated) Results URL (no LogIn) http20966122166 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 kompjuterIsto 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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 17: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

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 127001 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 ruteruZamisli 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 krivNisi se zapitao kako je uopste ruter tako podesen tj ko ga je i kako podesio takoKako 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 menijU svakom slucaju mora da postoji opcija za izbor manuelnogautomatskog podesavanja adresa DNS serveraMalware to najverovatnije postavlja na manuelnoNase 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 karticuKoristi 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 kreiraliMogucnosti 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 gt cmoj_logtxt notepad cmoj_logtxt Zasto sam za ime fajla uzeo moj_logtxt a ne moj logtxt 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 gt cmoj logtxt

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 18: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

notepad cmoj logtxt Da li su ovo legitimne linije O4 - HKUSS-1-5-19Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User LOCAL SERVICE) O4 - HKUSS-1-5-20Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User NETWORK SERVICE) O4 - HKUSS-1-5-18Run [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User SYSTEM) O4 - HKUSDEFAULTRun [CTFMONEXE] CWINDOWSsystem32CTFMONEXE (User Default user) Legitimne su HJT 2x prikazuje O4 linije sa svih naloga na kompuUdji 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 fajlaOnda imas DNS cache na racunaruOnda 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 podatakZnaci neko je registrovao svoj web sajt i njegov record postoji na nekom DNS serveru Tu je isprogramirano i vreme trajanja recordaTo znaci ukoliko istekne to vreme onda je komp (svi u lancu) duzan da proveri DNS record na serveru koji je pre njega u lancuJedan 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 PCPROGRA~1KASPER~1KASPER~10adialhkdll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez () Oni upitnici u stvari predstavljaju jos jedan fajl koji se učitava a HJT nije u stanju da prikaže 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 wwwasciitablecom lt- pogledaj tabelu Donjih 127 kodova su standardni ASCII (ili ANSI) dok deo iznad toga nije standardizovan a dat je jedan od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 19: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

UNICODE ima s druge strane 65536 znakova u tabeli Prvih 127 (255) su isti kao u ASCII tabeli dok ostatak sadrzi lokalne znakoveslova raznih jezikaTo je ono sto HJT ne prepoznaje Servisi su funkcije tj programi koji mogu biti konfigurisani da se podižu automatski sa sistemom (cak i pre nego sto se korisnik loguje na sistem) a mogu se pokretati i manuelno po potrebi Možda je bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenimaprofilimaDrajver 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 najcešce komunicira sa uredajima preko magistrale Kada odredeni program zahteva izvršenje neke komande od drajvera drajver zahteva izvršenje te komande od odgovarajuceg uredaja Kada uredaj da odgovor taj odgovor se prosleduje programu koji je zahtevao izvršenje 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 Ring0Kernel 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 reagujeServis 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 nalogomPrvo administrator moze da instalira neki servis da bude sistemski ali onda nista ne moze da mu zabraniAdmin 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 nalogomPod 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 Ring3Windows 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 Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 20: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

prostor namenjen za Ring0NT 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 ringovaRecimo trenutna instrukcija je bila od nekog programa iz Ring3 Sledeca je neka instrukcija iz Ring) od recimo kernelaPre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara pa ih isprazni pa izvrsi instrukciju koju mu je zadao kernelAko 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 instrukcijuNa ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0 O23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe (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 imefajl servisa koji treba da bude hostovan Potrazi na netu koja je sintaksa za koriscenje svchostexe i videces da se ime hostovanog servisa (tj njegov fajl) navodi iza poziva svchostu kao argumentHJT 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 infoPrimer kako je eventualno ta linija mogla da izgleda da HJT nema bug koji ima 23 - Service SystemRootsystem32qwavedll-1 (QWAVE) - Unknown owner - windirsystem32svchostexe qwavedll Primer je imaginaran tj mozda u stvarnosti drugacije izgleda ali moze da posluzi za ovo objasnjenje Vidis HJT ce na disku da potrazi fajl svchostexe qwavedll iz razloga sto ima bug u parsovanju takvih unosa Takav fajl naravno da ne postoji jer je qwavedll 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 -gt httpwwwmycityrsAV-Arhiva-skole12-Piksi_2html Policies nemaju veze sa ovim bar ne u tom smislu da se koristi restrikcija kako bi se isključio Active Desktop O24 - Desktop Component 1 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm Primetiti ono crveno

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 21: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

[HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Source= fileCWINDOWSprivacy_dangerindexhtm FriendlyName= Privacy Protection U ovom slučaju treba obrisati kompletan ključ 1 [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents1] Ukoliko bi bilo nešto ovakvo O24 - Desktop Component 0 Privacy Protection - fileCWINDOWSprivacy_dangerindexhtm to bi značilo da su default vrednosti modifikovane (za My current home page) pa to onda nije dovoljno obrisati ved bi trebalo i povratiti defaulte [-HKEY_CURRENT_USERsoftwaremicrosoftinternet explorerdesktopcomponents0] [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 Position=hex2c00000096000000000000006a040000c003000000 0000000100000001000000010000000000000000000000 CurrentState=dword40000004 OriginalStateInfo=hex1800000096000000000000006a040000c003 000004000040 RestoredStateInfo=hex1800000096000000000000006a040000c003 000001000000 Kako uključitiisključiti Postoji mali problem u vezi toga - Windows na vrlo nezgodan način osvežava ova setovanja Praktično potrebno je ili restartovati PC ili otvoritizatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK) [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents] DeskHtmlVersion=dword00000110 DeskHtmlMinorVersion=dword00000005 Settings=dword00000001

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 22: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

GeneralFlags=dword00000004 4 - disabled 0 - enabled Ali Ovo gore je pokazivač stanja - nije mogude pomodu ovog setovanja naterati Win da nešto uradi [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopComponents0] Source=AboutHome SubscribedURL=AboutHome FriendlyName=My Current Home Page Flags=dword00000002 2h - disabled 2002h - enabled Ovo gore setovanje se ne osvežava 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 Explorerexe na upload da bi mogao da ga proveris skeniranjem ili u sandboxu taj Explorerexe nece sadrzati maliciozni kod posto je fajl na disku cist IAT _drajver ili dll koji je hook_ [sta je hookovao drajverdll funkcija tog drajveradlla koja je hookovana] _na koju adresu u hook drajverudll-u je preusmerio_ Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na koju je neka funkcija preusmerena text CWINDOWSsystem32cmdexe[164] ntdlldllNtCreateThread 7C90D7D2 5 Bytes JMP 009B083C 5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija)

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 23: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

text CProgram FilesInternet Exploreriexploreexe[2844] USER32dllDialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301 1Ovo znaci da je iexploreexe 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 iexploreexe ucitan Imas jos i podatak sta je tacno patchovano USER32dllDialogBoxParamW - ovo znaci da je patchovan poziv user32dll-u tacnije funkciji DialogBoxParamW tog dll-a 2Ovo znaci da je iexploreexe importovao funkciju DialogBoxParamA iz user32dll ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764 Funkcija je patchovana u memoriji fajl user32dll 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 AVFW 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 formiprozoru 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 formiprozoradijaloga 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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 24: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

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 OS2 subsisteme POSIX subsistem je omogucavao API za pokretanje nix aplikacija a OS2 susbsistem za pokretanje OS2 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 CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop SystemRootsystem32qwavedll sc delete SystemRootsystem32qwavedll

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 25: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog

Nije mi jasno kako si stigao uopste do ovoga del windirsystem32svchostexe qwavedll 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 programexe 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 svchostexe se koristi da bi se pokrenuo qwavedll To znaci da nemas tu nista posla sa svchostom vec sa qwavedll-om Njega treba obrisati Nemoj zaboraviti da je qwavedll legitiman i da je ovde uzet samo kao primer za vezbanje Ovako treba sc stop LiveUpdate sc delete LiveUpdate del CPROGRA~1SymantecLIVEUP~1LUCOMS~1EXE sc stop LiveUpdate Notice Service sc delete LiveUpdate Notice Service del CProgram FilesCommon FilesSymantec SharedPIFB8E1DD85-8582-4c61-B58F-2F227FCA9A08PIFSvcexe sc stop QWAVE sc delete QWAVE del SystemRootsystem32qwavedll 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

Page 26: ADWARE - Fotkica.comStavise ti adware programi se instaliraju u Windows-ov System32 direktorijum, skriveni od ... da bi mogli utvrditi da li su procesi koji su aktivni u sklopu tog