Saltar al contenido

Inyección de código malicioso en archivos PHP

A raíz del incidente de ransomware se debieron revisar todos los servidores y equipos que pudieron haber sido infectados en el incidente. Aunque el ataque fue eminentemente hacia Windows no se podían descartar los equipos con Linux así que se revisaron también ciertos servidores y les dimos una pasada con ClamAV.

Días después de haberlos revisado recibí aviso que uno de los servidores Web corriendo Linux tenía el Wordpress con problemas de que no podían editar sus contenidos, así que nos pusimos manos a la obra y encontramos que el núcleo de ésta herramienta se había actualizado automáticamente y el tema ya no era compatible.

Durante el arreglo de esto encontramos archivos PHP con nombres extraños que no parecían ser parte de la instalación, al abrirlos encontramos que eran archivos ofuscados con código en BASE 64 con codificación y arreglos para confundir a las personas, en el siguiente estilo:

<?php
 $nznqgsllz = 3754; function oyvql($ipltxxmvk, $pfifli){$dedfpl = ''; for($i=0; $i < strlen($ipltxxmvk); $i++){$dedfpl .= isset($pfifli[$ipltxxmvk[$i]]) ? $pfifli[$ipltxxmvk[$i]] : $ipltxxmvk[$i];}
 $xahdohhjl="base" . "64_decode";return $xahdohhjl($dedfpl);}
 $xpkurw = '7QuyYUeBaL7N6DCXKjt4dLupaL6ATj6B6Arr0R4JF8tXT5upKDUh0FI4TDIp';

Sí, eran archivos diseñados para un propósito malicioso, rápidamente nos pusimos a analizar más directorios y encontramos muchos más archivos. En el index.php fue donde encontramos, luego de decodificar, esto:

Este código era el que hacía funcionar lentamente el sitio Web desde fuera del mismo, desde adentro el código no funcionaba y por eso el mismo servidor reportaba que todo estaba bien cuando era todo lo contrario.

Identificamos rápidamente la fecha y hora en la cual se habían creado la mayoría de archivos maliciosos, a excepción del index.php que reportaba fechas y horas mucho después que los demás archivos y usando grep listamos los archivos intrusos y eliminamos.

Luego de la limpieza nos pusimos a investigar qué pudo haber ocurrido, aparte de que el Wordpress estaba bastante desactualizado encontramos que uno de los plugins (el mismo que contenía el archivo incluido en el index.php) en la versión que tenía estaba abierto a ataque mediante un exploit documentado. Dentro del directorio de este plugin encontramos otros archivos maliciosos que se cargaban con el index del sitio Web. Y este plugin ni siquiera se estaba utilizando, lo deshabilitamos y eliminamos.

He leído de muchos casos en los que esto ocurre pero nunca pensé que fuera a tener la oportunidad de trabajar en algo así, realmente me causó mucha emoción y pude ver cómo es que estas cosas pueden pasar y pasan todo el tiempo. Sé que en la central no estaban tan felices de que les hayan inyectado código malicioso en uno de sus servidores pero como se dice; así es la vida.