Detectar archivos hackeados con PHP y SuperScan

Por | 2016-08-12T16:53:36+00:00 30/09/2015|Varios|Sin comentarios

Una vez más volvemos a hablar de seguridad en sitios web, ya que últimamente es un tema que en Raiola Networks tenemos muy cerca.
Cada día nos llegan más clientes nuevos con sitios web hackeados desde otros proveedores y nos encomiendan la misión de desinfectar y reparar sus sitios web para que queden como antes, nosotros lo hacemos encantados evidentemente ya que es nuestro trabajo, pero también nos gusta hacer especial mención a la prevención para no tener que llegar a estos extremos tan radicales.

La prevención para la seguridad web no es igual a obsesionarse con la seguridad, existen puntos intermedios en los que debes preocuparte por la seguridad de tu sitio web pero no llegar a obsesionarte. Nosotros como proveedor de hosting y especialistas en WordPress normalmente vemos ambos casos, gente que se obsesiona con la seguridad de su web y acaba afectando al rendimiento, y por otro lado gente que pasa olímpicamente de la seguridad de su web y se la acaban hackeando.

detectar archivos infectados

En este caso vamos a hablar de un script PHP bastante peculiar que al ejecutarlo continuamente mediante una tarea CRON nos ayuda a detectar que archivos han cambiado en nuestra web.

¿Y cuál es la razón de que queramos ver que archivos han cambiado? Normalmente cuando usamos un CMS como WordPress, los archivos PHP del sitio web no suelen cambiar, sino que los cambios se realizan en la base de datos y al hosting solo se suben las imágenes, por lo que si monitorizamos los cambios y modificaciones en los archivos PHP podemos detectar inyecciones de código malicioso en los archivos de nuestro theme o plugins, que es lo normal que suele pasar cuando hackean un WordPress.

 

Instalar SuperScan

Para instalar el script PHP SuperScan no se necesitan unos requisitos muy altos, apenas necesitamos un servidor que ejecute PHP y el acceso al gestor de tareas CRON del servidor, también necesitaremos un servidor MySQL donde se guardará la base de datos.

Lo primero que debemos hacer es descargar desde AQUÍ los archivos de SuperScan en un archivo ZIP.

Después de descargar los archivos, descomprimimos el ZIP y subimos los archivos en una carpeta a nuestro servidor o hosting, en este caso se trata de un hosting cPanel así que lo he subido dentro de la carpeta de la cuenta de hosting, pero no dentro del “public_html” de mi sitio web:

detectar archivos infectados

Lo primero que vamos a hacer es crear una nueva base de datos e importar el archivo SQL llamado “CreateTables.SQL”.
El proceso de creación de la base de datos cambia dependiendo del panel de control usado, de ahí que no lo documentemos en este tutorial, pero la importación normalmente la haremos con la herramienta PHPMyAdmin.

detectar archivos infectados

Ahora vamos a configurar algunos parámetros en los archivos del script SuperScan, necesitamos configurar algunas cosas importantes para que funcione como por ejemplo la conexión con la base de datos MySQL y el directorio donde se escanearán los cambios en los archivos.

Vamos a empezar por la parte fácil, nos vamos a editar los archivos y editamos el archivo scandb.php configurando los datos de conexión a la DB que hemos creado anteriormente:

detectar archivos infectados

Una vez configurados los datos de conexión a la base de datos MySQL, vamos a configurar el archivo configure.php que tiene bastante más “chicha” que el scandb.php.

Vamos a empezar a configurar por partes las distintas variables y a explicarlas:

  • Primero vamos a configurar el nombre de la cuenta (no tiene por qué ser el nombre de la cuenta de hosting, es solo identificativo).

$acct = ‘Cuentadeejemploponloquequieras’;

  • Ahora vamos a configurar una IP en caso de que el servidor sea remoto, si es local dejamos la IP por defecto 127.0.0.1.

if ($_SERVER[‘REMOTE_ADDR’]==’127.0.0.1′)

  • Ahora debemos definir las rutas al script SuperScan y al sitio web que queremos detectar cambios, creo que con un nivel mínimo de inglés (como el mío) se entiende perfectamente lo que hay que poner en cada uno de los 4 campos:

detectar archivos infectados

  • También podemos hacer que SuperScan nos envíe un correo electrónico con los reportes de cambios en los archivos escaneados, la configuración creo que está clara (por defecto esta funcionalidad está desactivada y es recomendable tener cuidado con ella):

detectar archivos infectados

  • Podemos configurar si queremos que SuperScan solo compruebe un tipo de archivos, en este caso vamos a poner para que solo analice los PHP, HTML, CSS y JS, también vamos a poner para que omita los archivos “ftpquota” y los TXT:

detectar archivos infectados

Con esto ya tendremos el script SuperScan preparado para funcionar, lo siguiente que vamos a hacer es abrir el archivo CRON.TXT de la carpeta donde se encuentra SuperScan y podremos ver unas instrucciones claras:

detectar archivos infectados

Como ves, está clara la configuración que debemos realizar en el gestor de tareas CRON y que archivos debemos ejecutar para que esto funcione.
Con la configuración de CRON especificada en la imagen anterior haremos que SuperScan analice los cambios una vez cada hora y que cada día a las 8 y 10 de la mañana cree el reporte de cambios:

detectar archivos infectados

Si todo funciona bien, SuperScan creará un reporte en el período de tiempo que le hemos indicado, pudiendo enviarlo por correo si se lo hemos indicado o simplemente guardarlo en la base de datos.

Como ves, el script SuperScan, a pesar de ser un script muy simple es un script muy potente y si tenemos conocimientos sobre el uso de este tipo de scripts y su parametrización podemos llegar a usarlo de forma bastante efectiva.
Aunque es un script muy simple, SuperScan puede ayudarnos a reconocer intrusiones en nuestro sitio web y nos ayuda a reaccionar muy rápidamente.

[Total: 2 Promedio: 3]

About the autor:

Mi nombre es Alvaro Fontela, soy consultor Wordpress y blogger activo desde hace años. Co-Fundador de Raiola Networks, escribiendo sobre Wordpress en este blog día tras día.

Utilizamos cookies propias y de terceros para obtener información estadística, mostrar publicidad personalizada a través del análisis de tu navegación, así como para interactuar en redes sociales. Si continúas navegando, consideramos que aceptas nuestra Política de cookies. ACEPTAR

Aviso de cookies