Buscando Shells de PHP y otros backdoors con ClamAV

Cómo bien es sabido una de las principales desventajas de la creación de contenido dinámico en sitios con X scripting del lado del servidor es la vulnerabilidad que se abre al poder escribir en el sistema de archivos del servidor web. Es común el uso de formularios de subida de archivos mal validados o con vulnerabilidades conocidas en el caso de que se use una herramienta tipo CMS.

Este problema también puede ser aprovechado en un hosting compartido con mala aplicación de privilegios o con configuración de php que permita funciones como shell_exec o con safe_mode inactivo por poner un ejemplo. Con el simple hecho de subir una shell de php se comprometen los datos de los demás sitios alojados dando lugar a robo de información y defacing entre otras cosas.

Una solución que implanté en un servidor de manera provisional fue la que me salvó de “webmasters” despreocupados y usuarios malintencionados. El antivirus ClamAV contiene una base de datos de Shells de PHP identificados a través de checksums y uso de funciones para encondificar/descodificar código en tiempo real (base64_decode) que hace match con la mitad de las shells más usadas según las pruebas que realizado además que nunca me ha dado un falso positivo como si lo hacen otras herramientas como chkrootkit o rkhunter.

La manera más sencilla de monitorear lo que se escribe en el sistema de archivos es ejecutar una búsqueda recursiva (clamscan -r) sobre la raíz de cada virtual host o desde la raíz del servidor cada cierto tiempo atravéz de un cronjob y notificar los resultados por mail/sms a como root manda.

Los resultados más comunes con los que me encuentro son:

  • PHP.Hide FOUND
  • PHP.C99-9 FOUND

Acá el código del script.

NOTA: Necesitás instalar los paquetes clamav y clamav-db (el antivirus y su base de datos) que normalmente se incluyen en los repositorios principales de cualquier distro común y silvestre.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: