WordPress y permisos FTP

Por 3 septiembre 2015 Wordpress 1 comentario
vulnerabilidad wordpress

Hoy voy a mostrar cómo de fácil es merodear por las interioridades de una web WordPress con la ayuda de Google.

Si hay algo característico de una instalación WordPress es la ruta de los contenidos añadidos, sean estos plugins, temas, imágenes, multimedia, etc.

De lo dicho, vamos a centrarnos en los dos primeros: plugins y temas.

Sin pretender en absoluto ser una guía de malas prácticas

Tómate este tutorial como algo que no quieres para tu web WP ni para tus clientes.

Los permisos FTP hacen vulnerables tus carpetas internas

Hay carpetas que NO deben ser ni indexadas por los buscadores ni examinadas por los visitantes que «aterricen» en ellas, voluntaria o involuntariamente. Primero por una mera cuestión de seguridad y segunda por motivos SEO, en este caso de privación de contenidos no relevantes a los rastreadores, crawlers, bots o como quieras llamarlos.

Si añadimos que la continuidad de negocio es básica para el flujo de tráfico, llegamos inevitablemente a añadir la seguridad de tu WP en la rama principal de su estrategia SEO.

Sin entrar a hablar exhaustivamente de permisos FTP, existen algunos permisos típicos que encontrarás en cualquier instalación WordPress, en base a esos permisos tu web será la herramienta que pretende ser o un coladero que te traerá más dolores de cabeza que negocio, sobre todo si eres el proveedor de desarrollo/SEO WordPress.
Recuerda que los permisos que vamos a tratar (y todos los de FTP en general) pueden ser aplicados sobre ficheros, subcarpetas y carpetas concretos o aplicados sobre un elemento contenedor (carpeta) afectando a todo su contenido. Evidentemente en cuestiones de seguridad como las que te mostraré hoy lo más preocupante es dar permisos poco restrictivos a carpetas de alto nivel junto a todo su contenido.

Estas ilustraciones proceden del célebre (y gratuito) cliente FTP Filezilla, fíjate especialmente en las opciones que aparecen deshabilitadas bajo los 3 dígitos de los permisos:

«Incluir todos los subdirectorios» y las 3 opciones debajo de esta casilla.
Exacto. Ahí es donde propagas el cambio de privilegios no solamente a un fichero o carpeta sino a todo su contenido. Cuidado.

Como decía al principio, la ruta predeterminada de los contenidos que subes por FTP es típica y es de lo primero que se intenta explotar.

Permisos de listado de directorio

En general se recomienda prevenir el listado de directorio, de esta forma alguien que aterrice en una carpeta (o directorio) para la que el servidor web no ofrezca una respuesta por defecto (por ejemplo mostrar el fichero index.html si está disponible) no verá nuestra información.
La instalación típica de WP incluye plantillas y plugins que permiten en muchos casos exportar datos de configuración u otros datos, como tablas de clientes o bases de datos de formularios recibidos, listas de tareas, backups de base de datos, etc, esas configuraciones suelen guardarse como ficheros de todo tipo, «.ini», «.mdb», «.txt» que pueden descargarse comprimidos habitualmente como «.zip» o «.gzip» y normalmente quedan como copia en la carpeta de subidas de WP, es decir la consabida «wp-content/uploads» o la ruta que hayas definido en tu wp-config.php; en caso de cambiar la ruta de almacenamiento de las imágenes no añadirás seguridad sino valor SEO al acortar considerablemente la URL de las imágenes: bastaría visualizar una imagen de tu web/blog para conocer la ruta personalizada.

¿Cómo prevenir el listado de directorio?

Típicamente trabajando con servidores web Apache tendrás que crear un fichero de texto para convertirlo en un htaccess (sobre estos hay literatura de sobras) y añadir esta instrucción:

IndexIgnore *

Esta instrucción evita el listado de cualquier contenido (debido al uso del comodín «*»).
El siguiente ejemplo evita mostrar el tipo específico «.zip»:

IndexIgnore *.zip

También puedes aplicarte sobre varios tipos a la vez:

IndexIgnore *.zip *.jpg *.gif

La calidad de un hosting (sobre todo para instalar un WP) debería tener en cuenta todos estos detalles además de precio, IPs, capacidad, etc. Sabes de sobras que una instalación WordPress «perfecta» en el hosting «A» no tira ni a pedales al pasarla al hosting «B», debido a los diferentes criterios de seguridad y grado de atención aplicados.
Esto que lees se aloja en Cyberneticos y estoy muy contento con los settings por defecto.

¡Manos a la obra!

Sí, voy a usar la propia búsqueda de Google para jugar a ser malo.

La combinación de permisos FTP permisivos junto a la negligencia protegiendo las carpetas contra listado permitirían a un usuario capacitado (eufemismo de hacker) conocer la disposición de elementos importantes y activos de tu WP y actuar sobre ellos mediante sus propias vulnerabilidades o insertando elementos ajenos dentro de tu almacenamiento web.

Sin dramatizar tanto, un caso práctico de las desventajas que supone ser vulnerables a lo que mostraré: como experto en SEO WordPress me encargan a menudo averiguar cómo lo hace este u otro competidor para posicionar mejor, o para conseguir en general mejores resultados que el peticionario; evidentemente hay que observar el «WP enemigo» para intentar ver, por lo pronto, qué plugins usa y qué plantilla. Si «el enemigo» se ha preocupado por la contrainteligencia SEO habrá hecho desaparecer los rastros típicos de WP que indicarían la existencia de ciertos elementos… ¿Pero qué sucede si puedo listar cómodamente en pantalla el contenido de tu carpeta de plugins?

Por mostrar el ejemplo, voy a copiarme una base de datos mmdb (GeoLite2 de MaxMind) de un resultado obtenido en las SERP…

Forma parte del plugin wp-statistics y no supone problemas para la web «atacada», recuerda que mi objetivo es mostrar, no hacer. Localizo el fichero y me lo bajo…

Ya lo tengo en mi PC. Podría haber sido un excel tipo CRM o una montaña de emails…

Ejemplos de carpetas expuestas

Estas carpetas están expuestas y a disposición del visitante/atacante, literalmente estas instalaciones WP dejan en manos del azar el grado de daño que se les puede causar. Todas las ilustraciones de este post han sido tomadas esta semana partiendo de la búsqueda mostrada más arriba… Y hay decenas de millones de resultados solamente con rutas WordPress!

Esto se va poniendo peligroso

Hasta ahora hemos visto cosas poco jugosas, pero ahora comienzan algunos ejemplos que auguran problemas o desventajas a quien se deje hacer esto…

Nota final

Quien quiera pensar que iniciar un proyecto web con WordPress es «barato» frente a otras alternativas puede encontrarse con costes aberrantes si no se hacen las cosas con mucho cuidado. Recuerda que cualquier instalación nativa de WordPress es como un iceberg, lo que ves representa el 25% de lo que hay, con el crudo inconveniente de que si tienes los problemas que planteo en este artículo Google puede intentar indexar tu contenido «no competitivo» y dar alas a quien se tome las cosas de forma digamos poco convencional…

Piensa que quien explota estos descuidos habitualmente lo hace de forma masiva con programas y scripts propios o adaptados, mientras que un «atacante» esporádico (papel en el que me he metido para el post) tal vez haga intentos sobre tu blog a ciegas o tal vez se ayude de operadores de búsqueda, pero eso requiere trabajo manual y tiempo. Son los scripts automatizados los que se pasan días haciendo pings a distintos patrones de URL y reaccionan cuando encuentran ciertas circunstancias… Imagina que tienen un 1% de éxito sobre 100 millones!

Si a todo esto añadimos la no actualización de WP, plugins y temas, el uso de credenciales sobradamente conocidos como «admin», userid=1, rutas conocidas y contraseñas ridículas, te puedo decir que no te preocupes por si vas a tener problemas…

…Preocúpate por CUANDO vas a tenerlos!

1 comentario

  • Hola,

    Desgraciadamente no hay que buscar mucho para encontrar webs con grandes problemas por no tener permisos adecuados.
    Por ejemplo: http://tinyurl.com/nncuyc4
    En el enlace anterior se puede ver todas las páginas webs en las que se puede descargar fácilmente una copia de seguridad de los archivos(y la base de datos ) de la misma.

    Ojala la gente entre en este post y aprendan a asegurar correctamente su web.

    Un saludo

¿Cuál es tu opinión?

Tu cuenta de correo no se hará pública.

¡Pon tu web a trabajar ya! Contacta hoy sin compromiso