[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
REPOST: VIRUS: Hostile Takeover
Tak tady to je...
----8<---------------------------------------------
Panove, pravje sem dokoncil analyzu viru ktery zapujcil
jim postizeny kolega :-)
Takze: Je to pekna svine, ale nastesti neprilis destruktivni.
Funguje pouze na V37+, na starich systemech dela mrtvyho brouka.
Mechanizmus prilinkovani k executable je klasicky - na konec
prvni kodove sekce a zmeni prvni *jsr* *(xxx,a6)* nebo *jmp* *(xxx,a6)*
na skok na sebe. Vetsi cast viru je zakodovana nahodnym cislem ktere
se generuje v okamziku infekce, to ze je exac zavirovany si zjistuje
pomoci posledniho longu v kodove sekci. Na rozdil od Commandera kterehoz
sem taky rozrejpal (a Ebolu a HNY) neni ten posledni long konstantni
(snadno detekovatelny) ale kdyz prexorujete 2 wordy ktere ho tvori,
dostanete $FAB4. Toto ID se generuje taky pri infekci. Je tu tedy jista
snaha o zamaskovani, ale k dokonalemu polymorfismu to ma daleko :-)
Pokud jde o zpusob infekce, virus si spusti vlastni task. Ten svuj task
pojmenuje nahodne podle 1.-16. knihovny v pameti, bez koncovky .library.
Neinfikuje soubory vetsi nez 128kB. Neinfikuje soubory .lha, .lzx, .DMS
a ikony. Byl tu taky pokus neinfikovat programy jejichz jmeno zacina na
VIR, ale tam ma asi buga - pac pred tim VIR by muselo byt este jedno
pismenko (jakykoliv) aby to zabralo.
Netradicni je u tohoto viru zpusob naveseni se na dos - on ho totiz uplne
obchazi :-) Nelepi se totiz na (zurive hlidane) vektory dosu, ale
je POD dosem - na urovni paketu! Pri inicializaci si vosaha vsechna diskova
zarizeni v systemu, najde jejich message porty pres ktery se jim posilaji
pakety, a presmeruje z nich signaly na sebe. Dyz pak device dostane paket,
task viru dostane signal misto nej a honem se podiva, na ktery se zarizeni
to neco prislo... sebere paket, a dyz je to ACTION_LOCATE_FILE (neboli Lock())
nebo ACTION_EXAMINE_NEXT (neboli ExNext()), nabehne na to. Ostatni pakety
propousti beze zmeny. U ACTION_LOCATE_FILE infikuje pokazde (skoro vsechny
operace se souborama), u ACTION_EXAMINE_NEXT je nakazeni nahodne s
pravdepodobnosti asi 1:16. Takze kdyz si otevrete file requester do
adresare s programama, neinfikuje hned fsechny :-)
Tady je videt, ze message porty filesystemu skytaji netusene moznosti pro
viry :-) Tento zpusob kontroly je pomerne tezkopadny a predpoklada
(blahove) urcity signal pro message porty vsech procesu filesystemu...
ja bych spis vyuzil nedokumentovanych vlastnosti messageportu (kdyz
nastavite PF_ACTION na 3, zavola se pri prichodu message na port rutina
jejiz adresa je v mp_SigTask jako normalni podprogram - pssst, nic sem
nerek :-)
Virus je taky vybiravy pokud de o to kde ma infikovat - evidentne
nechce fachat na disketovce, pac infikuje jen na mediich ktera maji >4MB
celkovou velikost, sou zapisovatelna a je tam jeste majinkej zdibik mista
(5kB). Asi je to snaha fungovat pouze na harddisku, kde si user vzhledem k
rychlosti nemusi ani vsimnout ze se neco deje...
Odstraneni viru by melo byt v 99% uspesne... a neobsahuje zadne bojove
hlavice, pouze textik "Smeg! It's a Hostile TakeOver! (Better call
Markus!)". Ten se ani sam neukaze, proste tam je...
Napadeny soubor se zvetsi presne o 1900 byte. Uvnitr viru je pocitadlo
generaci, ten co sem do nej rejpal mel napocitano 287 generaci...
Nezastavi ho ani write-protect bity, proste je zrusi, infikuje soubor,
obnovi, a nastavi puvodni datum souboru :-) Dyz visi v pameti, zabira
2800 byte chipram....
Nooo... to by bylo asi tak vsechno... zdrojak sem vygeneroval, ale
nedam z jednoducheho duvodu - aby naky hovado nenapadlo delat klony.
Takze kdo chcete klonovat, musite HOOOOOODNE ukecavat :-))
Takze zatim bye... mejte se
--------8<------------------------------------------
Pokud ovsem to, co mate, skutecne JE "Hostile Takeover"...
Pokud chcete mit jistotu, poslete nejakej (kratkej!) infikovanej fajlik,
ja se juknu a reknu.... Nebo se podivejte na seznam tasku, jestli
tam nejni nejakej podezrelej task kterej se jmenuje stejne jako nejaka
knihovna bez .library...
--
__ __
| \/ |
| |\/| |
|_| |_|amlason