Tag Archive for wordpress

Web Hacking : Una línea para manejarlos a todos

¿Podría darte una línea de código acceso a un sitio Web completo? ¿Qué información obtendría un atacante si consiguiera llegar al nivel más bajo de tu página Web? es decir, a tu BBDD o SSOO. Dependiendo del objetivo de la misma podría encontrar seguramente información sobre la identidad de los usuarios, transacciones bancarias, compras online, usuarios, contraseñas y mucho más.

¿Cuánto vale tu información? Debemos de establecer unos controles de seguridad mínimos a nuestro sitio Web, llevar a cabo una serie de auditorías de seguridad que garanticen el buen funcionamiento de la misma. No sólo tener en regla la política de cookies y poco más, sino os puede ocurrir como la Web con la que me encontré hace unas semanas a la hora de preparar una charla. Antes de nada os muestro un disclaimer.


Aviso Legal y Descargo de Responsabilidad

  1. El objetivo de lo mostrado a continuación tiene fines educativos para aprender a mejorar la seguridad de nuestros sitios Web.
  2. No nos hacemos responsables del mal uso que se le pueda dar a las herramientas mostradas.
  3. Toda la auditoría Web mostrada a continuación se ha llevado a cabo con permisos de sus administradores según lo acordado en documento legal.

Vamos a llevar a cabo la auditoría de un sitio Web siguiente la metodología OWASP, concretamente seguiremos la OWASP Testing Guide V4. Los diferentes puntos que abarca dicha metodología los podéis ver detalladamente en el enlace anterior. A continuación nombramos los aspectos generales a tratar.

Read more

Investigación de ataque a un WordPress

Introducción de un ataque a un WordPress

Hoy he tenido el placer de participar, por tercer año consecutivo, como ponente en la V WordPress Meetup Córdoba y al igual que en años anteriores, he disfrutado mucho, no solo durante mi charla (Investigación de ataque a un WordPress) sino durante toda la jornada, con charlas muy interesantes en dos tracks diferentes. ¡Lástima haberme perdido algunas de las charlas! Pero en dos tracks a la vez no se podía estar.

En cuanto a mi charla, se trataba de explicar un caso real de un ataque a un WordPress y dar algunos consejos prácticos y sencillos para poder hacer algunas labores de investigación en caso de sufrir un ataque.

La Web investigada había sufrido un ataque mediante el cual los atacantes habían conseguido subir una puerta trasera, en forma de una C99 Shell, aprovechando una vulnerabilidad de tipo “Remote Arbitrary File Upload” en un plugin del WordPress.

vulnerability-wordpress

Como consecuencia, el servidor comprometido pasó a formar parte de la StealRat Botnet enviando una gran cantidad de spam con contenido variado; venta de productos farmacéuticos, venta de viagra y pornografía. Este envío masivo de spam originó que el servidor entrara en listas negras de reputación IP así como en servicios de bloqueo por spam.

Read more

Usando OTP en WordPress y Gmail

Hoy retomo la publicación en el blog con un tema sobre contraseñas. Como sabéis, usamos contraseñas para todo, y es que los servicios Web como correo, redes sociales o banca online, así nos lo exigen. Por ello, el uso de contraseñas está muy masificado. Usamos contraseñas para todo. Menos seguras de lo que creemos pero se utiliza ese método que impide que cualquiera pueda entrar libremente a tus servicios de redes sociales, de banca, portales Web, equipos, etcétera…

No obstante, hay una falsa creencia de que usar contraseñas sean como sean, es estar seguros.

Evidentemente este pensamiento es erróneo y ocasiona muchos problemas de confidencialidad, suplantación de identidad, etcétera… Puestos en la piel del “pasota”, como me encuentro muy a menudo podríamos pensar “Es que nadie tiene que entrar en mi cuenta…” toma ya. Esto no es una ocurrencia mía para complementar el artículo sino que son palabras textuales que me han dicho en persona. Claro, y nadie tiene que robar coches, ni casas, ni negocios ni nada y sin embargo pasa. Pongamos la cosa difícil y al menos, cuando vean las dificultades, la tomen con otro ¿no?. Probemos pues  “Usando OTP en WordPress y Gmail”

2factor copia  Read more

Vulnerabilidad de “WordPress SEO by Yoast”

Hoy nos levantamos con la noticia de que el famoso plugin de WordPress SEO by Yoast  que cuenta con más de 14 millones de descargas según el sitio oficial del plugin, tiene una vulnerabilidad de tipo Blind SQL injection, para la cual los desarrolladores ya realizaron una actualización.

yoast-seo

Read more

WP Maltor: Plugin de seguridad WordPress para banear direcciones IP maliciosas

¿Quieres evitar que desde direcciones IP reportadas como maliciosas accedan a tu WordPress? ¿Prefieres que no accedan a tu WordPress desde Tor? Ahora con el nuevo plugin de seguridad WordPress, WP Maltor, puedes conseguirlo de una manera muy sencilla.

Este plugin, desarrollado conjuntamente por David Merinas de la empresa Deidos y Miguel Ángel Arroyo de SVT Cloud Services, mantiene actualizada una base de datos de direcciones IP que están reportadas como maliciosas, así como una lista de nodos Tor.

Desde ya el plugin de seguridad WordPress está disponible en el repositorio oficial de WordPress y listo para su instalación.

Enlace del plugin WP Maltor: https://wordpress.org/plugins/wp-maltor/

WP Maltor - Plugin de seguridad para WordPress

La instalación es muy simple y desde el momento que lo instales, y actives el plugin, ya estarás bloqueando el acceso a direcciones IP maliciosas y a nodos de Tor.

WP Maltor - Plugin de seguridad para WordPress

El plugin en su primera versión no requiere de configuración adicional. Sólo activar el plugin y estará listo para bloquear direcciones IP.

WP Maltor - Plugin de seguridad para WordPress

En la siguiente imagen se puede ver una captura del plugin en funcionamiento, bloqueando el acceso desde una IP maliciosa o proveniente de un nodo Tor.

WP Maltor - Plugin de seguridad para WordPress

Esperamos que os guste y os resulte útil.

Better WP Security, el plugin definitivo para securizar WordPress

Ya os hemos hablado de cómo proteger WordPress de ataques SQLi y de ataques de fuerza bruta. En esta ocasión os traemos un plugin Todo en Uno dedicado a proteger vuestra instalación de WordPress mediante una gran variedad de técnicas que ayudarán a evitar posibles intrusiones en nuestra Web, como pueden ser:

  • Cambiar la ruta de acceso al panel de administración.
  • Eliminar el meta tag para ocultar nuestra versión de WordPress.
  • Cambiar el prefijo de las tablas de nuestra base de datos.
  • Protección mediante ban de IP contra ataques de fuerza bruta.
  • Forzar el uso de SSL
  • Desactivar el acceso al panel de administración a determinadas horas.
  • Y un largo etc.

wpdefend

 

Read more

Proteger WordPress de ataques de fuerza bruta

En esta entrada quiero compartir con vosotros la solución que he encontrado para proteger WordPress de ataques de fuerza bruta o de diccionario. Ya sé que hay plugins de seguridad muy buenos que son capaces de hacer esto, pero lo cierto es que mi experiencia con algunos de ellos para esta simple cuestión, ha sido realmente mala. Al final, la solución ha sido utilizar el polivalente fichero .htaccess que siempre tan buen resultado nos da.

Ya en su día hicimos uso de .htaccess para prevenirnos de ataques de tipo SQLi, aquí podéis encontrar la entrada.

Como sabréis, sobre todo aquellos que trabajáis normalmente con WordPress, las direcciones URL que se utilizan para acceder al panel de administración son bien conocidas, de ahí que suframos ataques de fuerza bruta o de diccionario a los recursos /admin, /wp-admin o /wp-login.php para intentar acceder a la administración de nuestro WP.

Además de poder controlar a qué hora se podría acceder a nuestra administración, podemos cambiar el nombre del enlace a nuestra administración, de forma que ya a través de éstas URL que hemos mencionado, ya no sea accesible.

Antes de empezar, como siempre en estos casos, aconsejo realizar una copia de seguridad.

Comencemos. Tendremos que añadir a nuestro fichero .htaccess las siguientes líneas (o modificar el módulo mod_rewrite.c en caso de que ya lo tengamos cargado):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^pathsecreto$ wp-login.php [L,NC,QSA]
</IfModule>

Donde pathsecreto será el nombre secreto que eligiremos y que apunte a wp-login.php y sólo se podrá acceder a través de este nombre.

Ya tan sólo nos queda modificar nuestro fichero wp-login.php para que no se pueda acceder por los métodos tradicionales, redirigir y evitar errores:

[ Yo lo he colocado en la línea 50 aproximadamente, justo antes de la etiqueta <!DOCTYPE html> ]

<? $uri = $_SERVER[‘REQUEST_URI’];
if(stripos($uri, ‘wp-login’) or stripos($uri, ‘wp-admin’) && !stripos($GLOBALS[“HTTP_COOKIE”], ‘wordpress_logged_in’))
{  header(“Location: /”); exit(); }
 ?>

A partir de este momento, si se intenta acceder directamente con las URL originales, redirigirá a la página principal del sitio, y sólo con nuestro /pathsecreto se podrá acceder al login de administración de nuestro WP.

Espero que os sea de utilidad y podáis reducir o mitigar completamente los molestos ataques de fuerza bruta a vuestro sitio WordPress.

Miguel A. Arroyo (miguel_arroyo76 en Twitter)

Proteger WordPress de ataques SQLi

A continuación veremos cómo proteger WordPress de ataques SQLi (SQL Injection). En el último post hicimos referencia a nuestra ponencia sobre seguridad en WordPress en el evento que se celebró en Córdoba el pasado 6 de octubre, la WordPress Meetup Córdoba 2012. Siguiendo con esta temática, en www.hacking-etico.com queremos hablar acerca de cómo podríamos mantener más seguro nuestro sitio Web WordPress.

Como ya se ha comentado en otros post, las vulnerabilidades en las aplicaciones Web y el software en general, juegan un papel muy importante en la seguridad de un sistema. La mayoría de los ataques tienen éxito y se articulan casi todos aprovechando algún tipo de vulnerabilidad en el sistema. En el caso de WordPress, el núcleo es bastante seguro, y la comunidad de desarrolladores que hay detrás cuidan este asunto, pero la cosa cambia cuando se trata de plugins de terceros.

Aún así, además de intentar mantener siempre actualizados nuestro plugins y el propio núcleo de WordPress, podemos poner algunos remedios preventivos para no ser víctimas de un ataque.

Aquí os dejo una muestra, utilizando directivas de restricción de nuestrio sitio Web, podemos denegar el acceso a ciertas URL o a ciertas peticiones URL que tengan un patrón definido. Con el fichero .htaccess podemos protegernos de los ataques SQLi más comunes. A continuación se muestra el código que tenemos que incluir en nuestro .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC]
RewriteRule ^(.*)$ - [F,L]
RewriteCond %{QUERY_STRING} \.\.\/ [NC,OR]
RewriteCond %{QUERY_STRING} boot\.ini [NC,OR]
RewriteCond %{QUERY_STRING} tag\= [NC,OR]
RewriteCond %{QUERY_STRING} ftp\:  [NC,OR]
RewriteCond %{QUERY_STRING} http\:  [NC,OR]
RewriteCond %{QUERY_STRING} https\:  [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR]
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)|<|>|ê|"|;|\?|\*|=$).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*("|'|<|>|\|{||).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%24&x).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127\.0).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare).* [NC]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^(.*)$ - [F,L]
</IfModule>

IMPORTANTE: estas reglas de htaccess son sólo un ejemplo de cómo podríamos inspeccionar las distintas peticiones URL en busca de peticiones “sospechosas” tipo SQLi, XSS…

Fuente: pastie.org

¡Espero que es os sirva!

Ponencia en WordPress Meetup Córdoba

El pasado sábado 6 de octubre tuve la suerte de poder participar como ponente en la WordPress Meetup Córdoba, en la cual daba una pequeña charla acerca de la seguridad en sitios Web creado con WordPress. El año que viene, si los organizadores lo quieren, volverá a estar con mucho gusto.

En la ponencia empecé hablando acerca de los plugins de seguridad existentes para WordPress. Hay muchos plugins y algunos de ellos realmente buenos, que nos ayudan a mantener nuestro sitio lo más seguro posible, porque como ya sabéis, algo 100% seguro no existe.

A continuación hablé acerca de las vulnerabilidades y la importancia de mantener siempre actualizado nuestro WordPress, no sólo el propio “core” sino también los plugins de terceros, que es precisamente donde más vulnerabilidades podemos encontrar. El problema no radica sólo en la publicación de la vulnerabilidad en sí, si no que en muchos casos se crean y se publican exploits en sitios públicos capaces de explotar esa vulnerabilidad.

Finalmente hice referencia a la aplicación de seguridad por oscuridad en nuestro sitio Web, refiriéndome a la posibilidad de ocultar los plugins que tenemos instalados, para obstaculizar todo lo posible los intentos de ataques hacia nuestro sitio. Existe la posiblidad de cambiar el nombre de la carpeta wp-content, de manera que ante ataques de descubrimiento de plugins, le pongamos las cosas “difíciles” a los atacantes.

Además, y por experiencia propia, ¿actualizáis vuestro sitio a todas horas? ¿lo hacéis a las 5 de la mañana? ¿Por qué no protegéis el acceso a vuestro panel de administración sólo en horarios en los cuales habitualmente accedéis?

Eso y mucho más dió de sí mi ponencia, espero que fuera del gusto de los asistentes. Y para los que no estuvísteis, aquí os dejo un enlace a la presentación:

http://www.slideshare.net/miguel_arroyo76/es-seguro-nuestro-sitio-web-con-wordpress

Saludos!