Más de 3600 NAS QNAP cifrados por Ransom
El pasado día 25 de enero, sobre las 16h se empezaron a notificar incidencias

Deadbolt Ransomware

Este script aprovecha una vulnerabilidad publicada el pasado 13 de enero de 2022: QSA-21-57

A día de hoy, QNAP ha actualizado el firmware de sus dispositivos para evitar nuevos accesos ilícitos que permitan al atacante cifrar el contenido de los NAS.

Más información aquí


El ataque se produce del siguiente modo:

1. Cargan un programa de cifrado en el directorio /mnt/HDA_ROOT/xxxxx, donde "xxxxx" es un número aleatorio (ej. /mnt/HDA_ROOT/29955). Este programa se carga como proceso y se puede ver con "ps" o "top" si accedes vía "ssh".

2. En este directorio hay otros archivos que, probablemente, contienen datos de configuración del propio ransom. Si has apagado o reiniciado, seguramente el proceso de cifrado que interrumpido y deadbolt no continuará haciendo nada.

3. Otro elemento que se ataca es la página de inicio del QNAP, mediante la cual se accede al sistema (login). Se sustituye el archivo /home/httpd/index.html por uno que será el que se muestre al intentar acceder al QNAP y que mostrará el mensaje del ataque:


Y bloqueará el acceso a tu QNAP usando el navegador. Además, es el encargado de ejecutar el script que permitirá descifrar los datos si conoces la clave de descifrado, previo pago del número de bitcoins que indica el mensaje (en teoría).

Además, hay otro programa en /mnt/HDA_ROOT/update_pkg/SDDPd que genera y reemplaza el index.html del servidor.

4. Para poder acceder vía navegador al QNAP bastaría, en principio, con agregar /cgi-bin/ a la url. Por ejemplo: https://direccion-ip-del-nas/cgi-bin/

¿Qué hacer?

En primer lugar, acceder vía SSH con el usuario "admin" y su contraseña correspondiente.

1. Si el cifrado continúa, ver procesos activos con "ps | grep HDA_ROOT"

2. Verificar los contenidos del directorio /mnt/HDA_ROOT/ para obtener los archivos cuyo nombre sea un número "ls -al /mnt/HDA_ROOT".

3. En el listado de procesos, tomar nota del PID correspondiente con el nombre (numérico) del archivo que se había localizado en /mnt/HDA_ROOT.

4. Parar/matar el proceso con kill -9 PID (PID = proceso).

5. Para restaurar la página de login original, se pude ejecutar lo siguiente:

"mv /home/httpd/index.html.bak /home/httpd/index.html"

El proceso "deadbolt" graba el archivo original con la extensión .bak, así que no habrá problemas para restaurarlo.

6. Ahora es momento de borrar los archivos maliciosos con el comando "rm"

rm /mnt/HDA_ROOT/xxxxx, recuerda que "xxxxx" es el nombre del archivo.

Es posible que este archivo contenga el atributo "i" o "inmutable, lo que impediría borrar, modificar, renombrar o enlazar este archivo (https://geek-university.com/linux/change-file-attributes/).

Para eliminar este atributo, ejecuta: "chattr -i /mnt/HDA_ROOT/xxxxx" y luego continúa con el proceso de borrado.

Se debe hacer lo mismo con el directorio HDA_ROOT/updatepkg:

chattr -i /mnt/HDAROOT/updatepkg/SDDPd.bin

rm /mnt/HDAROOT/updatepkg/SDDPd.bin

chattr -i /mnt/HDAROOT/updatepkg/.SDDPdrequired

rm /mnt/HDAROOT/updatepkg/.SDDPdrequired

7. Reiniciar el QNAP. Actualizar el sistema. Reiniciar de nuevo.

¿Cómo recuperar archivos cifrados?

Pues, de momento, no hay un procedimiento publicado ni notificación por parte QNAP.


--- Script deadbolt que se usaría para el descifrado en caso de conocer la clave ---

Se puede copiar y pegar para crear un ejecutable.

#!/bin/sh

echo "Content-Type: text/html"
echo ""

get_value () {
echo "$1" | awk -F "${2}=" '{ print $2 }' | awk -F '&' '{ print $1 }'
}

not_running() { echo '{"status":"not_running"}'; exit; }

PID_FILENAME=/tmp/deadbolt.pid
STATUS_FILENAME=/tmp/deadbolt.status
FINISH_FILENAME=/tmp/deadbolt.finish
TOOL=/mnt/HDA_ROOT/7733
CRYPTDIR=/share

if [ "$REQUEST_METHOD" = "POST" ]; then
DATA=`dd count=$CONTENT_LENGTH bs=1 2> /dev/null`'&'
ACTION=$(get_value "$DATA" "action")
if [ "$ACTION" = "decrypt" ]; then
KEY=$(get_value "$DATA" "key")
if [ "${#KEY}" != 32 ]; then
echo "invalid key len"
exit
fi

K=/tmp/k-$RANDOM
echo -n > $K
for i in `seq 0 2 30`; do
printf "\x"${KEY:$i:2} >> $K
done
SUM=$(sha256sum $K | awk '{ print $1 }')
rm $K

if [ "$SUM" = "17c51236425a18e46b59564b3eaf434d689a1c493372e456882b7b260955baad" ]; then
echo "correct key"
exec >&-
exec 2>&-
${TOOL} -d "$KEY" "$CRYPTDIR"
elif [ "$SUM" = "93f21756aeeb5a9547cc62dea8d58581b0da4f23286f14d10559e6f89b078052" ]; then
echo "correct master key"
exec >&-
exec 2>&-
${TOOL} -d "$KEY" "$CRYPTDIR"
else
echo "wrong key."
fi

Software para el descifrado, si ya has comprado y tienes la clave.

Emsisoft Decryptor for DeadBolt

Descargar aquí


Este artículo es Creative Commons, y no sólo puedes compartirlo indicando su fuente, sino que deberías hacerlo :D. EXCEPTO si eres un medio de comunicación de carácter oneroso. En ese caso, me tienes que pagar 50€ por publicar este texto en tu medio.

Más de 3600 NAS QNAP cifrados por Ransom
David 28 enero, 2022
Share/Comparte post
Archivar
Identificarse to leave a comment


Herramienta para el descifrado del Ransom Darkside
Desde bitdefender nos llega una herramienta muy útil para recuperar tus archivos cifrados por ranson darkside