ADWARE
ADWARE
Pri preuzimanju, u ovom slucaju, samih desktop tema ili p2p programa, pored xxxxx xxxxx 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 (XXXX).
XXXX je End-User License Agreement, odnosno ugovor između proizvođača ili prodavca softvera i krajnjeg korisnika tog softvera. Uovom ugovoru se obično navodi kako se softver sme, a kako se ne sme koristiti i sl. Prihvatanje uslova iznesenih u XXXX ima istu snagu kao i potpisivanje ugovora i pravosnazno je na sudu.
Adware- na xxxxx xxxx nacin 'obmanjuju' korisnika.
Korisniku se daju xxxxx xxxxx informacije u tzv. XXXX pogodbama koja su cesto kucane gusto, malim slovima tako da su necitka i obeshrabruju korisnika xx xxxxxxx celu pogodbu. Cak i u slucaju da korisnik procita celu XXXX pogodbu, program (u ovom slucaju adware) se opisuje, prosecnom korisniku, nerazumljivim tehnickim terminima koji xx xxxx naterati korisnika da jednostavno pritisne 'Accept' bez razmisljanja.
U nekim primerima XXXX-e, xxxx xxxx 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 xxxxx x xxxxxx 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 xxxx 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 xxx proces deinstaliranja nije moguce izvesti iz Add/Remove Programs apleta nego se desktop tema xxxx 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 xx xxxxx 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 xxx 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 xxxx xxxx 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. XXXX 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 xxxx xx sebe da skine pretnju sudskog gonjenja, tako da u 99% slucajeva u XXXX-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 xx xxxxx 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 xx xx xxxx da se vrsi upload svih fajlova sa vaseg kompa, ve c xx xxxx da postoji neko drugo resenje.
Sajt na neki xxxxx xxxx da instalira skener na vas komp.
Za xxxx, jedino IE dozvoljava tako nesto, i to da skener bude u vidu ActiveX komponente (u sustini najobicniji DLL, samo sto koristi IE kao svoj graficki interfejs).ActiveX je koliko dobra, toliko i losa mogucnost IE-a, posto i dobar deo adwarea/spywarea isto koristi ovu mogucnost.Od verzije IE 6.0, ActiveX je po defaultu iskljucen, pa je eventualno potrebno cackati po opcijama da bi se uljucio kako bi ovi online skeneri mogli da rade.
U nekim slucajevima, kada korisnik ima los AV na kompu, ActiveX skener xx xxxxx 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 xxx 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 xxxx u isto vreme i instalirati taj antivirusni program.
- testiranje učinkovitosti antivirusnog rešenja koje imamo na našem računaru, na xxx xxxxx što ćemo uz pomoć online skenera testrati sumljive fajlove i xxxxx xxx 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šću 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 ciniti.Ako recimo bude dolaznih TCP paketa na portu 80, FW sigurno zna da se to u browseru ucitava neka stranica.Ako naidje UDP paket na portu 6453, xxxx xx to vec nestandardna stvar, i tu FW vec treba nekako da reaguje.
Slicno vazi i za odlazne pakete.
Elem, da razbistrimo xxx jednu stvar kada smo vec kod portova.
Jasno je da ne mozemo da otvorimo 3 sajta sa razlicitih servera sve preko porta 80.
Browser xx xxxx da pozove server preko tog porta, pa ce onda da preusmeri (bind) dolazne podatke sa tog servera na neki vislji (>1024) xxxxxxxx port, tako da nakon toga preko porta 80 moze da komunicira sa nekim drugim serverom.
XX xxxx da posmatra i sta je gde bindovano da bi mogao da regulise saobracaj.
Logicno je da je bindovanje primenljivo samo na dolazne konekcije.Server ce takodje sa svoje strane da binduje konekciju prema nasem racunaru na neki vislji port.
Znaci, port 80 xx xxxx 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 xxx xxx 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, XX xxxx 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 xxxx xxxxx outbound konekciju, na osnovu xxxx xxxx poznatih procesa i portova koji oni koriste.
HIJACK THIS
Logfile of Trend Micro HijackThis v2.0.2 Scan saved at 4:40:13 PM, on 3/12/2009
Platform: Windows XP SP2 (WinNT 5.01.2600) MSIE: Internet Explorer v6.00 SP2 (6.00.2900.2180) Boot mode: Normal
Logfile of Trend Micro HijackThis v2.0.2 ova linija da je to log file od programa na kojem je pokrenuto skeniranje i njegovu verziju.Obicno kod programa xx xxxxx verzija zbog toga sto su neki zastareli,a neki su opet najnovija verzija koja moguce da nije dovoljno testirana i xxxxx xxx nesigurna.
Scan saved at 4:40:13 PM, on 3/12/2009 govori nam kad je obavljeno skeniranje sistema i bitno je zbog pregleda loga,jer zlocudni programi prave modifikacije u sistemu, registry tako da xxx xx bitno da taj log bude napravljen u onom trenutku kada se krece u pronalazenje malware-a.
Platform: Windows XP SP2 (WinNT 5.01.2600) opisuje vrstu operativnog sistema,koristi nam zbog nacina na koji ce se pristupiti otklanjanju problema, da bi mogli utvrditi da xx xx procesi koji su aktivni u sklopu tog sistema.
MSIE: Internet Explorer v6.00 SP2 (6.00.2900.2180) govori nam verziju web borswera,a to je bitno zbog poznatih propusta broswera i zbog malware-a koji koriste te propuste.
Boot mode: Normal govori nam u kom rezimu radi sistem,bitno je zbog toga jer nacin xxxx xxxx da bude normalan i da svi resursi rade normalno,da nema nekih restrikcija zbog kojih bi bilo teze pronaci infekciju ili gresku u sistemu.
Za HijackThis je potreban poseban folder (bitno je da nije startovan direktno iz WinRAR-a ili WinZIP-a) da bi se napravio backup. Ukoliko ne bude raspakovan u poseban folder, backup ce biti napravljen u TEMP folderu, odakle vise nece moci da ga nadje da bi se vratio backup ukoliko ciscenje krene naopako.
HijackThis ima svoj nacin zapisa kljuceva, koji xx xxxx razlikuje od standardnog zapisa u REG fajlovima (ComboFix koristi taj standardni zapis).
HJT vrsi filtriranje xxxx, xx. 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. Xxxx xx SP3 za XP izasao nakon HJT 1.99.1, HJT nema neke nove MS-ove fajlove na toj svojoj listi, pa ih zato prikazuje u logovima.
O9 - Extra button: (no name) - {e2e2dd38-d088-4134-82b7-f2ba38496583} - %windir%\Network Diagnostic\xpnetdiag.exe (file missing)
O9 - Extra 'Tools' menuitem: @xpsp3res.dll,-20001 - {e2e2dd38-d088-4134-82b7-f2ba38496583} -
%windir%\Network Diagnostic\xpnetdiag.exe (file missing)
To su standardne stvari u IE-u (izmedju ostalog su tu poruke koje ispisuje kada ne moze da nadje neki sajt itd.).(file missing) stoji zbog loseg parsera u HJT-u koji ne ume lepo xx xxxxxxx vrednosti ovih kljuceva iz reg. xxxx.
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 xxxx xxxxx.
Xxx (file missing) je bug u HJT-u ukoliko se u reg. kljucu nalazi neki fajl koji se poziva sa parametrima. Konkretno, ovaj DLL se poziva na sledeci nacin - %windir%\Network Diagnostic\xpnetdiag.exe -1033 HJT se zbuni zbog one brojke, pa ne zna gde se zavrsava ime fajla, i onda nema pojma sta xxxxx xx xxxxx na disku, pa prikaze (file missing).
C:\WINDOWS\System32\smss.exe – Smss.exe je sastavni deo Majkrosoftovog operativnog sistema. On je menadžer sesije podsistema, koji je odgovoran za startovanje korisničke sesije.Ovaj proces je uveden u sistemsku nit i odgovoran je za različite aktivnosti, uključivši “lansiranje” Winlogon-a i Win32- a(Csrss.exe) procesa i podešavanje sistemskih promena. Pošto su lansirani ovi procesi, čekaju ili Winlogon-a ili Csrss.exe da se završe. Ako se ovo dešava normalno, sistem se gasi, ako se dogada neočekivano, smss.exe izaziva kočenje sistema. Ovaj process je potreban za stabilno i normalno funkcionisanje windows-a i ne treba se gasititi.
Napomena : smss.exe fajl je lociran u C:\Windows\System32 folderu. Udrugim slučajevima smss.exe je virus, spyware, trojanac ili crv!
C:\WINDOWS\system32\winlogon.exe - 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 C:\WINDOWS\system32\ folderu, onda se radi o nekom malicioznom programu.
C:\WINDOWS\system32\services.exe – Deo Majkrosoftovog operativnog sistema je services.exe koji 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 C:\WINDOWS\system32\services.exe folderu, onda se radi o nekom malicioznom programu.
C:\WINDOWS\system32\lsass.exe – Majkrosoftov siguronosni mehanizam "lsass.exe" je lokalni sigurnosni server za autentičnost. On verifikuje validnost korisnikovih xxxxxx xx njegovom PC/Server -u.
Generiše proces odgovoran za autentičnost korisnika za Winlogon servis. Proces se odvija koristeci autentičnost xxxxxx xxx što je po standardu Msgina.dll. Ako je potvrđena autentičnost, Lsass generiše dokaz korisničkog xxxxxxxx, xxxx xx korišćen da pokrene incijalni štit. Ukratko, on posebno ima posla sa lokalnom bezbednošcu i “login policies-om”.
Napomena : Ovaj lsass.exe fajl je smešten u C:\Windows\System32 folderu. Uostalim slučajevima lsass.exe je virus, spyware, trojanac ili crv.
C:\WINDOWS\system32\svchost.exe - Svchost.exe je generični domaći proces, a to je ime za servise koji polaze od dinamičke-link biblioteka (DLL). Ovaj fajl je lociran u %SystemRoot%\System32 folderu. Prilikom starta on proverava delove servisa registrija da bi napravio listu servisa koji se moraju load- ovati. Mnogostruki slučajevi svchost.exe mogu raditi istovremeno. Svaka grupa svchost.exe može sadržati čitavu grupu servisa. Zbog ovoga odvojeni servisi mogu počinjati u zavisnosti xxxx xx svchost.exe startovan. Ovakva grupa servisa omogućuje bolju kontrolu i lakše otklanjanje grešaka.
Da vidimo listu servisa koje pokreće svchost moramo uraditi sledeće:
1. Kliknemo START u taskbaru, a onda kliknemo RUN.
2. U otvorenom prozoru, otkucamo CMD, i pretisnemo ENTER.
3. Otkucamo TASKLIST/SVC, onda pretisnemo ENTER.
Napomena : kao i mnogi ostali sistemski procesi i ovaj je predmet imitacije raznih malicioznih programa. Npr. ako se ne nalazi u C:\WINDOWS\system32\ folderu, onda se radi o nekom malicioznom programu.
Svchost.exe xxxxx xxxxxxx se sadrze u sledecem kljucu: HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost
Svaka vrednost pod ovim kljucem predstavlja razlicitu Svchost grupu i predstavlja razlicitu liniju/vrednost kada pregledas aktivne procese. Svaka svchost grupa moze da sadrzi jedan ili vise imena servisa koji su otpakovani iz sledeceg kljuca, xxxx kljuc sastoji ServiceDLL vrednost: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Service
Primer grupa servisa koje svchost.exe opsluzuje.
svchost.exe 772 DcomLaunch, TermService svchost.exe 820 RpcSs
svchost.exe 888 AudioSrv, BITS, Browser, CryptSvc, Dhcp, dmserver, ERSvc, EventSystem, FastUserSwitchingCompatibility, helpsvc, lanmanserver, lanmanworkstation, Netman, Nla, RasMan, Schedule, seclogon, SENS, SharedAccess, ShellHWDetection, TapiSrv, Themes, TrkWks, W32Time, winmgmt, wscsvc, wuauserv, WZCSVC
svchost.exe 972 Dnscache
svchost.exe 1084 LmHosts, RemoteRegistry, SSDPSRV, WebClient svchost.exe 672 scan
Brojevi oznacavaju PID ili Process ID. Jedan svchost.exe opsluzuje vise servisa.
Problem ume da bude kada jedan od servisa iz jedne xxxxx (hostovan na jednoj instanci svchosta) pobrljavi onda ume da se desi da pobrljave svi servisi iz xx xxxxx.Ovo je razlog sto recimo nekome xxxx xx xxxx zvuk zato sto mu je racunar zarazen a antivirus mu je blokirao servis malwarea.
Drajverima obicno nazivamo one samo one servise xxxx xxxx u sklopu kernela, dok one drajvere xxxx xxxx izvan kernela nazivamo servisima.Prvima je host xxx kernel, i oni su ucitani u njegovom adress spaceu. Ovim drugima je host SVCHOST.
Drajveri koji se izvrsavaju u sklopu kernela nazivaju se xxx i modulima. Oni obicno nose SYS ekstenziju (ali nije obavezno, xxxxxx i sa drugim ekstenzijama). Za kernel-mode drajvere ne postoje ogranicenja po pitanju dozvola nad fajlovima ili bilo cime drugim. Oni imaju apsolutni pristup svemu.
Pad jesnog kernel-mode drajvera izaziva pad sistema (BSOD). Drajvere koji se izvrsavaju kao korisnicki procesi (user-mode drajveri) nazivamo servisima.Oni imaju ona prava koja ima i nalog pod kojim su pokrenuti.Analogno kernel-mode drajverima koji su ucitani u adresni prostor kernela (Ring0), user-mode drajveri se hostuju na xxx svchost programima, tj. u njihovom adresnom prostoru. User-mode adresni prostor se naziva xxx i Ring3.
Pad jednog servisa izaziva pad svih servisa hostovanih na istom svchostu. Servisi nisu obicni DLL fajlovi (totalno drugacija struktura), i zato svchost ne sluzi za ucitavanje DLL fajlova.On sluzi za hostovanje servisa.
Jedan SVCHOST ima tehnickih ogranicenja koliko servisa mogu biti hostovani na njemu (ovo je laicko objasnjenje, stvarni razlozi mogu biti drugaciji).
Znaci, moze se desiti da na jednom svchost procesu budu hostovani 6 servisa, i da je za sedmi pokrenut xxx xxxxx svchost.
Na sistemima sa 20, 30 ili vise servisa moze se videti i po 6,7 svchost procesa u task manageru.
Servisi su po strukturi slicni drajverima, s razlikom da se drajveri izvrsavaju xxx xxx kernela, a servisi u user spaceu.
Kako servisi dolaze kao DLL-ovi, oni ne mogu biti pokrenuti kao aplikacije, vec ih xxxxx xxxx ucitati. Svchost sluzi za tako nesto.
Jedan Svchost se moze koristiti za ucitavanje xxxx xxxxx servisa, sto kao losu stranu ima da pad jednog od njih moze (i uglavnom hoce) prouzrokovati prestanak rada svih servisa iz xx xxxxx.
C:\Program Files\Messenger\msmsgs.exe – Msmsgs.exe je glavni proces koji ima veze sa MSN-internet kurirska alatka za čatovanje, instralirana po default-u na većini 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
audio/video konferisanje. Ovaj process nije neophodan. Diseblovanje ili omogućavanje je stvar samog korisnika.
Napomena: ovaj process je smešten u C:\Program Files\Messenger folderu, u suprotnom radi se o malicioznom programu.
C:\WINDOWS\system32\ctfmon.exe - Ctfmon.exe je process Majkrosoftovog službenog sajta xxxx xxxxx sve windows-ove aktivnosti i omogućava 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 xxx apletu.Ubijanjem procesa ne nestaje language bar, ali ni ne funkcionise vise.
C:\WINDOWS\Explorer.exe - Microsoft Windows Explorer ima dvojaku funkciju tj.moze da se startuje u dva moda. On je Windows-ov menadžer programa. Upravlja Windows-ovom grafičkom školjkom uključujući taskbar, desktop i fajl menadžer. Ako se ovaj proces isključi Windows-ov grafički interfejs će nestati.
Kada startujemo Explorer on pogleda da xx xx aktivan xxx neki Explorer. Ukoliko nije onda on sebe startuje u shell modu (to xx xxx 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 xxxx xxx file manager.
Sto xx xxxx nedostatka Explorera iz liste procesa, kako se to prakticno manifestuje? Koji su vidljivi simptomi?
Uopste ne xxxx da znaci da je sistem ostecen, moze xxx xxxx xx xxxx bez Explorera.Najcesci simptomi xx xxxxxx ekran bez radne povrsine, inace moze i tada da se pokrene explorer preko Task Manager-a -> File-> New task (Run) . Znaci, moguca je situacija u kojoj explorera nema u listi procesa, a sve funkcionise kako xxxxx xxxx sto korisnik koristi neki drugi shell.
Explorer nije jedini shell koji postoji za Windows. Kao sto na linuxu imas Gnome i KDE, i za Windows postoje vise shellova koji omogucavaju desktop, taskbar itd. itd.
C:\WINDOWS\system32\services.exe - Sluzi za pokretanje, gasenje i saradnju sa ostalim servisima OS-a.
C:\Windows\System32\rundll32.exe - Rundll32 - slicno svchostu, s xxx sto ne sluzi za pokretanje servisa, vec aplikacija koje dolaze u vidu DLL-ova. Najcesce su u pitanju apleti, tipa kontrolnih panela za graficke kartice koji stoje u tray-u, mada upotreba nije ogranicena samo na njih.
Znamo sta je DLL. Standardan DLL ima i standardan Dllmain entry point.
DLL koji poseduje tu funkciju, on ima sve osobine jednog EXE fajla, i pokrece se pozivanjem Dllmain funkcije.RUNDLL32 sluzi upravo za tako nesto.
Rundll32 je program za ucitavanje DLL fajlova, onih standardnih.
Standardan DLL fajl sadrzi funkciju DllMain (obican EXE sadrzi funkciju Main). Jedina prakticna razlika izmedju EXE i standardnog DLL fajla je u nazivu te funkcije za pokretanje.Rundll32 radi upravo to - ucitava DLL i poziva tu njegovu funkciju za inicijalizaciju.
Postoje xxx i DLL-ovi bez ove funkcije (pitanje je sta je programeru trebalo) koji su samo skupovi funkcija potrebne nekom programu.
Njih ne mozes ucitati uz pomoc Rundll32.
Rundll32.exe je univerzalan program za pokretanje standardnih DLL fajlova. Pod standardnim DLL fajlovima podrazumevam sve one koji imaju implementiranu funkciju DllMain().
Uz pomoc rundll32.exe mozes recimo da pokrenes neki BHO za IE cak i ako IE nije pokrenu t.
Koji proces se obavezno javlja xx xxxxx procesa ukoliko je na racunaru startovan neki .NET program? Xxxx xx startovan neki .NET program, obavezno se ukljuci i .NET debugger:
C:\Program Files\Common Files\Microsoft Shared\VS7DEBUG\MDM.EXE
Bitno je da znamo da je debugger tu ukoliko je neki od programa pisan u .NET-u, i da ga obavezno ima xxxx xx ucitan ATI Control Panel (a to ti je maltene svaki drugi log).
*************************************************************************************
COMOBOFIX
ComboFix koristi istu sintaksu kao i REG fajlovi, sa veoma malim razlikama za par kljuceva .
Reduced mod?
U reduced modu ne brise nista automatski, vec samo pravi log. Sta on radi kad vrti to stage1..stage 2 ... ?
Svaki Stage sluzi za nalazenje jedne konkretne infekcije.Primer (izmisljen, da ne bih xxxx stvarno tumbao po CFu da nadjem sta je sta tacno), stage 5 trazi Vundo, stage 6 trazi Renos itd.
Kada kljucu obrisemo vrednost i xxx kljuc bude izbrisan jer xx xxxxxx.
Znaci, treba da postoji bilo kakva vrednost, pa makar xxx xxxx i xxxxxx string.
Kompjuteru xx xxxxxx prostor (space) isto sto i slovo, tako da nama nije isto da li ces postaviti xxxxxx string, ili string koji sadrzi jedan SPACE karakter.
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchURL] "(Default)"="http://xxx.xxxxxxxxxxxxxx.xxx/search.php?qq=%1"
U jednoj liniji ces videti i rec (Default), nju u CFScriptu I REG fajlovima xxxxx xxx @. Default xx xxx sto dolazi sa cistim Windowsom.
Registry je podjeljen na nekoliko logickih djelova ili "hives"-ova (zbirnih grupa) i zbog toga sve pocinju sa "HKEY". One se obicno pisu skraceno sa tri ili cetiri slova i te skracenice pocinju sa "HK", npr. HKCU. HKEY_LOCAL_MACHINE i HKEY_CURRENT_USER imaju slicnu strukturu jedan prema drugom. Korisnicke aplikacije tipicno prvo traze svoje postavke u "HKEY_CURRENT_USER\Software\Vendor's name\Application's name\Version\Setting name", i ako podesavanja nisu nadjena, trazi se na istom mjestu pod kljucem HKEY_LOCAL_MACHINE. Ovakva hijerarhija xx xxxxx za administratorsku politiku podesavanja, gdje HKLMmoze uzeti prednost nad HKCU.
HKCU-HKEY_CURRENT_USER -Hive kljuc koji sadrzi informacije o podesavanjima/konfiguraciji korisnickog naloga koji se trenutno koristi.
HKEY_CURRENT_USER xxxx podesavanja koja su specificna za trenutno prijavljenog korisnika. HKCU
kljuc je link na podkljuc kljuca HKEY_USERS koji odgovara xxx korisniku (ista informacija se odrazava u obje lokacije). Na Windows NT baziranim sistemima, svako korisnicko podesavanje xx xxxx u svom vlastitom xxxxx nazvanom NTUSER.DAT i USRCLASS.DAT unutar njihovog "Documents and Settings" foldera.
HKLM-HKEY_LOCAL_MACHINE-Hive koji sadrzi informacije o globalnim podesavanjima[Hardwer,neka podesavanja samog sistema]
HKEY_LOCAL_MACHINE xxxx podesavanja koja su specificna za lokalni kompijuter. Na NT baziranim verzijama Windows-a, HKLMsadrzi cetiri podkljuca: XXX, SECURITY, SOFTWARE i SYSTEM, koji se nalaze unutar svojih respektivnih fajlova lociranih u %SystemRoot%\System32\config folder. Peti podkljuc, HARDWARE, je "izbrisiv" (volatile) i kreiran je dinamici, xx xxx takav nije smjesten u xxxxx. Informacije o sistemskim hardverskim drajverima i servisima su smjestene u podkljuc SYSTEM, dok podkljuc SOFTWARE sadrzi software i Windows podesavanja.
Posto HKCU sadrzi sva podesavanja korisnika koji je trenutno ulogovan, znaci da je HKCU za svakog korisnika razlicit.HKLMostaje xxxx.Xx xx xxxx sto sadrzi informacije o samom racunaru, OS-u, hardware- u.Priporitet ima ono podesavanje koje stoji u HKCU. Konkretno za IE, prvo se citaju podesavanja iz HKCU, a IE ce potraziti ona iz HKLM tek ako nema niceg upisanog u HKCU. HKLM se koristi samo ukoliko u HKCU ne postoji trazeni kljuc.Ovo se primecuje npr kada kreiramo novog Usera - kod njega se sve vrednosti citaju iz HKLM posto je njegov HKCU maltene xxxxxx.
HKCU se ucitava u reg. bazu tek nakon sto se korisnik uloguje na sistem (taj hive je u stvari fajl na disku i nalazi se u Documents & Settings\USERNAME\Ntuser.dat)
O4 - HKUS\.DEFAULT\..\Run: [Security] C:\Windows\system32\explorer.exe (User 'Default user')
HKEY_USERS, S je tu samo da bi se zadrzala forma od 4 slova, nije pocetak posebne reci.
Win98 je koristio RegEdit 4 format za .reg fajlove.WinXP prepoznaje i RegEdit 4 format, ali uvodi i verziju 5.Prva razlika je u samom zapisu REG fajlova:
Header kod verzije 4: REGEDIT4
Header kod verzije 5: Windows Registry Editor Version 5.00
Druga razlika je u xxxxxxx.Xx 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 xx xxxx moralo da se zapise u hex zapisu. Unicode nije jedan standard, vec da je u pitanju puno razlicitih nacina xxxxxx.Xxxxxxx, od Win2k na ovamo koristi UTF-16, a pre toga je koristio UCS-2.Inace, fontovi koji dolaze sa Windowsom ni nemaju karaktere za znakove koji izlaze iz UCS-2 opsega. UTF-16 je prosireni UCS-2, tako da ti u praksi na Windowsu nije bitno da li Unicode zapis tretiras kao UCS-2 ili kao UTF-16. Poenta je da se njime mogu zapisivati daleko vise razlicitih karaktera nego ASCII/ANSI setom.
Ukoliko v5 snimimo kao ANSI, i pokusamo takav fajl da importujemo u reg. bazu - dobicijamo poruku da fajl nije validan REG fajl.Isto i za suprotan primer, ukoliko imamo v4 fajl snimljen kao Unicode.
ASCII ima standardizovanih samo 127 znakova. Ostatak do 256 zavisi od codepagea.
Unicode je naziv za vise razlicitih nacina zapisivanja (UTF-8, UTF-16, UTF-32, UCS2, UCS4 itd itd), a ja ga ne bih nazvao binarnim jer je to isto zapis teksta, kao sto je i ASCII/ANSI takodje zapis teksta.
Ako se gleda s tehnicke strane, oba su binarni jer je to niz bajtova, a zovemo ih tekstual nim samo zbog toga sto svi ti bajtovi cine tekstualnu poruku (ne slike ili neki drugi tip podataka).
Razlika xx x xxxx sto jedno slovo u ASCII zapisu uzima jedan bajt (8 bitova), dok recimo UTF-32 zauzima 4 bajta (32 bita).Ima tu xxx 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 xx xxxx koji oznacava na koji xx xxxxx zapisan Unicode tekst (bitno jer x86 zapisuje razlicito u odnosu na recimo PowerPC arhitekturu koju su koristili raniji Macintoshevi).
xxxx://xxx.xxxxxx.xx/XX-Xxxxxx-xxxxx/00-xxxxx0.xxxx#000000
VARIJABLE:
F1 - win.ini: load=ptsnoop.exe
Kako ce Windows znati u kom folderu da potrazi taj fajl ptsnoop.exe? Preciznije receno, u kojim ce ga sve folderima traziti?
Znaci postoje liste foldera i prioriteta po kojima windows zna gde da trazi ukoliko se navede samo ime programa. PATH datoteka je u stvari njena adresa na racunaru. PATHEXT sadrzi listu exstenzia. Naime, obe mogu da se menjaju (mozemo i mi to da uradimo, ili neki program, malware...), pa zato xxxxx xxxxx gde pronaci njihov sadrzaj.
Desni klik na My Computer-> Properties-> Advanced->Environment Variables
Postoji i laksi nacin - iz konzole.Samo otkucamo ime varijable i pritisnes Enter (start->run->cmd->echo
%PATH% + Enter i echo %PATHEXT% + Enter).
Evo kako xxxx izlistati uz pomoc bat file-a sadrzaj varijabli (path i pathext) u log-u: echo %PATH% > C:\log.txt
echo %PATHEXT% >> C:\log.txt notepad.exe c:\log.txt
-> xxxx://xxx.xxxxxx.xx/xxxxx.xxx?xxxxxx000000_000000000_Xxxxxx0.XXX
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. xxx Xxxxxx. Ovo sto si ti xxxxx xx regulisano u samom Xxxxxx, tj. Exploreru.
Za reg. kljuceve koji se odnose na Win32 subsistem bitno xx xxxx su ekstenzije regulisane u PATHEXT, dok je za kljuceve koji se xxxx xxxxxx bitno kako su asocijacije uradjene u Exploreru.
%SystemRoot% je takodje jedna od sistemskih varijabli, i sadrzi putanju foldera u kojem se nalazi Windows.Obicno je kod vecine korisnika u C:\Windows, ali isto tako kod nekog moze biti u recimo F:\Windows, ili mozda cak D:\Moj_OS ukoliko xx xxxx odabrao pri instalaciji.Da bi se izbegla nagadjanja, onda covek lepo iskoristi sistemsku varijablu %SystemRoot% xxx xxx putanje do fajla, pa xxx OS odradi zamenu konkretnom vrednoscu, tj. sadrzajem varijable.
Windows je uradjen prilicno xxxxxxxxx.Xx kernel mozes ubaciti razlicite subsisteme, s xxx sto XP dolazi samo sa Win32 subsistemom (NT je dolazio i sa OS/2 i POSIX subsistemima).Na Win32 subsistem imamo xxxxx xxx i shell.
Xxxx, 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 xxxxxx, koji ce ustvari samo da prosledi to copy APIju subsistema, a on ce to da prosledi kernelu, pa kernel drajveru zaduzen za HD.
Xxxx, reg. baza se sastoji iz delova. Kernel ucitava jedan deo, pa onda Win32 subsistem drugi, pa shell treci.Iz kernela (tj. nekog drajvera) ne mozemo pristupiti reg. kljucevima koje je tek shell ucitao sa HD-a posto kernel uopste nije svestan xxxxxx i njegovih delova.HJT, regedit, bilo koji treci, citaju reg. bazu kao celinu, tako da nisi svestan da su to vise posebnih delova od kojih svaki pri pada nekom posebnom layeru Windowsa.
Drajveri se izvrsavaju nad kernelom, tj. kernel ih u letu ucitava kao svoj deo.Servisi se pisu isto kao i drajveri, s xxx sto se ucitavaju xxx xxx Win32 subsistema. Nazivaju se xxx 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 xxxxx iz nekih nama nepoznatih razloga.Samo Ring0 moze da izazove BSOD, Ring3 moze da izazove samo greske koje ne obaraju kompletan Windows.Ring0 ima prioritet, tako da ukoliko u Ring0 neko stavi zabranu brisanja nekog fajla, ovi iz Ring3 mogu da vriste i kukaju, ali fajl nece biti obrisan.Najgora eskalacija privilegija koja moze da se desi xx xx xxxxx 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 xxxx 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 xx xxxxx 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 xx xxxx 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.
Xxxx xx desktop isto implementiran u Ring3, to znaci da programi iz Ring0 ne mogu nista da ispisu na ekran, pa ni obicnu poruku o gresci.
Xxxx, razlika izmedju servisa i drajvera xx xxxx 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 xx xxxx 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.
Xxxxxxxxx se upisuju pod navodnicima.Svaki string mora da ide pod navodnike
Sve ostale vrste kljuceva su brojevi, i kod njih se upisuje broj (bez navodnika ili iceg drugog). String su slova (plus brojevi, ali u svrsi teksta).
Xxxxxx string upisujemo kao dva uzastopna navodnika - "" Nula pod navodnicima ("0") je takodje string.
C:\Documents and Settings\Administrator Xxxxx\Start Menu\Programs\Startup\
Adobe Gamma.lnk - C:\Program Files\Common Files\Adobe\Calibration\Adobe Gamma Loader.exe [2005-03-16 19:16:50 113664]
Ovde xx xxxx fajl za brisanje, ne xxxxx xxxxx posebno. Znaci, to ide u File:: sekciju CFScripta - i to je to.
Jedino na sta treba da obratimo paznju xx xx xx je u Startup folderu bas EXE fajl, ili samo Shortcut (LNK fajl).Uprimeru, u Startup folderu je LNK fajl, i napisano xxx xx i koji fajl taj LNK fajl startuje. Ako su maliciozni, onda treba obrisati oba, xxxx xxxx uglavnom nailaziti (kod malwarea) da je u Startup folder ubacen EXE fajl, tako da imamo samo jedan fajl za brisanje.
Zamislimo da na kompu postoje vise korisnickih naloga.Svaki od njih ima svoj Startup folder, koji naravno moze biti razlicit za svakog korisnika.Ukoliko su dobro podesene dozvole nad folderima, onda jedan korisnik ne moze ubaciti drugom korisniku nista u Startup folder, to je logicno. Ukoliko uzmemo za primer da je administrator sistema napravio jednu gresku u dodeljivanju dozvola nad jednim jedinim folderom, i time omogucio da user moze da zarazi sve ostale usere ubacivanjem malicioznog fajla u taj folder, koji bi to folder bio?
Odgovor je: C:\Documents and Settings\All Users\Start Menu\Programs\Startup
Cemu sluze: C:\Documents and Settings\ (Default User, LocalService...)?
U default user se nalaze osnovna podesavanja koja ce svaki novi kreiran acount dobiti.Znaci sta ce biti u start xxxx-xx.Xx je osnova za novi account.Znaci nije pravi nalog, vec templete koji se koristi kod kreiranja novih naloga. Kod OEM verzija Windowsa se ovaj template znacajno razlikuje od ovog standardnog xxxx xxxxxx nas ima. Default User korisnicki profil se koristi kao 'polazna xxxxx' (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 xxxx xxx LocalService, a mozda imamo i neki NetworkService.
Local Service i Network User su dva naloga koja dolaze sa Windowsom, i imaju vec unapred odredjene privilegije.Ovo je uradjeno iz sigurnosnih razloga. Naime, da ne bi na kompu xxxx xxxxxx radio pod nalogom System, njemu se (u odnosu na potrebe tog servisa) odredi da radi pod nekim od ona dva naloga.System nalog ima velike privilegije, pa ukoliko xxxxxx xxxx radi pod system nalogom bude kompromitovan xx xxxxxx 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 xx xxxx mreze i lokalnih servisa. Na ovaj nacin su servisi dobili taman onoliko privilegija koliko im treba, za razliku od ranijih ovlascenja gde su mogli da bukvalno (uz pomoc malwarea) da rovare po sistemu nesmetano i da izvrsavaju sistemske komande iako im to nije primarni zadatak.Znaci ove sigurnosne stavke su znacajno unapredjenje u odnosu na nacin kako su to radili raniji windowsi.Servis pokrenut pod local service ima, u osnovi, prava obicnog korisnika, ustvari od obicnog korisnika ima xxxx xxx pravo logovanja na sistem xxx xxxxxx jer svaki servis ustvari xxxx da ima to pravo da bi pravilno funkcionisao.Primera radi, servis pokrenut pod network service kad se loguje na drugi racunar, loguje se (ukoliko je mreza domenska) kao korisnik koji se nalazi u aktivnom direktorijumu tog domena, tacnije, ako recimo korisnik hoce da se loguje xx xxxxxxx 1 na server 2 da bi pristupio nekom serovanom folderu na xxx racunaru, on ce dobiti pristup u zavisnosti od toga kako xx xxx useru definisana prava na serveru 1. Ovo nije slucaj ukoliko je taj xxxx xxxxxx pokrenut pod local services. Utom slucaju ce pravo pristupa zavisiti samo od toga xxxx xx xxxxxxx xxx korisniku definisan na serveru 2, a ako je on na njemu odbijen, onda mu pristup nece biti dozvoljen.Iz ovoga xxxx zakljucujemo da je osnovna namera bila povecanje sigurnosti i za razliku od servisa koji su imali sistemska prava pristupa, ovde je mnogo teze zloupotrebiti servis.Iz istog razloga nije preporucljivo pokretati bilo sta sa root korisnickog naloga u linuxu, vec je preporuka to uraditi sa obicnim korisnikom xxxx xx polisa oslobodjena samo onoliko koliko je potrebno za nesmetano funkcionisanje aplikacija koje su name njene xxx korisniku.Znam da se ne bavimo linuxima, niti ja imam pojma o njima, xxx xxx 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 xxx.xxxxxx.xx broswer dodaje http:// ili ako stavimo xxxxxx.xx onda ce dodati xxxx://xxx na upisanu adresu.
Kraj quota:
To "http://" sto MS naziva prefiksom, to xx xxxx 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. Ukoliko xx xxxxx xxxx xx tu kraj price.
Znaci, desice se sledece:
xxx.xxxxxx.xx ce postati xxxx://xxx.xxxxxx.xx
xxxxxx.xx ce postati xxxx://xxxxxx.xx , ne xxxx://xxx.xxxxxx.xx xxx 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 xxx.xxxxxx.xx, on ce na osnovu kljucne reci "ftp" xxxx xx 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 xx xxxxxxx).Kako ce neki FTP folder izgledati kod nas u browseru - to zavisi samo od toga xxxx xx 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 xx xxxx 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.
xxxx://xxx.xxxxxx.xx/XX-Xxxxxx-xxxxx/00-xxxxxx.xxxx Oznaka/ime protokola se zavrsava sa :// (http:// , ftp:// itd.)
Ukoliko korisnik ne upise prefiks u addressbar browsera, onda ce IE dodati DefaultPrefix ispred, i
pokusati tako da nadje tu adresu. Recimo, ukoliko je adresa xxx.xx.xxx, a u Prefix kljucu stoji "ftp" = "ftp://",onda ce IE da adresu promeni u xxx://xxx.xx.xxxXxxxx, 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 xxxxxxx xx plugin za odredjenu vrstu protokola.Mi svi znamo, da ako adresa pocinje sa http://, da je to HTTP protokol. IE-u nije potreban nikakav plugin da bi znao kako da otvori takve adrese.
Windows Media Player ce recimo da se ubaci kao protocol handler za mms:// linkove, pa ako se negde pojavi na nekom sajtu link koji pocinje sa mms://, onda ce po kliku na takav link da se otvori WMP.
Drugo, mogu se uraditi asocijacije u odnosu na ekstenziju fajla koji se skida.Uradi se asocijacija, da ako recimo kliknemo na nekom sajtu na link koji vodi ka nekom ZIP xxxxx, da se taj fajl po skidanju automatski otvori u nekom programu. To se vidi u O12 linijama.
Xxx jedna stvar koja bi trebala da se objasni je podesavanje DNS servera.Recimo, record za MyCity na DNS serverima sadrzi dve adrese - sa i bez www u imenu.Zbog toga ce MyCity uspesno da se otvori i kada ukucas xxxx://xxx.xxxxxx.xx i xxxx://xxxxxx.xxXxx ti je bitno da bi mogli da shvatimo zasto i kako smo uspeli da pristupimo MC-u sa podesavanjima koja su data u ovoj lekciji.
Ukoliko je DefaultPrefix = "http://", onda smo MC-u mogli da pristupimo i sa i bez onog WWW u adresi. Prefixes je podesavanje koje treba da utvrdi koji je protokol u pitanju u odnosu na to da li se neka kljucna rec pojavljuje u URLu.Recimo, za adresu xxx.xxxxxx.xx bi IE automatski pokusao da postavi protokol ftp://.To znaci da bi on pokusao da otvori xxx://xxx.xxxxxx.xx
CLSID PRIMER
O2 - BHO: {EF99BD32-C1FB-11D2-892F-0090271D4F88} - {7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31}
- (no file)
{EF99BD32-C1FB-11D2-892F-0090271D4F88} -> yahoo
{7D7DB869-3021-4CD2-AF0A-B3CAD75ECE31} -> Vundo
Kojem sada treba verovati od ova dva?
To nisu dva CLSID-a. Ono za yahoo, nije CLSID uopste, vec je to ime BHO-a (ne ime fajla).HJT ima jedan format O2 linija, nema deset, i uvek ide ime_BHOa-CLSID-ime_fajla_na_disku.
O2 - BHO: Adobe PDF Reader Link Helper( ime BHO-a) - {06849E9F-C8D7-4D59-B87D-784B7D6BE0B3}(
CLSID ) - C:\ProgramFiles\Common Files\Adobe\Acrobat\ActiveX\AcroIEHelper.dll ( ime fajla na disku )
O2 - BHO: {EF99BD32-C1FB-11D2-892F-0090271D4F88} ( znaci ovo je ime BHO-a) - {7D7DB869-3021- 4CD2-AF0A-B3CAD75ECE31} (ovo je CLSID) - (no file)
******************************
Postoje par registara kome pripada koja IP adresa. Svaki registar sadrzi podatke za jedan deo sveta (uglavnom jedan registar sadrzi podatke za jedan kontinent).
Svi kontinentalni registri IP adresa (APNIC, ARIN, RIPE, LACNIC, AFRINIC), regioni koje pokrivaju i njihovi link-ovi:
APNIC- xxx.xxxxx.xxx - Pokriva Azijsko-Pacificki region [Znaci obuhvata Havaje, Aljasku, Australiju i druge regione koji pripadaju Pacifickoj regiji]
ARIN - xxx.xxxx.xxx - Obuhvata SAD, Kanadu, i neka ostrva u Atlantskom okeanu
RIPE- xxx.xxxx.xxx - Pokriva Evropu
XXXXXX-xxx.xxxxxx.xxx - Latinsku Ameriku
AFRINIC- xxx.xxxxxxx.xxx - Obuhvata Afriku..
O1 - Hosts: 3510794918 xxxx.xxxxxx.xxx.xxx
Postoji par nacina zapisa IP adresa. Xxxx xx koriscen zapis u obliku DWORDa.Skini Malzillu
na Tools xxxx imas IP konverter koji ce da ti konvertuje sve moguce vrste zapisa u onaj standardni sa tackama.
Primer:
*********** Parsing data *********** Protocol: http
User:
Pass:
Host: 3510794918
Port: 80 Path: / Parameters:
********** Analyzing data ********** Host part(0) is DWORD: 3510794918 Host (deobfuscated): 209.66.122.166 Path (deobfuscated): /
********** Results ********** URL (no LogIn):
Ono sto ljudi zele da ucine malicioznim preusmeravanjem je da coveka dovuku na sajt koji xx xxx exploita, i da mu tako xxx xxxx zaraze kompjuter.Isto tako, neko moze uz pomoc HOSTS fajla da blokira lose sajtove time sto ce da im upise IP iz lokalnog opsega.
Kad otvorim hosts datoteku i ocu da obrisem recimo host fajlove, da li mogu sve da obrisem, mislim i na onaj uvodni tekst M$ i onaj lokal host 127.0.0.1 ili smem da brisem samo ono ispod, a ovo xxxx da ne diram. Mislim ako sve obrisem, da li xx xxxxx da steti?
Svaki red koji pocinje tarabom (#) racuna xx xxx komentar, tako da nije bitan.
Onaj red za localhost ostaviti, funkcionisanje nekih programa moze da zavisi od toga. On je jedini bitan.
Kakav problem nastaje kada malware uspe da promeni podesavanja DNS servera u mreznom ruteru?Zamisli da resavamo slucaj u kojem se O17 linija uvek vraca, nebitno kako smo pokusali da je obrisemo. Takodje smo sigurni da na kompu nema malwarea jer smo uspeli vec da ga ocistimo.
Da li bi ti palo na pamet da xx xxxxx kriv?Xxxx se zapitao xxxx xx uopste xxxxx tako podesen, tj. ko ga xx x xxxx podesio tako?Kako to uopste xxxxx utice na to kako ce na kompu biti podeseni DNS serveri?
Kada postoji xxxxx, on je taj koji kompu daje adrese DNS xxxxxxx, xx. xxxx pita xxxxx za adrese, a xxxxx xxx 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 xxx to xxxx ovde nazvao rokom trajanja).
Postoji xxx mogucnost da xx xxxxx podesen da ne pita provajdera za DNS servere, vec da su oni rucno
uneti.
Koliko god se ti trudio da uklonis adrese DNS servera xx xxxxx, on ce od rutera ponovo dobiti pogresne. Pre par meseci se pojavila verzija Zloba xxxx xx 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 xxxxx xx 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? Xx xxxx bi ga helperi vratili?
Svaki xxxxx xxx drugaciji menij.Usvakom slucaju xxxx da postoji opcija za izbor manuelnog/automatskog podesavanja adresa DNS servera.Malware to najverovatnije postavlja na manuelno.Xxxx xx 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 xx xxxx jedan drajver koji emulira mreznu karticu.Koristi se kada na nasem racunaru imamo neki program u ulozi servera, i zelimo sa istog kompjutera da mu pristupimo klijent programom.
Konkretan primer - recimo imamo instaliran Apache server (web server) i zelimo kod sebe lokalno da isprobamo kako u browseru funkcionise neki sajt koji smo kreirali.Mogucnosti xxx xxxx. Poenta je da nas komp na ovaj nacin prica sa xxxxx xxxxx, xxx xx xxxxx sa udaljenim kompom na mrezi.
Sto xx xxxx zadnjeg pitanja, neophodno je da korisnika pitas za upload ili da ih otvori u Notepadu, posto xx xxxxx xxxxxx xxx BAT fajl. On obicno samo sluzi da pokrene neki EXE. Treba videti sta ce da pokrene, pa eventualno obrisati i to na sta pokazuje (ukoliko utvrdimo da je maliciozno).
echo %PATH% > c:\moj_log.txt notepad c:\moj_log.txt
Zasto xxx za ime fajla uzeo moj_log.txt, a ne moj log.txt bez donje crtice?
Ako ime foldera ili fajla ima razmak u imenu, onda xx xxxx deo do razmaka biti prihvacen, a deo posle razmaka ce biti smatran za sledeci parametar komandi (razmak je standardni delimiter za argumente i switcheve komandama).
Kako bi trebao da izgleda onaj batch fajl ukoliko bi uzeo ovo drugo ime? echo %PATH% > "c:\moj log.txt"
notepad c:\"moj log.txt"
Da xx xx ovo legitimne linije?
O4 - HKUS\S-1-5-19\..\Run: [CTFMON.EXE] C:\WINDOWS\system32\CTFMON.EXE (User 'LOCAL SERVICE') O4 - HKUS\S-1-5-20\..\Run: [CTFMON.EXE] C:\WINDOWS\system32\CTFMON.EXE (User 'NETWORK SERVICE')
O4 - HKUS\S-1-5-18\..\Run: [CTFMON.EXE] C:\WINDOWS\system32\CTFMON.EXE (User 'SYSTEM')
O4 - HKUS\.DEFAULT\..\Run: [CTFMON.EXE] C:\WINDOWS\system32\CTFMON.EXE (User 'Default user')
Legitimne su.
HJT 2.x prikazuje O4 linije sa svih naloga na kompu.Udji u Documents and Settings folder, i videces da tamo imas vise tih korisnickih naloga na kompu. Ako HJT ne prikaze ove linije: mozda ima razlike ukoliko je korisnik administrator na sistemu (onda ima O4 svih profila u logu) ili je ogranicen korisnik.
DNS xx xxxx 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 xxxxxxxx (cache), i to na jako puno xxxxx.
Prvi DNS je na samom racunaru u vidu HOSTS fajla.Onda imas DNS cache na racunaru.Onda ide DNS cache na ruteru (ukoliko postoji)Onda DNS cache kod provajdera.
Znaci, ako uneses neku web adresu, onda se xxx xxxxx onim redom xxxxx xxx napisao xxxx.
Jedan zapis u DNS cacheu ima svoj rok trajanja. Rok trajanja se moze nastelovati na vise nacina, ali u svakom slucaju se prenosi i kao podatak.Znaci, neko je registrovao svoj web sajt, i njegov record postoji na nekom DNS serveru. Tu je isprogramirano i vreme trajanja xxxxxxx.Xx znaci, ukoliko istekne to vreme, onda xx xxxx (svi u lancu) xxxxx da proveri DNS record na serveru koji je pre njega u lancu.Jedan administrator moze na svom lokalnom DNS cacheu da odluci da nasteluje drugo vreme trajanja, tj. da ne ispostuje ono koje je njegov server dobilo od prethodnog u lancu.
***********************
O20 - AppInit_DLLs: ????????P,C:\PROGRA~1\KASPER~1\KASPER~1.0\adialhk.dll Delimetar(znak kojim razdvajamo sve unose u istom redu) za 020 linije je zarez (,).
Oni upitnici u stvari predstavljaju xxx xxxxx 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 xxxx xx sastavila neka americka asocijacija za standarde, i u toj xxxxxx xx za svaki znak odredjen redni broj.
To je radjeno pre "sto xxxxxx", 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).
Xxxx xx pocelo masovno da se koristi svih 8 bitova u kompjuterima (sto daje xxxxx za 256 znakova ukupno), xxxxx iznad 127 su bila prazna, i xxxx xx svako uvodio svoje standarde (IBM, pa MS DOS itd.) sta ce smestiti u xxx xxx tabele.
xxx.xxxxxxxxxx.xxx <- pogledaj tabelu. Donjih 127 kodova su standardni ASCII (ili ANSI), dok deo iznad toga nije standardizovan, a dat xx xxxxx od najcesce koriscenih IBM-ovih rasporeda za kodove 128-255.
UNICODE xxx x xxxxx xxxxxx 65536 znakova u tabeli.
Prvih 127 (255) su xxxx xxx u ASCII tabeli, dok ostatak sadrzi lokalne znakove/slova raznih xxxxxx.Xx xx xxx 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. Xxxxx xx bitno i da napomenem da mogu biti pokrenuti pod razlicitim korisnickim imenima/profilima.Drajver je program koji omogucava komunikaciju izmedu programa (operativnog sistema, aplikacija itd.) i hardware -a.
Drajver ne xxxx 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 Ring0.Kernel u Ring0 ucitava drajvere (za hardver, ili bilo koju drugu vrstu drajvera).Kako u Ring0 ne postoji nikakav grafiki interfejs, niti je Ring0 svestan bilo cega sto postoji u Ring3, tako drajveri imaju prilicno velika ogranicenja (ne mogu cak ni jednu najobicniju poruku da ispisu na ekran).S druge strane, drajver ima pristup svemu onome cemu ima i kernel.
Drajver je posebna vrsta programa, koji se prave tako da reaguju na desavanja na sistemu. Znaci, drajver ne xxxx xxxxx dok se ne desi neki dogadjaj (bilo hardverski ili softverski) za koji je taj drajver isprogramiran da reaguje.Xxxxxx xx isto to, ali u Ring3.
Znaci, s obzirom da je u Ring3, xxx xxxxxxxx onome cemu ima i trenutni korisnik.
Xxxx xx isto xxx 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 xx xx admin ili ne).
Servis moze imati razlicite privilegije, u zavisnosti da xx xx pokrece sistemski nalog ili neki drugi (sistemski nalog je posebna vrsta naloga).Servis moze biti pokrenut i pod administratorskim nalogom, ali to ima razlike u odnosu nad sistemskim nalogom.Prvo, administrator moze da instalira xxxx xxxxxx da bude sistemski, ali onda nista ne moze da mu zabrani.Admin moze da instalira xxxx xxxxxx xx xxxx pod njegovim nalogom, s razlikom sto admin moze da ogranici samog sebe, pa time i servise pod svojim nalogom.Pod onim instalira podrazumevam i namerno, a i nenamerno instaliranje (da kazem maliciozno).Mislim da ovo dovoljno pokazuje zasto xx xxxx 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 xxxxx xx xxxxxx, ali drajver to moze da zaustavi ukoliko xx xxxx 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 Xxxx0.Xxxxxxx 9x nije lepo koristio ringove, tako da su kod njega programi iz Ring3 xxxxx xxxx mogli da eskaliraju privilegije, pa da mogu da pisu i citaju memorijski
prostor namenjen za Ring0.NT serija (gde xxxxx i Win2k, XP, Vista i Win7) su po xxx pitanju daleko bolje napisani tako da je eskalacija privilegija nemoguca (barem teoretski).
Osim posebnog memorijskog prostora za svaki ring posebno, i procesor prebacuje stanje kada izvrsava instrukcije iz razlicitih ringova.Recimo, trenutna instrukcija xx xxxx od nekog programa iz Ring3.
Sledeca je neka instrukcija iz Ring) od recimo kernela.Pre nego sto izvrsi tu instrukciju od kernela on snimi stanje svojih registara, pa ih isprazni, pa izvrsi instrukciju koju mu je zadao kernel.Ako sledeca instrukcija xxxx bude od onog programa iz Ring3, on xx xxxx da snimi stanje registara, pa xx x xxxxxxxx ubaciti one vrednosti koje je ranije snimio za Ring3, pa ce tek tada da izvrsi Ring3 xxxxxxxxxxx.Xx ovaj nacin program iz Ring3 ne moze da vidi sta kernel radi u Ring0.
O23 - Service: @%SystemRoot%\system32\qwave.dll,-1 (QWAVE) - Unknown owner -
%windir%\system32\svchost.exe (file missing)
Ovo ces morati da zapamtis - kada vidis ovakvu liniju koja ima svchost i (file missing), to znaci da je svchost upravo host, a da u liniji fali ime/fajl servisa xxxx xxxxx da bude hostovan.
Potrazi na netu xxxx xx sintaksa za koriscenje svchost.exe i videces da se ime hostovanog servisa (tj. njegov fajl) navodi iza poziva svchostu, kao argument.HJT ima problema kod O23 i argumenata, tako da ces videti ono (file missing).Veruj u HJT i (file missing) samo kod O2 linija, za ostale linije zaboravi na taj info.Primer xxxx xx eventualno ta linija mogla da izgleda da HJT nema bug koji ima:
23 - Service: @%SystemRoot%\system32\qwave.dll,-1 (QWAVE) - Unknown owner -
%windir%\system32\svchost.exe qwave.dll
Primer je imaginaran, tj. mozda u stvarnosti drugacije izgleda, ali moze da posluzi za ovo objasnjenje. Vidis, HJT ce na disku da potrazi fajl svchost.exe qwave.dll iz razloga sto ima bug u parsovanju takvih unosa. Takav fajl naravno da ne postoji jer je qwave.dll ovde samo argument prosledjen svchostu (servis kojeg svchost treba da pokrene, tj. hostuje).Xxx xxxx nebuloza je info xxxx xxxx 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 xx xx xxx sto zadnje udje xxxx prvo da izadje posto xx xxx biti na vrhu stacka.
Ovde rec xxxxx nije upotrebljena u xxx uobicajenom znacenju, xxx xxxx 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 xxxx xxxx ne postoji), pa ce xxx popraviti taj LSP lanac, tj. izbacice iz lanca pokazatelj na ovaj fajl.
-> xxxx://xxx.xxxxxx.xx/XX-Xxxxxx-xxxxx/00-Xxxxx_0.xxxx
Policies nemaju veze sa ovim, bar ne u xxx smislu da se koristi restrikcija kako bi se isključio Active Desktop.
O24 - Desktop Component 1: Privacy Protection - file:///C:\WINDOWS\privacy_danger\index.htm Primetiti ono crveno...
[HKEY_CURRENT_USER\software\microsoft\internet explorer\desktop\components\1] Source= file:///C:\WINDOWS\privacy_danger\index.htm
FriendlyName= Privacy Protection
U ovom slučaju treba obrisati kompletan ključ 1.
[-HKEY_CURRENT_USER\software\microsoft\internet explorer\desktop\components\1]
Ukoliko bi bilo nešto ovakvo:
O24 - Desktop Component 0: Privacy Protection - file:///C:\WINDOWS\privacy_danger\index.htm
to bi značilo da su default vrednosti modifikovane (za My current home page), pa to onda nije dovoljno obrisati već bi trebalo i povratiti defaulte.
[-HKEY_CURRENT_USER\software\microsoft\internet explorer\desktop\components\0] [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\Components\0] "Source"="About:Home"
"SubscribedURL"="About:Home" "FriendlyName"="My Current Home Page" "Flags"=dword:00000002
"Position"=hex:2c,00,00,00,96,00,00,00,00,00,00,00,6a,04,00,00,c0,03,00,00,00,\
00,00,00,01,00,00,00,01,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00
"CurrentState"=dword:40000004 "OriginalStateInfo"=hex:18,00,00,00,96,00,00,00,00,00,00,00,6a,04,00,00,c0,03,\ 00,00,04,00,00,40 "RestoredStateInfo"=hex:18,00,00,00,96,00,00,00,00,00,00,00,6a,04,00,00,c0,03,\ 00,00,01,00,00,00
Kako uključiti/isključ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 otvoriti/zatvoriti Desktop applet (bukvalno bez ikakvih podešavanja - samo ga otvoriti i OK).
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\Components] "DeskHtmlVersion"=dword:00000110
"DeskHtmlMinorVersion"=dword:00000005 "Settings"=dword:00000001
"GeneralFlags"=dword:00000004
4 - disabled
0 - enabled
Ali... Ovo xxxx xx pokazivač stanja - nije moguće pomoću ovog setovanja naterati Win da nešto uradi.
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\Components\0] "Source"="About:Home"
"SubscribedURL"="About:Home" "FriendlyName"="My Current Home Page" "Flags"=dword:00000002
2h - disabled 2002h - enabled
Ovo xxxx setovanje se ne osvežava baš xxxx - no, hoće da odreaguje i na Refresh Desktop-a.
Ali, samo će da ukloni stranicu sa Desktopa - ostaće i dalje neki ''vizuelni artifakti'' (čudne ikonice) - za potpuni Refresh xxxx xxxxx 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 xxxx da bude aktivan pre nego sto program ucita DLL. Naknadno patchovanje DLL-a xx xxxxxx rootkita ne utice na programe koji su taj DLL vec ucitali dok je bio nepatchovan.
Ukoliko je neki DLL injektovan u recimo Explorer proces, to se radi u memoriji. Ukoliko zatrazis Explorer.exe na upload, da bi mogao da ga proveris skeniranjem ili u sandboxu, taj Explorer.exe nece sadrzati maliciozni kod posto je fajl na disku cist.
IAT _drajver ili dll koji je hook_ [sta je hookovao drajver/dll ! funkcija tog drajvera/dlla xxxx xx hookovana] _na koju adresu u hook drajveru/dll-u je preusmerio_
Inline hookovi bi samo trebali da ti pokazu memorijsku adresu na xxxx xx neka funkcija preusmerena.
.text C:\WINDOWS\system32\cmd.exe[164] ntdll.dll!NtCreateThread 7C90D7D2 5 Bytes JMP 009B083C
5 bajtova sa pocetka funkcije su patchovani da odvedu na adresu 009B083C (JMP instrukcija).
.text C:\Program Files\Internet Explorer\iexplore.exe[2844] USER32.dll!DialogBoxParamW 7E4247AB 5 Bytes JMP 42F0F301
1.Ovo znaci da je iexplore.exe patchovan tako sto su na adresi 7E4247AB izmenjena 5 bajta tako sto je u njih upisana instrukcija JMP 42F0F301 (JMP = jump, predji na adresu).
Patchovanje je izvrseno u memoriji, nakon sto je iexplore.exe ucitan.
Xxxx xxx i podatak sta je tacno patchovano: USER32.dll!DialogBoxParamW - ovo znaci da je patchovan poziv user32.dll-u, tacnije funkciji DialogBoxParamW tog dll-a.
2.Ovo znaci da je iexplore.exe importovao funkciju DialogBoxParamA iz user32.dll, ali da je ta funkcija patchovana i na samom pocetku funkcije ima JMP na 430A1764.
Funkcija je patchovana u memoriji, fajl user32.dll je na disku OK.
Prvo, nagledaces xx xxxxxx u kojima DaemonTools hookuje sve moguce device drajvere.
Drugo, nagledaces se programa za ulepsavanje izgleda Windowsa, koji se injektuju u sve zive procese, itd. itd.
Dodaj na to da svaki AV/FW dodaje svoje hookove na nivou kernela (Zw... funkcije), pa ti onda bude jasno da ces u logovima videti stotinu legitimnih hookova, a da u celoj toj zbrci trazis tri koja su eventualno maliciozna.
U sustini svaki user mode rootkit ili hookovanje moze na ekranu da ispise poruku koja ce po svemu izgledati xxx xx xx je ispisao host (legitimni) program.
Problem moze nastati ako se injektuje thread u program koji je konzolni, tj. nije Win32 GUI program i xxxxx xxx ne poznaje koncept formi (prozor programa), pa xxxxx xxx ne poznaje ni koncept dijaloga ili poruka.
Takav program uopste ne ucitava GDI, pa bi remote thread srusio program ukoliko bi pokusao da na
ekran izbaci poruku (poruku u formi/prozoru, ne konzolnu).
Isto se desava ako se injektuje DLL u servis (neki user mode servis), koji po pravilu ne pristupa grafickom izlazu Windowsa (formama).
Ako neko xxxxxx da uradi system wide hook (injektuje dll u sve zivo), to ce se injektovati i u servise. Ako iz takvog hooka xxxxxx da ispise poruku na ekran, krahirace ceo sistem jer ce to pokusati da uradi i iz programa koji ne poznaje koncept formi/prozora/dijaloga, tj. nemaju ucitan GDI dll.
Zw i Nt funkcije se ne razlikuju ukoliko se pozivaju iz user modea.
Ukoliko se pozivaju iz kernel modea, onda ima razlike, ali to nije toliko bitno za nas i nas posao ovde.
U sustini, inline hooking daje najbolje rezultate u sakrivanju.
Program ne xxxx da koristi IAT da bi importovao funkcije sistemskih DLLova, tako da patchovanje IAT-a nije 100% sigurna metoda. EAT je najlosiji, posto se patchovanje xxxx izvrsiti pre pokretanja programa koji zelimo da prevarimo. Patchovanje nakon pokretanja programa xxxx xxxxx 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 xxxx xxxx xxx jasnije, pokusacu da objasnim xxx xxxxx. 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 xx xxxxx da pises GUI programe. Sledeci layer je ShellAPI (ovo su funkcije koje obezbedjuje Windows Explorer).
WinNT je osim Win32 subsistema imao xxx i POSIX i OS/2 subsisteme. POSIX subsistem je omogucavao API za pokretanje *xxx aplikacija, a OS/2 susbsistem za pokretanje OS/2 aplikacija.
Razvoj tih subsistema je prekinut pre vise xxxxxx, tako da je Win2000 stigao samo sa Win32 subsistemom.
Xxx uvek postoji mogucnost da se od MS-a kupi POSIX subsistem za Win2000 i novije, kao poseban paket.
reg. xxxx xx abecedno sortirana sc stop "LiveUpdate"
sc delete "LiveUpdate"
del "C:\PROGRA~1\Symantec\LIVEUP~1\LUCOMS~1.EXE"
del "C:\Program Files\Common Files\Symantec Shared\PIF\{B8E1DD85-8582-4c61-B58F- 2F227FCA9A08}\PIFSvc.exe"
sc stop "@%SystemRoot%\system32\qwave.dll" sc delete "@%SystemRoot%\system32\qwave.dll"
Nije mi jasno kako si stigao uopste do ovoga:
del "%windir%\system32\svchost.exe qwave.dll"
Pretpostavljam da izgleda ne znas sta je argumenat programa, tj. koncept argumenata.
Vidi, svaki program moze da se napravi tako da prihvata argumente pri startovanju: program.exe argumenat_1 argumenat_2 argumenat_3
Xxx i kako ce on uciniti sa xxx argumentima, to zavisi od samog programa i xxxx xx napravljen i zamisljen. Obicno u nekom help xxxxx stoji kako se koriste argumenti za taj program, tj. sta mu se moze zadati od argumenata.
Jedino pravilo xx xx xx argumenti odvojeni razmakom. To pak znaci da xxx 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 xxxx xxxxx da se obrise.
U slucaju HJT xxxxxx, xx. u slucaju svchosta, svchost kao prvi argumenat uzima ime dll -a xxxx xxxxx da hostuje.
U nasem slucaju, svchost.exe se koristi da bi se pokrenuo qwave.dll.
To znaci da nemas tu nista posla sa svchostom, vec sa qwave.dll-om. Njega treba obrisati.
Nemoj zaboraviti da je qwave.dll legitiman, i da je ovde uzet samo kao primer za vezbanje. Ovako treba:
sc stop "LiveUpdate" sc delete "LiveUpdate"
del "C:\PROGRA~1\Symantec\LIVEUP~1\LUCOMS~1.EXE" sc stop "LiveUpdate Notice Service"
sc delete "LiveUpdate Notice Service"
del "C:\Program Files\Common Files\Symantec Shared\PIF\{B8E1DD85-8582-4c61-B58F- 2F227FCA9A08}\PIFSvc.exe"
sc stop "QWAVE" sc delete "QWAVE"
del "%SystemRoot%\system32\qwave.dll"
MyWebSearch jede internet konekciju do besvesti. Takodje usporava i racunar dosta. Njega uklanjamo. Ask Toolbar xx xxxxx drugo. Ask toolbar mozes naci i rebrandovan. Recimo, bas si xxxx postavio primer Daemon tools toolbara. To je u stvari Ask toolbar pod Daemonovim imenom.
Ask daje pare firmama koje instaliraju taj njihov toolbar.
Ni xxxx danasnjeg nije se doslo do konacnog misljenja da xx xx proglasiti za nepozeljnog ili ne. AV programi ga ne otklanjaju.