Žilvinas Sadauskas - Genialu tai, kas paprasta.

Skype viruso elgesio analizė

Norėčiau pradėti nuo to, kad maniau jog EP parašytas .bat failas padaro viską, kad užkirstų kelią šiam virusui. Tačiau šiandien buvau nemaloniai nustebintas, kai paskambino mano panelė ir pasakė, kad jai atsidarinėja daug command line’ų ir kažkas vyksta. Tuomet supratau, kad šį “virusiuką” rašė tikrai ne mėgėjai ir tai yra tikrai didelis skausmas subinėje :) .

Šiuo metu bandau daryti šiokią tokią analizę ir papasakosiu, ką gero suradau.

Pirmiausiai, parsipūčiau update’us ir paleidau antivirusinę programą AVG. Ši iš karto rado kažkokį I-Worm/Generic BCD failą, kuris bazuojasi C:\Documents and Settings\HP\Local Settings\Temp\bhxystzjpgq.exe . Tuomet nusprendžiau patikrinti, ar mano paprastutis routeriukas DLink nefiksavo kokių nors atakų. Atsidariau logus ir ten pamačiau porą aktyvių sesijų į neaiškų IP:

192.168.0.106:1111 TCP 195.82.177.133:18777 62451 3597

Nuėjau tuo IP ir pamačiau baltą lapą, tai reiškia kad 80 portas atidarytas, tačiau nieko nėra.

Nusprendžiau paskanuoti panos kompą su Network Mapper’iu. Įvykdžiau komandą:

badas@badas-laptop:~$ nmap -A -T4 192.168.0.106

Starting Nmap 4.20 ( http://insecure.org ) at 2007-04-19 21:54 EEST
Interesting ports on 192.168.0.106:
Not shown: 1691 closed ports
PORT STATE SERVICE VERSION
80/tcp open http?
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn
443/tcp open https?
445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds
1025/tcp open msrpc Microsoft Windows RPC
2 services unrecognized despite returning data. If you know the service/version,
please submit the following fingerprints at http://www.insecure.org/cgi-bin/ser
vicefp-submit.cgi :
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
SF-Port80-TCP:V=4.20%I=7%D=4/19%Time=4627BB0A%P=i686-pc-linux-gnu%r(GetReq
SF:uest,1A,”HTTP/1\.0\x20404\x20Not\x20Found\r\n\r\n”)%r(HTTPOptions,57,”\
SF:xda_\x03\x9b-rZ\xbb4\xebA\x80\xd0L2\xd9\x0b\xcf\x1a\xff\x98\xfb73\xaa\x
SF:8f-\xb2\x9fhW\xc6I\xbe\xa5@\x01\x05oQ\.AR\xbc\x90\x88<\xf9\xd1\xceg\xec
SF:m\xbac\xb8\xc9f\x1fD\xe5\xd2\x9b\x90\xc1\xfe\xd7\x9c\]\xea\xd3h\xb9\x96
SF:\x8f\xf4\xd5\x02\x0b@\xb1\.GLM\x1aC”)%r(RTSPRequest,4D,”\xfa\xa9\xb9T\x
SF:a9S\xaf!\x8f\xc8\xca\x19\xde\x9e\xbd\xd0\x1d\xb2\xfb\xb1\xf4N\xc0s67\xc
SF:c\xc3\xaf2\xe5\xaf\xdf\$\xc5\x0fk53\x8d,\xe1y\x95\xd4ZTy\xe6\x9f\xc4eR\
SF:x1b\x10A~W\x1c\xddjS\xe89\x16\x0ftU\x82\x8b\xc01\xae\xc7\xcc\xcd\x9a”)%
SF:r(FourOhFourRequest,1A,”HTTP/1\.0\x20404\x20Not\x20Found\r\n\r\n”)%r(RP
SF:CCheck,31,”"EL\x20\xb7\r\x82\xdf\x18,\x1f\x95\xd3l\xbb\x80\xc9o\xf5\xe
SF:d&\xdd\xeb\xe5\xe8\x14\xc0`\xd93\xd6\xe7B\x83\xd2\x91\x99\x9d\x15D&\xe2
SF:\xbe\x9e\x99\xc6\xe9\xb4\)”)%r(DNSVersionBindReq,6A,”\xe7\x16S\x12\xadC
SF:\xaeX\xbbT\xbc\xe0q\x02q5\xcd\xc1\x14\xc0\xac0\x0bju\xe9\x9d\xc3~P\xbcH
SF:\x08\xc4\xb6;\x82;H!\xce\xe0\n\x18\xeeoD=H\x19v\xef\xd45\xe2k\x20\x11\x
SF:0e\xa7,\xad\xfa\xa3\xf8\t\xa6_\x84%\x12\xdb\xd0\x01>\x17\xdc\x9d\*\x13\
SF:xa8\xf9\xd6\xcf4\x15BK\x80\xf1n\x87\x8c\x8dZ\x83X\xe9\x06\?\xe4\x05r\xb
SF:b0\xe1″)%r(DNSStatusRequest,6E,”\xfa%K\xeb\xd2\xc4a\x8fNT\x1aBI\xcf\xb0
SF:\x91z\x01\xa3\x90\xd39\x18\x1e\x92Cv\xc0\xbd\xe0Q\xb2\x87\xf0\x99r=`\xd
SF:d\x19\xe7\xdc\xbbaja_\xea\x8f\xf4\xd5\x02\x0b@\xb1\.GLM\x1aC\x18\xa9\xc
SF:6\xff\xa4\xc52{\xf0\xa1\^\xb7\xfc=J\xb3\xc8\x99\xf6oT\xb5b\xeb\xa0\x91\
SF:x8e’\xac-z#x\x89&\xdf\x04\xa5\x92\[P\x81\xbe\x97\x1d\xaa\x93\(")%r(SS
SF:LSessionReq,9A,"%&H\x99\x02\xa0\+!\xc5\[\x1d\xba>\x8a\xb95\xcaL\xac\x0b
SF:\xf63bc\x9a\xc7\x9eSk\r\r\xeb\xdeg\x83\x7f\x1f\xf8\x005\x9c\xf4\xa2\x02
SF:u\xb1\x96\xc0\xe38I\xe6\x9f\xc4eR\x1b\x10A~W\x1c\xddjS\xe89\x16\x0ftU\x
SF:82\x8b\xc01\xae\xc7\xcc\xcd\x9a\xc3\x98\)F\x7f\$E\xb2\xfbp!\xde7\|\xbd\
SF:xca3H\x19v\xef2u\x818\xd7\x12J@\xe4/\xe6\xd4M\xb6K\xba\xd3\x98~2\xbf&\x
SF:f2\x80\x20\x9a\xc2\x97\xd9\x1e\x12\xdf\t\xb8\xfa\xf9\xb3\xc9\x94\x95\xf
SF:1J\x19N\xf8>\xa1v\xd3\x18\xfd=\x1d")%r(SMBProgNeg,90,"\xf2Z;G\x15\x93\x
SF:f9j8\xd2\xca\xb8\xb3\xe9\x18\xf0\x05\xa60\xf66ts\x18\$\x91e9c\x16\xde\x
SF:a0\x0b\x10PM~y\x1a\x17B\nq\xd9K\xdc\xb0D\x15BK\x80\xf1n\x87\x8c\x8dZ\x8
SF:3X\xe9\x06\?\xe4\x05r\xbb0\xe1\x9e\xf7<}\x8a\xf3\x08\xd96\xaf\x94\xf5\x
SF:a2\+\xdd\r;jk\x13\xe8\x11u\xad\xb9\xe0I\xf12P\xe3\xcd\xed8q\x14\x06#U\x
SF:bc\x8ev\x8e\x80\xb8q\xaaE\xd8\xcf9\xec\x12\xb8\x06\xad\$\xcb\x90\x95\[\
SF:x89\x85\x90\xb73\x0e\x20\x19\x16\x10E\xd2\xfd\xc1");
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
SF-Port443-TCP:V=4.20%I=7%D=4/19%Time=4627BB0F%P=i686-pc-linux-gnu%r(HTTPO
SF:ptions,33,"H\^\x88\xb2\x86\xca\xa3\x1bFBt\x16\xb9\xad\xd3\x9a\x17\xe6\x
SF:12\x1ef3\|;\+\xca\xd4A\xa2\x1e\xbc\xd8\x84\xca\xbd\xb9\x1b\xc5\.n\xb9N\
SF:xf3\xaeNk\xc5\xa1\xf5\xa2\+")%r(SSLSessionReq,A5,"\xdd\xe7\xd6\xf9M\x04
SF:/!\x85\x8fkR\xaf\xac\xf7\xb93\(\xfc\xfe\n\x9a\x96\xc0Ag\x9f3\xfe8,\xe9\
SF:x9b\xb6\xcb\x9b3\x0fU\x88<\x9eG\xcf\xbdm\xc4\r\xa9\xc6\xff\xa4\xc52{\xf
SF:0\xa1\^\xb7\xfc=J\xb3\xc8\x99\xf6oT\xb5b\xeb\xa0\x91\x8e'\xac-z#x\x89&\
SF:xdf\x04\xa5\x92\[P\x81\xbe\x97\x1d\xaa\x93\(yVO\xb4\x95\xc2\xcb\0q\xe
SF:e\x07\x0c\x92k#,\x19a\xe5\xfeJ\x93\x91\ri\xff\xd4\xbc:\xa4W\xd7\x94\xd4
SF:\.&\x0c\xd5\xbc\x1a3Rf\xec\x0eSX\x19\xd3\n\xbf\x8b\x1c\xb77I\x04\x98\x8
SF:e\x03\x0ee\x96\xb7<\[\xa3L\x0f")%r(GetRequest,1A,"HTTP/1\.0\x20404\x20N
SF:ot\x20Found\r\n\r\n")%r(RTSPRequest,3C,"b\xf8{;~\xa3\x81\xcfMJ\xbf\xceD
SF:K\^\xa8R;e\x1d\x1f\x87\x8d\x9b\xd2\x82h\xba\x1b\x11\xef\x87\xfe'l2\x81\
SF:x92\^\(6\x8c\xaf\x16\x8d\xe5\x86w\x7f\$E\xb2\xfbp!\xde7\|\xbd\xca")%r(R
SF:PCCheck,57,"\*x\|\x8f\xc4b\xffXx\x8aV\)\xe5\x18\x81\x13\xdb"\rO\xa4\xe
SF:ac\xa1sx\xbbg\xc5\rEyDsZ\xf3>\x1b\)j_\x83\xf583\x9c\xc3\xbe\xf7<}\x8a\x
SF:f3\x08\xd96\xaf\x94\xf5\xa2\+\xe0\xd1\xceg\xecm\xbac\xb8\xc9f\x1fD\xe5\
SF:xd2\x9b\x90\xc1\xfe\xd7\x9c\]\xea\xd3h\xb9″)%r(DNSVersionBindReq,42,”X\
SF:xa4\xe0\x89\xd3\x8d\x9a\x034\xca\xaf\]\xf9\n\0\xd2\xfd&C\x1b\xd3&\x8e\x
SF:83\xed\x16\xd6\|\xd7M14\xb5L/\xb3\xd3\x18\xab;\x12K\xb6c\xaeC_\xfeVO\xb
SF:4\x95\xc2\xcb\0q\xee\x07\x0c\r\xda\x03\xd8i\x86\xbf”)%r(DNSStatusReques
SF:t,48,”Ndo\xefb\nh\xc2Ju!8\[AR\xf7\x01\xdb\x1e\x04\x1c\xfa_\xe9\+\x93\x0
SF:c\xc1\xc4\n1J&\x10\xad\^9t\xf8l\+M\xf3\x8c\^\x84\xc0\xe2\x85\xf2;\xb0a\
SF:x1ew\xbc\xfd\ns\x88Y\xb6/\x14u”\xab`QN\xe7l”)%r(SMBProgNeg,B4,”\xa5k\x
SF:a6\x87j\xaca\xfe\xce\xd3!\x8b\x02′\x99\xf0\xf5\xeb\xeb\xf2\|\x87\xce\xe
SF:0u\xbb\x9f\r\xd6\+\xbf\xdbV\xa0\xdbw\xd6\x97\x82C\x1f\xe18\x0b\x81\xde\
SF:+A\xa9\xc6\xff\xa4\xc52{\xf0\xa1\^\xb7\xfc=J\xb3\xc8\x99\xf6oT\xb5b\xeb
SF:\xa0\x91\x8e’\xac-z#x\x89&\xdf\x04\xa5\x92\[P\x81\xbe\x97\x1d\xaa\x93
SF:\(yVO\xb4\x95\xc2\xcb\0q\xee\x07\x0c\r\xda!\x01x\x0c\xb4\xa9\x97\xcc\xf
SF:4\x91J\xd8H\xde\(\xe5}y\xf2IE}\x14\xb4\x97\x81\xf8\x8a\xc9\xf9\$`\xb10\
SF:x91`\x9d\x97p\t\(\|\xdd\xb0<;\xf6\xbb\xbb\xb1\xe2\xa8\x08-\xfa\xb3\xd3\
SF:t\x05\xca\xe5\xd9\x1c\xa9\x9b\x92{\x88\x99\xfc”);
Service Info: OS: Windows

Service detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ .
Nmap finished: 1 IP address (1 host up) scanned in 119.077 seconds

Pastebite, kad yra du neaiškūs portai http? ir https?, kurie yra atidaryti? Jų čia būti neturėtų, kadangi, tai yra paprasčiausias kompiuteris su Windows XP. Niekas čia WEB service’ų nepaleidinėjo. Kas dar įdomiau, NMAP pateikia fingerprintus, kuriuos grąžina šie servisai, ir kas įdomiausia juos atkodavus į normalius simbolius gaunama štai kas:

SF-Port80-TCP:V=4.20%I=7%D=4/19%Time=4627BB0A%P=i686-pc-linux-gnu
%r(GetRequest,1A,”HTTP/1\.0 404 Not Found “)%r(HTTPOptions,57,”\xda_�-rZ�4??2???3�\x8f-��hW?��@oQ\.AR���

Čia pateikiu tik pavyzdį, o ne visą iššifruotą kodą. Galima pastebėti, kad yra nekoduotų simbolių .AR ar pvz .GLM . Tai buvo tipiniai infekuoti failai, kurie buvo parsiunčiami į jūsų kompiuterį. Iš kolegos neseniai įgytos žinios man leidžia daryti prielaidą, kad backdoor’as atidaromas per 80 portą. Jo niekas neužblokuos, jį sunku pastebėti ir panašiai. Juk be 80 porto internetas yra niekas, todėl ir antivirusinės jo nepastebi, o tuo tarpu nenaudėliai smaginasi, turėdami priėjimą prie jūsų kompiuterio

Dar vienas įdomus dalykas, kad mano manymu apkrėsti kompiuteriai kažkokiu būdu sinchronizuojasi ir pranešinėja apie savo būklę kitiems, be to turbūt blogiukai šį apkrėstų kompiuterių tinklą naudoja panašiu į Torrent principą. Torrent’ų seederių susekti neįmanoma, nes pats kūrėjas nemoka surasti kelio atgal, taip ir viruso valdytojai greičiausiai naudojasi keliais apkrėstais kompiuteriais, kad prieitų prie jūsiškio ir sumėtytų pėdas.

Truputį plačiau apie šią technologiją. Sukonstruojamas paketas į kurį įkišamas papildomas kodas. Su paprastu DNS serveriu viskas bus tvarkoj, serveris arba jį atmes, arba neskaitys papildomos informacijos. TAČIAU! Jūsų kompiuteryje virusas prirašė blogų programų ir pakūrė porą service’ų, kuriems gali būti nurodyta, kad jie vykdytų komandas gautas per tuos portus, turbūt tai galėtų paaiškinti iššokančius CMD langus ir šokinėjantį kursorių po jį. Windows kataloge pradėjo atsiradinėti failai datXX.exe, kur XX buvo vis kitokie simboliai, tačiau užkilinus skypePM ir dar porą procesų failai nustojo kurtis. Jie lengvai išsitrynė.

Paskanavau nutolusį kompiuterį, kuris man pasirodė įtartinas. Pas jį taip pat buvo atidarytas 80 ir 433 port’ai. Iš IP galima spręsti, kad tai yra paprasto lenkų internauto (arba viruso kūrėjo, kas mažai tikėtina) adresas. IP neskelbsiu viešai, jeigu kažką sudomins, arba jeigu kas nors turit irgi įtartinų IP galėsim sulyginti.

Rytoj, analizę į savo rankas perims kitas žmogus. Tikėkimės iš jo sulauksim įdomių žinių :)



One Response to “Skype viruso elgesio analizė”

  1. as Says:

    skype pats atisdaro http ir https portus savo reikmem, pa’defaultu..

Leave a Reply

counter