[ Suns @ 21.06.2010. 17:07 ] @


A new piece of malware is capable of killing the Windows boot process, according to Microsoft. Win32/Yonsole.A is a backdoor Trojan, a term that defines a piece of malicious code designed to compromise computers and subsequently connect to a server controlled by the attacker, receive and execute various instructions. One of the functions of Yonsole is to stop Windows startup dead in its tracks. According to Microsoft’s Chun Feng, the malware is capable of doing this because it modifies the Master Boot Record of the infected computer.

“A recently discovered backdoor sample (detected as Backdoor:Win32/Yonsole.A) can accept and execute a command from a remote server to modify the Master Boot Record (MBR) on the affected machine. The modification to the MBR is like the old ‘Stoned’ virus for DOS. However, in this case, the MBR does nothing but display a banner in the center of the screen and freeze the PC,” Feng stated.

Although it was discovered in the first half of this month, all major antivirus makers offer protection against Yonsole, including Microsoft. PCs infected with this piece of malware are no longer under the control of the user. Instead, an attacker can tell the compromised

machine to perform various tasks, as Yonsole is designed to phone home to a remote host for instructions.

“When executed, Backdoor:Win32/Yonsole.A injects itself to services.exe and drops a DLL file to the <system folder>, for example: f00165500k.cmd,” Feng added. “The DLL file contains the backdoor functionality and may be detected as Backdoor:Win32/Yonsole.B. Backdoor:Win32/Yonsole.A installs the dropped DLL as a Service DLL to make sure it is loaded as each Windows start, for example: adds value: "ServiceDll"; with data: "<system folder>\f00165500k.cmd"; under key: HKLM\SYSTEM\CurrentControlSet\Services\F00165500K\Parameters.”

Yonsole can infect a wide range of Windows releases, including Windows 2000 and NT by putting a DLL into C:\Winnt\System32; but also Windows XP, Windows Vista, and Windows 7 through C:\Windows\System32.

Softpedia.com

[ Srđan Pavlović @ 21.06.2010. 17:17 ] @
Citat:
can accept and execute a command from a remote server


Znaci rupa u nekom mreznom servisu, al' ne pise kojem... u svakom slucaju lep FAIL :)
[ xtraya @ 21.06.2010. 17:36 ] @
a ja mislio da su MBR virusi davna proslost ... ha simpaticno ovo :)
[ mmix @ 21.06.2010. 22:40 ] @
pa danas stvarno treba da si operisan pa da stradas od MBR virusa.
[ Ivan Dimkovic @ 21.06.2010. 22:55 ] @
Hmm, nije ovo MBR virus bas u striktnom smislu... vec virus koji brise MBR, ali se ne siri preko istog. Stari MBR virusi su zapravo modifikovali MBR radi startovanja samog virusa pre OS-a. To je sasvim druga stvar, ovaj idiotizam samo brise MBR i menja ga sa nekim kretenskim kodom koji ispisuje poruku.

Ono sto mene zanima je da li korisnik mora da bude root ili ne?

Ako ne mora... onda je ovo prilicno gadna stvar i epic FAIL.

A ako mora da bude lansiran kao root da bi se zapatio... onda ne vidim sta je specijalno tu, svaki root proces moze bez problema da brise koji god sektor diska hoce i da urnise OS... i to nije samo vezano za Win... sto bi se reklo, pazite kojem procesu dajete root privilegije ;-)
[ Srđan Pavlović @ 21.06.2010. 23:01 ] @
Morao bi imati root privilegije (admin na windows-u jel'te) inace
koliko se ja razumem user ne moze da pise po Master Boot Record-u.

Meni je zanimljiviji deo detalj kako se infiltrira a to nije objasnjeno, osim da je "remote".

Citat:
“When executed, Backdoor:Win32/Yonsole.A injects itself to services.exe and...


Znaci sta treba da uradi korisnik da bi se ovaj izvrsio...

Ako je to kliktanje na britni-sise.exe + davanje root privilegija, onda ovo stvarno nije win-fail vec user-fail :)
[ Ivan Dimkovic @ 21.06.2010. 23:10 ] @
Pa ako moras lansirati taj proces kao root, onda ne vidim sta je tu pa tako senzacionalno, kada je "by design" svakog OS-a root procesima dozvoljeno da imaju fizicki pristup diskovima na nivou sektora.

Kao root mozes instalirati i drajver, pa sa njim imati pristup kompletnoj fizickoj memoriji i svim siframa (u Linuxu je jos lakse, ne moras ni drajver da instaliras ;-) Mada je danas lakse uraditi socijalni inzenjering i lepo uticati na lusera da sam ukuca svoju sifru na neki sajt... ne moras ni protokol da pravis :-)

Sad sam bas kevi spremio novi laptop (moj stari vaio Z) - i bas zbog ovakvih stvari joj namenio user account gde em nema admin sifru, em je OS iskonfigurisan da ne moze nista da izvrsi sa admin privilegijama ako nije potpisano validnim kljucem... BIOS/EFI lockovan sa sifrom koju samo ja znam, zabranjen boot sa USB-a kao i bilo kakva forma AutoRun-a, iskljucen sharing/SMB - a browser Firefox sa AdBlockPlus-om i listom bezobraznih host-ova... Valjda je to dosta majq mu :-))

Videcemo :)
[ Nedeljko @ 21.06.2010. 23:11 ] @
Ograničeni korisnik ne bi trebao da može da menja MBR. No, to i dalje ne znači da ne postoji neka bezbednosna rupa. Treba ispitati stvar, da li su admin privilegije neophodne ili ne.
[ Srđan Pavlović @ 21.06.2010. 23:12 ] @
^^
+ samo jedan folder sa W pravima browser-u :-)
[ Ivan Dimkovic @ 21.06.2010. 23:17 ] @
Koliko vidim, ni jedan sajt koji pominje ovaj trojan ne pominje privilege escalation.

Tako da je najverovatnije u pitanju klasicni windows trojan, koji je verovatno upakovan u one "AntiVirus 2010" pakete koji pokupe root privilegije lako (YOUR COMPUTER IS INFECTED!!! INSTALL ANTIVIRUS 2010 TO CLEAN IT!!), a onda prospu zilion tih trojana na sistem.

Ovaj trojan ima "novinu" u smislu da moze da primi komandu preko mreze da pobrise korisnikov MBR.
[ mmix @ 22.06.2010. 07:57 ] @
Citat:
Ivan Dimkovic:Sad sam bas kevi spremio novi laptop (moj stari vaio Z) - i bas zbog ovakvih stvari joj namenio user account gde em nema admin sifru, em je OS iskonfigurisan da ne moze nista da izvrsi sa admin privilegijama ako nije potpisano validnim kljucem... BIOS/EFI lockovan sa sifrom koju samo ja znam, zabranjen boot sa USB-a kao i bilo kakva forma AutoRun-a, iskljucen sharing/SMB - a browser Firefox sa AdBlockPlus-om i listom bezobraznih host-ova... Valjda je to dosta majq mu )


Covece, pretvorio si Vaioa u Mac

[ darkonsm @ 22.06.2010. 08:39 ] @
Pa uglavnom nema vise nikakve opasnosti .
Pored toga sto korisnik mora biti mo***r*o*n sad svi antivirusi ukljucujuci sve velike free antiviruse pruzaju zastitu .
[ vlada_vlada @ 22.06.2010. 08:59 ] @
Citat:

Morao bi imati root privilegije (admin na windows-u jel'te) inace
koliko se ja razumem user ne moze da pise po Master Boot Record-u.

Meni je zanimljiviji deo detalj kako se infiltrira a to nije objasnjeno, osim da je "remote".


Na windowsu nema root-a (aka superusera). Potpuno je drugacije koncipiran security model.
Znaci nebo i zemlja.

Ne znamo da li je "remote" virus u pitanju. Sve sto pise je da se nakon infekcije ubacuje u services.exe.

Zapravo, ako autor virusa racuna na ikakav spread rate, mora da radi kao "sise_dupe.exe".

Na desktop sistemu user je najslabija karika i najveci spread se dobija kroz eksploataciju lose komunikacije izmedju usera i os-a.

Druga vazna stvar je da su user bazirani sploiti potpuno portabilni kroz razlicite verzije OS-a. "sise_dupe.exe" ce raditi za svaki service pack od windowsa 95 na ovamo, dok isto ne vazhi za napredne mehanizme eksploatacije koji obicno debelo zavise od konfiguracije sistema, koja dramaticno obara verovatnocu infekcije.

Citat:

Pa ako moras lansirati taj proces kao root, onda ne vidim sta je tu pa tako senzacionalno, kada je "by design" svakog OS-a root procesima dozvoljeno da imaju fizicki pristup diskovima na nivou sektora.

Kao root mozes instalirati i drajver, pa sa njim imati pristup kompletnoj fizickoj memoriji i svim siframa (u Linuxu je jos lakse, ne moras ni drajver da instaliras ;-) Mada je danas lakse uraditi socijalni inzenjering i lepo uticati na lusera da sam ukuca svoju sifru na neki sajt... ne moras ni protokol da pravis :-)


Da li pise po MBR-u sa Administratorskim pravima? U tekstu pise da radi DLL injekciju u services.exe.

A pod kojim pravima radi services.exe ??

Cak i da prilikom samog pokretanja virusa nema "root" prava kako kazete, ne vidim sto bi bio problem da virus zamoli usera da mu da te privilegije.

Ko je kliknuo na "sise_dupe.exe", potvrdice i nerazumljivi dialog box koji se kasnije pojavi...


[ Ivan Dimkovic @ 22.06.2010. 09:06 ] @
U Windowsu postoji nesto blisko superuseru u linuxu, zove se LOCAL_SYSTEM nalog, i to je verovatno zasto virus radi injekciju u services.exe jer service control manager trci pod sistemskim privilegijama. Opet, da bi virus uradio injekciju u services.exe prilicno sam siguran da mu treba administratorski nivo privilegija.

U Visti/Win7 "obican" administrator ne moze pristupiti sektorima sistemskog diska sa pravima pisanja, ALI - opet, administrator moze instalirati drajver a drajveri trce u kontekstu kernela i nemaju nikakav sigurnosni model vec vide sve sta hoce i mogu da pisu gde hoce. Doduse, 64-bitni Windows ce spreciti instalaciju nepotpisanog drajvera tako da je isplativije malware piscu da instalira neki svoj servis kako bi se dokopao LOCAL_SYSTEM privilegija koje nisu isto sto i pristup kernelu kao drajver, ali su najbolje moguce posle toga ;-)

Opet, ako se sve svodi na to da korisnik "odobri" trcanje necega sa admin nalogom...

Onog momenta kada luser odobri izvrsnom fajlu da trci pod administratorskim nalogom, on je jednostavno dao svu kontrolu nad sistemom (sa default Win podesavanjima) tom procesu - taj proces moze instalirati svoje servise, svoje drajvere (bar na 32-bitnom sistemu) - i sa time preuzeti apsolutnu kontrolu nad sistemom.

[ vlada_vlada @ 22.06.2010. 09:30 ] @
Citat:

U Windowsu postoji nesto blisko superuseru u linuxu, zove se LOCAL_SYSTEM nalog, i to je verovatno zasto virus radi injekciju u services.exe jer service control manager trci pod sistemskim privilegijama. Opet, da bi virus uradio injekciju u services.exe prilicno sam siguran da mu treba administratorski nivo privilegija.

U Visti/Win7 "obican" administrator ne moze pristupiti sektorima sistemskog diska sa pravima pisanja, ALI - opet, administrator moze instalirati drajver a drajveri trce u kontekstu kernela i nemaju nikakav sigurnosni model vec vide sve sta hoce i mogu da pisu gde hoce. Doduse, 64-bitni Windows ce spreciti instalaciju nepotpisanog drajvera tako da je isplativije malware piscu da instalira neki svoj servis kako bi se dokopao LOCAL_SYSTEM privilegija koje nisu isto sto i pristup kernelu kao drajver, ali su najbolje moguce posle toga ;-)

Opet, ako se sve svodi na to da korisnik "odobri" trcanje necega sa admin nalogom...

Onog momenta kada luser odobri izvrsnom fajlu da trci pod administratorskim nalogom, on je jednostavno dao svu kontrolu nad sistemom (sa default Win podesavanjima) tom procesu - taj proces moze instalirati svoje servise, svoje drajvere (bar na 32-bitnom sistemu) - i sa time preuzeti apsolutnu kontrolu nad sistemom.


Huu... ne bash.. windows ima SYSTEM nalog (koji koristi sam OS) i LOCAL SERVICES (koji se koristi za lokalne servise). Postoji jos dosta ugradjenih naloga sa posebnim privilegijama koji dolaze uz win, ali necemo ih nabrajati posto ih ima puno. Ukratko, system.exe radi pod SYSTEM pravima, dok njegova deca trce uglavnom pod LOCAL SERVICES nalogom ili NETWORK SERVICES, ako im treba pristup mrezi (RPC, named pipe-ovi, SMB i ostala mrezna sabraca koja koristi tzv. "integrated windows auth" koji je opet labavo definisan pojam, ali da se ne duzimo sada time).

Svi ovi nalozi su potpuno drugacije prirode od superuser-a pod *nix-ima. Windows security je uredjen kroz prava (rights) i privilegije (priviledges) koje su prekonfigurisane za sve naloge na sistemu. Dakle ni jedan nalog nije specijalan, samo je konfigurian da moze da pridje ovom ili onom delu sistema. Ovo je radikalno drugacije od *nixa gde se u startu vrsi separacija izmedju obicnih usera i superusera koji po definiciji ima prava da radi _sve_. Za prava superusera se moze reci da su hardkodirana na nivou kernela.

Za injekciju DLL-a u services.exe zaista su potrebne Administratorske privilegije.

Nazalost zbog arhitekture sistema, i nije tako tesko izvesti eskalaciju. Kompromitovanje korisnickog naloga je najtezi korak sa kojim se suocavaju pisci malware-a. Sto se tice onesposobljavanja boot-a, za to i nije potrebno sarati po MBR-u, dovoljno je izmeniti boot.ini na root particiji. To je obican fajl kome SYSTEM svakako ima pristup.
[ mmix @ 22.06.2010. 09:32 ] @
Sad sam pogledao, svi dependency DLLovi su u system32 zajedno sa services.exe, tako da mora da imas write privilegije na tom folderu da bi uradio DLL injection, pod uslovom da uopste nesto mozes da menjas. Sa stanovicsta windows 2008r2/win7 sam services.exe moze da menja samo trustedinstaller process a sam trustedinstaller process moze da menja samo sam sebe, tako da se prica svodi na to da ove fajlove ne mozes da menjas ni kao admin ni kao local system, jedini vektor napada na ove fajlove je kroz windows update. Trebalo bi sad vremena proveriti ostale dependent DLLove koje services.exe koristi.
[ Ivan Dimkovic @ 22.06.2010. 09:38 ] @
@vlada_vlada,

Ne trce svi servisi pod LocalService / NetworkService nalogom, ima ih koji trce i pod sistemskim nalogom. Ovi novi (LocalService/NetworkService) nalozi su uvedeni u Visti kako bi se limitirao exposure jer gomila 3rd party developera koristi servise koji su puni potencijalnih rupa, ali i dalje nije zabranjeno kreirati servise sa "matorim" sistemskim privilegijama koje su daleko sire.

Dakle, ti imas prava da servisu das sistemske privilegije pri kreiranju servisa sa CreateService() API-jem (lpServiceStartName* parametar, ako je NULL, servis ce trcati pod LocalSystem privilegijama) - naravno da u Windowsu mozes i LocalSystem nalogu ograniciti privilegije ali to bi kompromitovalo funkcionisanje sistema, a po default sigurnosnim polisama taj nalog ima pravo da, recimo, pristupi svim korisnickim fajlovima na sistemu. Doduse, u Visti LocalSystem nije u stanju da menja sistemske fajlove (to moze samo TrustedInstaller) i to je glavna razlika izmedju root-a u Linuxu koji je svemocan i LocalSystem-a na NT-u - ali, opet, LocalSystem ima prilicne privilegije.

Ako obicnom user-level procesu das administratorske privilegije, on ima pravo da pozove CreateService() API i da instalira svoj servis u sistem - tom servisu je moguce dodeliti LocalSystem nalog, i takav servis ima prilicno siroka prava na sistemu, sto malware autoru daje mogucnost daljeg kompromitovanja sistema.


MSDN:

Citat:

lpServiceStartName

The name of the account under which the service should run. If the service type is SERVICE_WIN32_OWN_PROCESS, use an account name in the form DomainName\UserName. The service process will be logged on as this user. If the account belongs to the built-in domain, you can specify .\UserName.

If this parameter is NULL, CreateService uses the LocalSystem account. If the service type specifies SERVICE_INTERACTIVE_PROCESS, the service must run in the LocalSystem account.

If this parameter is NT AUTHORITY\LocalService, CreateService uses the LocalService account. If the parameter is NT AUTHORITY\NetworkService, CreateService uses the NetworkService account.

[ mmix @ 22.06.2010. 09:59 ] @
Malo je zbunjujuca prica novinara bila od starta, ovo nije DLL injection, to je druga prica od service spawn, sto je ovde slucaj. Ovaj virus zapravo spusti sebe kao DLL i onda podigne servis kroz API koristeci neki exe kao nosac (verovatno kroz svchost.exe)

A i mislm, stvarno je preterana ova prica, antivirusa ima ko pleve i svaki bi ovo istrebio momenda kad .cmd fajl padne u system32. Ne vidim u cemu je FAIL i sto je ovaj virus bas toliko mumfarking u odnosu na ostale?
[ vlada_vlada @ 22.06.2010. 10:01 ] @
Citat:


@vlada_vlada,

Ne trce svi servisi pod LocalService / NetworkService nalogom, ima ih koji trce i pod sistemskim nalogom. Ovi novi (LocalService/NetworkService) nalozi su uvedeni u Visti kako bi se limitirao exposure jer gomila 3rd party developera koristi servise koji su puni potencijalnih rupa, ali i dalje nije zabranjeno kreirati servise sa "matorim" sistemskim privilegijama koje su daleko sire.

Dakle, ti imas prava da servisu das sistemske privilegije pri kreiranju servisa sa CreateService() API-jem (lpServiceStartName* parametar, ako je NULL, servis ce trcati pod LocalSystem privilegijama) - naravno da u Windowsu mozes i LocalSystem nalogu ograniciti privilegije ali to bi kompromitovalo funkcionisanje sistema, a po default sigurnosnim polisama taj nalog ima pravo da, recimo, pristupi svim korisnickim fajlovima na sistemu. Doduse, u Visti LocalSystem nije u stanju da menja sistemske fajlove (to moze samo TrustedInstaller) i to je glavna razlika izmedju root-a u Linuxu koji je svemocan i LocalSystem-a na NT-u - ali, opet, LocalSystem ima prilicne privilegije.

Ako obicnom user-level procesu das administratorske privilegije, on ima pravo da pozove CreateService() API i da instalira svoj servis u sistem - tom servisu je moguce dodeliti LocalSystem nalog, i takav servis ima prilicno siroka prava na sistemu, sto malware autoru daje mogucnost daljeg kompromitovanja sistema.


Tacno, moguce je podesiti prava servisa kroz API (a i kroz mmc snapin koji predstavlja uopbicajeni adiminstratorski alat za konfigurisanje ovih stvari). Nazalost, pod XP-om npr. vecina servisa trci pod SYSTEM pravima, iako ne bi trebalo..

LOCAL SERVICE i NETWORK SERVICE nalozi postoje kroz kompletnu liniju NT servera - nisu uvedeni u Visti.

Nego, ako se vratimo na originalni post:

Citat:

“When executed, Backdoor:Win32/Yonsole.A injects itself to services.exe and drops a DLL file to the <system folder>, for example: f00165500k.cmd,” Feng added. “The DLL file contains the backdoor functionality and may be detected as Backdoor:Win32/Yonsole.B. Backdoor:Win32/Yonsole.A installs the dropped DLL as a Service DLL to make sure it is loaded as each Windows start, for example: adds value: "ServiceDll"; with data: "<system folder>\f00165500k.cmd"; under key: HKLM\SYSTEM\CurrentControlSet\Services\F00165500K\Parameters.”


Vidimo da autor kaze da se virus injektuje u services.exe. Ja sam pretpostavio da je u pitanju "dll injection", no to ne mora da bude slucaj. Mozda se virus prosto instalira kao servis. No i za jedan i za drugi scenario potrebna su prethodno Administratorska prava.

Citat:

Sad sam pogledao, svi dependency DLLovi su u system32 zajedno sa services.exe, tako da mora da imas write privilegije na tom folderu da bi uradio DLL injection, pod uslovom da uopste nesto mozes da menjas. Sa stanovicsta windows 2008r2/win7 sam services.exe moze da menja samo trustedinstaller process a sam trustedinstaller process moze da menja samo sam sebe, tako da se prica svodi na to da ove fajlove ne mozes da menjas ni kao admin ni kao local system, jedini vektor napada na ove fajlove je kroz windows update. Trebalo bi sad vremena proveriti ostale dependent DLLove koje services.exe koristi.


Za DLL injekciju DLL-ovi uopste ne moraju da budu u %WINDIR%\system32 folderu. Mogu da se nalaze bilo gde, dovoljno je da SYSTEM moze da ih cita. Prilikom injekcije image services.exe-a se ne menja.

Kada bi se menjao image, bilo bi dovoljno ubaciti staticki DLL dependency u PE header-u, ali to nije DLL injection.
[ vlada_vlada @ 22.06.2010. 10:04 ] @
Citat:

Malo je zbunjujuca prica novinara bila od starta, ovo nije DLL injection, to je druga prica od service spawn, sto je ovde slucaj. Ovaj virus zapravo spusti sebe kao DLL i onda podigne servis kroz API koristeci neki exe kao nosac (verovatno kroz svchost.exe)

A i mislm, stvarno je preterana ova prica, antivirusa ima ko pleve i svaki bi ovo istrebio momenda kad .cmd fajl padne u system32. Ne vidim u cemu je FAIL i sto je ovaj virus bas toliko mumfarking u odnosu na ostale?


Pa da, novinari digli prasinu.. nije ovo nista znacajno.
[ vlada_vlada @ 22.06.2010. 10:12 ] @
Citat:

Ne trce svi servisi pod LocalService / NetworkService nalogom, ima ih koji trce i pod sistemskim nalogom. Ovi novi (LocalService/NetworkService) nalozi su uvedeni u Visti kako bi se limitirao exposure jer gomila 3rd party developera koristi servise koji su puni potencijalnih rupa, ali i dalje nije zabranjeno kreirati servise sa "matorim" sistemskim privilegijama koje su daleko sire.


LocalSystem izgleda postoji od Viste. LocalServices/NetworkServices su stari nalozi. Interesantno.

http://msdn.microsoft.com/en-us/library/ms684190(v=VS.85).aspx
[ Ivan Dimkovic @ 22.06.2010. 10:17 ] @
Si siguran

http://www.windowsnetworking.c...LocalSystemaccountcontext.html

^ ovo je iz 2004

http://support.microsoft.com/kb/132679

^ ovo je za NT 3.5

Koliko se secam, LocalSystem je mator koliko i NT.
[ vlada_vlada @ 22.06.2010. 10:22 ] @
Citat:

Si siguran

http://www.windowsnetworking.c...LocalSystemaccountcontext.html

^ ovo je iz 2004

http://support.microsoft.com/kb/132679

^ ovo je za NT 3.5

Koliko se secam, LocalSystem je mator koliko i NT.


Nisam siguran :)

Na XP-u ne mogu da nadjem "LocalSystem" medju BUILTIN nalozima, a W7 masinu nemam pri ruci trenutno.

Mozda ovo donekle razjasnjava stvar http://support.microsoft.com/kb/132679:

Citat:

NOTE: System Account and This Account: Local System use the same account.


[ Impaler @ 22.06.2010. 11:09 ] @
pise i u samom clanku backdoor trojan, koji moze sa remote servera primati instrukcije, ali tek nakon infekcije
(remote exploit je nesto drugo oboje imaju remote u nazivu)
[ Ivan Dimkovic @ 22.06.2010. 11:14 ] @
Koliko kapiram, taj backdoor deo je samo za slanje instrukcija - skoro svaki danasnji trojan ima i neki listener kojim mozes da mu komandujes.