Ransomware cr1ptt0r

El 22 de febrero D-LINK se hacía eco de un nuevo ransomware que afectaba, entre otros, a sus NAS aprovechando una vulnerabilidad en la implementación de SAMBA. Dicha vulnerabilidad está catalogada como CVE-2017-7494.

D-LINK corrigió este fallo en la versión 1.10 de su firmware, el cual data de octubre de 2017 según su changelog. La última versión disponbile de dichor firmware es la 1.11B01, la cual puede ser descargada de la web oficial.

Este ramsomware ha pasado casi desapercibido, ya que poca gente se hizo eco en las redes sociales. Como ejemplo tenemos twitter, donde podemos encontrar varios mensajes de un analista de malware italiano llamado RE-Solver donde hace un pequeño análisis del virus. Destaca el hecho de que indica que también instala una instancia de tor en los dispositivos infectados para que hagan de nodo para esta red.

Este usuario explica cómo el virus cifra los archivos y ha publicado un decrypter teórico, ya que se podrían tardar más de 100 años en sacar la clave. No obstante no se pierde nada intentándolo.

La imagen de la izquierda corresponde a la estructura de directorios que guarda el ransomware cuando está instalado en el dispositivo víctima. La carpeta cr1ptt0r cuelga de la ruta /mnt/HD/HD_a2/Nas_Prog.

En la carpeta bin se encuentran, además del ejecutable del virus en sí, un ejecutable llamado tor, por lo que parece que sí que es cierto que los dispositivos infectados ejecutan una instacia de tor como comentaba el usuario RE-Solver

Para los que tengan curiosidad y quieran trastear con este ransomware, lo pueden descargar de aquí.

Imagen de cabecera por OpenClipart-Vectors de Pixabay

Sobreescribir estilos CSS en temas hijos en WordPress

El objetivo de crear temas hijos en WordPress no es ni más ni menos que evitar que las customizaciones que hacemos en los temas se pierdan al actualizar dichos temas.

Por alguna razón los estilos de la hoja style.css del tema hijo no sbresscribía los estilos del tema padre, ya que la hoja de estilos del tema padre se cargaba después que la del tema hijo.

Después de crear el tema hijo tenemos que poner en el archivo functios.php lo siguiente:

<?php
// Exit if accessed directly
if ( !defined( 'ABSPATH' ) ) exit;

// BEGIN ENQUEUE PARENT ACTION
// AUTO GENERATED - Do not modify or remove comment markers above or below:

if ( !function_exists( 'ms_theme_editor_parent_css' ) ):
    function ms_theme_editor_parent_css() {
        wp_enqueue_style( 'chld_thm_cfg_parent', trailingslashit( get_template_directory_uri() ) . 'style.css', array( 'genericons' ) );
      	wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( 'genericons' ) );
    }
endif;
add_action( 'wp_enqueue_scripts', 'ms_theme_editor_parent_css', 30 );
// END ENQUEUE PARENT ACTION

Sólo he tenido que agregar la línea 11, que es la que indica que se cargue la hoja de estilos del tema hijo después de la del tema padre.

El resto del archivo se ha generado automáticamente usando el plugin Theme Editor, que simplifica la tarea de crear y editar temas hijos.

Fuente

Roundcube sin mod_php en ISPCONFIG

Al desactivar el módulo de Apache mod_php es probable que si accedemos al webmail de cualquiera de nuestros dominios (midominio.tld/webmail) no se interprete el código php y salga en texto plano en la pantalla.

Para evitar esto, activaremos la interpretación de php mediante FPM editando el archivo /etc/apache2/conf-enabled/roundcube.conf y añadiendo debajo de la línea donde se indica el alias el siguiente código:

<IfModule !mod_php5.c>
<IfModule proxy_fcgi_module>
    # Enable http authorization headers
    <IfModule setenvif_module>
    SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
    </IfModule>

    <FilesMatch ".+\.ph(p[3457]?|t|tml)$">
        SetHandler "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost"
    </FilesMatch>
    <FilesMatch ".+\.phps$">
        # Deny access to raw php sources by default
        # To re-enable it's recommended to enable access to the files
        # only in specific virtual host or directory
        Require all denied
    </FilesMatch>
    # Deny access to files without filename (e.g. '.php')
    <FilesMatch "^\.ph(p[3457]?|t|tml|ps)$">
        Require all denied
    </FilesMatch>
</IfModule>
</IfModule>

Esto suponiendo que tengamos php5.6-fpm instalado.

Después reiniciamos el servidor apache y volverá a funcionar como antes, con la ventaja de contar con el protocolo http2 activado.