Skip to main content

Como ver archivos grandes usando tu disco

Muchas veces nos encontramos con que algo está usando espacio en nuestro disco duro y no sabemos realmente que puede ser, el truco reside en moverte por las diferentes carpetas donde crees que puedes tener el espacio consumido y ejecutar:

du | sort -rn | head -n 50

Con esto podremos tener una aproximación de cuanto está consumiendo cada carpeta y limpiar lo que nos esté llenando el disco.

Horario de Verano

Como es común para estas fechas, las empresas anuncian sus horarios de verano y vacaciones, nosotros no podemos ser menos y también nos hace especial ilusión hacerlo.

Nuestro horario para este verano sigue rompiendo fronteras, te atendemos las 24h del día durante todo el verano, sin interrupciones, si eres cliente de BrutalSYS no tienes que preocuparte por la hora en la que puedes llamarnos, nuestro equipo en el NOC  ( +34 93 170 2157 ) no descansa nunca.

Tu preocúpate de disfrutar tus vacaciones, nosotros nos encargamos del resto.

Equipo Brutalsys

 

Vulnerabilidad grave en WordPress

Hoy 28 de abril de 2015 se ha publicado una vulnerabilidad tipo zeroday de wordpres la cual afecta a todas las versiones.

Éste bug permite acceso total al cms para el atacante, permitiendo enviar spam entre otras cosas.

Aconsejamos actualizar cuanto antes su instalación de wordpress con la actualización de seguridad publicado hoy.

Saludos,

Elliot

Vulnerabilidad CSRF

Hoy me toca estrenarme a mi en el blog. Mi nombre es Gerard y, para resumir, diré que no puedo vivir tranquilo sin saber cómo funcionan las cosas.

Hoy hablaré de un tema que, desafortunadamente, pasa desapercibido entre muchos programadores y que puede causar algún que otro dolor de cabeza: la vulnerabilidad de CSRF (Cross-site request forgery). Los grandes como TwitterFacebookInstagram, Flickr, GoDaddy, Avira y muchos otros han tenido algún que otro descuido en este tema. Si los grandes han tenido descuidos, no me quiero ni imaginar los que somos más pequeños 🙂

¿Cómo funciona?

La vulnerabilidad por CSRF se aprovecha de la inseguridad a la hora de establecer y comprobar las sesiones. Por ejemplo, supongamos que tengamos un panel de gestión de usuarios y un formulario que edita sus datos. Si nosotros (los programadores) no comprobamos la autenticidad de los datos ni del origen de la petición, es posible que alguien en otra página (por ejemplo este blog) tenga incrustado un iframe o una acción por AJAX que mande un post con los datos que queramos a la URL del formulario, y si el usuario visitante está logueado… adivina.

¿Cómo se previene?

La OWASP ha hecho una página para prevenir el CSRF bastante detallado. El método más básico y efectivo para prevenir esta vulnerabilidad es añadir un Token aleatorio en cada formulario. El Token tiene que ser único (o mantenido para cada sesión), pero lo más importante es que debe ser imprevisible; lo máximo aleatorio posible.

De este modo, el servidor genera un Token, lo mete en el formulario, y cuando se envia, se comprueba si el Token que se recibe del formulario coincide con el Token generado para esa sesión (y formulario).

También es muy recomendable usar encriptación SSL para los formularios con datos sensibles, así, si un

¿Cómo probar si mi sitio es vulnerable a CSRF?

La herramienta que yo he usado para probarlo en LVMCloud es el OWASP Tester, aunque si buscáis podéis encontrar muchísimas más (otras de la OWASP también).
Lo que hace el OWASP Tester es registrar las acciones de tu navegador (crea un proxy) y generar luego un index.html con formularios que envian los datos POST a la URL que ha registrado.

Si el sitio es vulnerable, podrás realizar las mismas acciones que hicistes antes (login, cambio de datos, etc) sin necesidad siquiera de estar logueado, poseer cookies etc.

Ejemplo

Supongamos que soy programador de Facebook. Si para borrar una foto no se pasara un token único, se podría hacer un JS automáticamente te redirigiera al link de eliminar foto. Si hay suerte y tú estás logueado en Facebook, la foto se borraría y tú no te darías ni cuenta.
En cambio, poniendo un token aleatorio para cada sesión (y acción) evitamos que esto pueda ocurrir, pues yo no podría hacer el JS porque no conocería el token aleatorio que Facebook tiene preparado para ti.

Conclusión

Si no eres programador, poca cosa puedes hacer para evitar este tipo de vulnerabilidad, a no ser que desactives JS (retrocediendo 20 años) y los iframes (ya obsoletos).

Si eres programador debes tener en cuenta estas cosas, porque sino te vas a encontrar con que algún día algún usuario te dirá que se ha cambiado nosequé y que él no ha sido, y no vas a saber por qué.

Hay muchos frameworks que ya incluyen seguridad para esta vulnerabilidad, como CakePHP, Symfony2, Yii, etc. Aunque en ninguno viene activado por defecto.

Nueva vulnerabilidad en WordPress

Éste es mi primer Post en el blog, me presento, me llamo Elliot Morales, soy Ingeniero aeronautico de formación y programador y sysadmin de professión.

Recientemente se ha publicado una nueva vulnerabilidad en WordPress, en este caso un bug del tipo zeroday que solo afecta a los WordPress que tengan instalado el plugin “FancyBox for WordPress”.

Una vulnerabiliad zeroday es un error desconocido por los usuarios y por el creador del software que permite ejecutar código malicioso en el sistema, en este caso un atacante puede inyectar código al sistema para que los usuarios de MS Internet Explorer añadan un iframe en la pagina a 203koko.eu.

Mi consejo para los usuarios es no usar Internet Explorer, pero como nosotros somos sysadmins también podemos hacerlo mas fácil para los users que usan IE.

Os traigo un script que funciona en Cpanel.

En este caso es con el usuario root de mysql sin password

1
2
3
4
5
6
7
8
updatdb;locate fancybox.php|grep wp-content | awk -F'plugins' '{print $1}' | \
while read in; do \
UDB=`cat $in../wp-config.php |grep DB_NAME|cut -d"'" -f4`; \
TPF=`cat $in../wp-config.php |grep table_prefix|cut -d"'" -f2`; \
PLUGS=`mysql -uroot -D$UDB -se "SELECT option_value FROM "$(echo $TPF)"options WHERE option_name = 'active_plugins';"|cut -f1`; \
PLUGSC=$(php -r "\$var=unserialize('$PLUGS'); foreach(\$var as \$i=>&\$v){if(strpos(\$v,'fancybox.php')!==false)unset(\$var[\$i]);} echo serialize(\$var);") \
mysql -uroot -D$UDB -se "UPDATE "$(echo $TPF)"options SET option_value='"$(echo $PLUGSC)"' WHERE option_name = 'active_plugins';";\
done;unset UDB;unset TPF;unset PLUGS;unset PLUGSC;

Y en caso de que tengais password en el usuario root de MySQL:

1
2
3
4
5
6
7
8
updatdb;read -s -p Mysql root password: pwd;locate fancybox.php|grep wp-content | awk -F'plugins' '{print $1}' | \
while read in; do \
UDB=`cat $in../wp-config.php |grep DB_NAME|cut -d"'" -f4`; \
TPF=`cat $in../wp-config.php |grep table_prefix|cut -d"'" -f2`; \
PLUGS=`mysql -uroot -p$pwd -D$UDB -se "SELECT option_value FROM "$(echo $TPF)"options WHERE option_name = 'active_plugins';"|cut -f1`; \
PLUGSC=$(php -r "\$var=unserialize('$PLUGS'); foreach(\$var as \$i=>&\$v){if(strpos(\$v,'fancybox.php')!==false)unset(\$var[\$i]);} echo serialize(\$var);") \
mysql -uroot -p$pwd -D$UDB -se "UPDATE "$(echo $TPF)"options SET option_value='"$(echo $PLUGSC)"' WHERE option_name = 'active_plugins';";\
done;unset pwd;unset UDB;unset TPF;unset PLUGS;unset PLUGSC;

Y para acabar, el caso mas global para desactivar un plugin de wordpress a todas las cuentas de Cpanel (Que tengan wordpress y ese plugin instalado y activo, claro)

Este te va a pedir un archivo principal del plugin: en el caso de akismet por ejemplo es:
akismet/akismet.php

Aqui depende del plugin. Aún así igual os puede servir de utilidad, a mi me ha servido.

Sin password en root MySQL:

1
2
3
4
5
6
7
8
updatdb;read -p "Principal file of plugin:" plugin_file;locate $plugin_file|grep wp-content | awk -F'plugins' '{print $1}' | \
while read in; do \
UDB=`cat $in../wp-config.php |grep DB_NAME|cut -d"'" -f4`; \
TPF=`cat $in../wp-config.php |grep table_prefix|cut -d"'" -f2`; \
PLUGS=`mysql -uroot -D$UDB -se "SELECT option_value FROM "$(echo $TPF)"options WHERE option_name = 'active_plugins';"|cut -f1`; \
PLUGSC=$(php -r "\$var=unserialize('$PLUGS'); foreach(\$var as \$i=>&\$v){if(strpos(\$v,'$plugin_file')!==false)unset(\$var[\$i]);} echo serialize(\$var);") \
mysql -uroot -D$UDB -se "UPDATE "$(echo $TPF)"options SET option_value='"$(echo $PLUGSC)"' WHERE option_name = 'active_plugins';";\
done;unset pwd;unset UDB;unset TPF;unset PLUGS;unset PLUGSC;

Con password en MySQL root:

1
2
3
4
5
6
7
8
updatdb;read -p "Principal file of plugin:" plugin_file;read -s -p Mysql root password: pwd;locate $plugin_file|grep wp-content | awk -F'plugins' '{print $1}' | \
while read in; do \
UDB=`cat $in../wp-config.php |grep DB_NAME|cut -d"'" -f4`; \
TPF=`cat $in../wp-config.php |grep table_prefix|cut -d"'" -f2`; \
PLUGS=`mysql -uroot -p$pwd -D$UDB -se "SELECT option_value FROM "$(echo $TPF)"options WHERE option_name = 'active_plugins';"|cut -f1`; \
PLUGSC=$(php -r "\$var=unserialize('$PLUGS'); foreach(\$var as \$i=>&\$v){if(strpos(\$v,'$plugin_file')!==false)unset(\$var[\$i]);} echo serialize(\$var);") \
mysql -uroot -p$pwd -D$UDB -se "UPDATE "$(echo $TPF)"options SET option_value='"$(echo $PLUGSC)"' WHERE option_name = 'active_plugins';";\
done;unset pwd;unset UDB;unset TPF;unset PLUGS;unset PLUGSC;

Un saludo,
Elliot Morales

Empezando la semana fuerte… spam spam y más spam.

Hoy me toca a mi ! Tenía ganas de inaugurar el blog con un post mío y empezamos fuerte, vamos a por maravilloso mundo del spam !

Intentamos generalmente controlar el SPAM con configuraciones personalizadas de SpamAssassin, restricciones en la autenticación para el saliente, firewall, Ips, etc… pero siempre hay algún cliente al que le hackean el ordenador o consiguen su contraseña, suben algún archivo malicioso… y acaba enviando spam y por consiguiente poniendo en lista negra algunas de nuestras IP, no siempre es fácil controlar en servidores con centenas o miles de cuentas.

De entrada si utilizáis exim voy a dejaros un comando que a nosotros nos va de muerte:

1
2
grep cwd /var/log/exim_mainlog | grep -v /var/spool \
| awk -F"cwd=" '{print $2}' | awk '{print $1}' | sort | uniq -c | sort -n

Lo publiqué hace unos meses en mi blog personal, pero me parece un comando imprescindible, con esto podemos ver si hay algún directorio con algún exploit que estén utilizando para enviar SPAM.

Como ya habréis notado, en el archivo /var/log/exim_mainlog tenéis un montón de información sobre el origen del correo malicioso, que podréis ir recortando con grep a vuestro gusto.

Todo y nuestros esfuerzos, muchos clientes no pueden permitirse el lujo de estar ni un segundo sin enviar o recibir correos, para eso vamos con nuestra recomendación:

 

se-any-small-267px-47px Llevamos ya varios meses utilizando el servicio de SpamExperts y instalando-lo a muchos de nuestros clientes de administración, su servicio te permite, entre muchísimas otras cosas, controlar el spam entrante, es decir, decidir que queremos y que no queremos recibir. El spam saliente, en definitiva tus correos salen por su plataforma, asegurando una mayor probabilidad de que el spam que envíe nuestro servidor sea parado por los filtros de spamexperts y así evitar que nuestras IP o dominios entre en listas negras y además de todo esto, hacen un archivado de correo para que nunca perdamos ningún correo de nuestros clientes.

No parece nada del otro mundo verdad ? Pues realmente lo es. ¿Por que? Es super fácil de integrar con CPanel, la instalación es totalmente automatizada y tienen un increíble panel de control de gestión tanto para el cliente final, como para el administrador, ¿a que mola?

spamexperts

 

Si tienes problemas de spam, no dudes contactar con nuestro equipo, estaremos encantados de asesorarte sea cual sea tu problema y buscar la mejor solución para cualquier situación: <equipo@brutalsys.com>

 

Bienvenidos al blog del equipo!

Por fin ! Este en nuestro espacio, el espacio del equipo de Brutalsys, para hablar sin censura, comentar nuestras experiencias y ayudar en todo lo que sea posible a que la gente que pase por nuestro blog, salga con una sonrisa y una solución a sus problemas.

Nos presentamos:

Somos un equipo de desarrollo y administración de sistemas. Trabajamos en proyectos de cloud computing y administración de servidores de terceros, somos especialistas en servidores críticos con grandes volúmenes de datos y resolución crítica de incidencias (servidores con problemas de rendimiento, bajo ataques, etc).