Ransomware Petya, solucionado el problema!

Hace algunos días estuvimos hablando del ransomware Petya y de su maliciosa intención de cifrar de una manera interesante nuestro disco rígido para luego pedir «rescate» de la información pagando en bitcoins.

Pues bien, hecha la trampa, hecha la solución! Un investigador de Malwarebytes, @hasherezade

desarrolló un decoder para el Stage 1 de Petya, es decir, cuando el sistema de archivos se encuentra en el estado en el que Petya reemplazó el MBR del disco, pero el equipo aún no ha sido reiniciado.

Por otro lado, @leo_and_stone propuso la solución al Stage 2, con lo cual ya, quien tiene su dicso cifrado con Petya puede descifrarlo sin necesidad de comprar los bitcoins para pagar el rescate.

Vamos al grano, la solución

En este caso presento la solución basada en Linux, específicamente con Kali, pero puede ser cualquier distro live. También hay una forma de solucionarlo usando un port de la aplicación de descifrado compilada para Windows, a no desesperar 😛

Paso 1: Descargar Kali Linux o una distro live

Podemos descargar un Kali Linux en otra computadora, y grabarlo en un dvd, o en un USB si el equipo puede bootear desde USB.

En el caso de que quisiéramos quemar la iso en un usb para hacerla booteable, desde un Linux cualquiera podemos hacerlo siguiendo estos simples pasos.

Paso 2: Iniciar Kali en modo forensekali_forensics

Al iniciar Kali en el equipo afectado por Petya Ransomware, bootear en modo forense, aquí una captura.

También puede correrse Kali en otro equipo, al que previamente hayamos conectado el disco infectado (esto nos facilitará el backup del paso 6.

Paso 3:  Montar el disco original, el que fue «dañado» por Petya.

Para ello podemos, en una consola de Kali, listar los dispositivos de almacenamiento, usando por ejemplo, fdisk, o parted, o, si nos sirve, un simple «ls -l /dev/sd*».

Aquí algunos ejemplos de salidas:

Paso 4: Aplicar el decoder

Podemos descargar el decoder desde este sitio. También podemos descargar el código fuente.

Luego darle permisos de ejecución:

chmod +x decoder

Y por último ejecutarlo pasándole la referencia del disco infectado:

./decoder /dev/sda

La salida nos dirá si el decoder encontró a Petya en el disco:

Si Petya solo llegó al Stage 1:

Si al infectarnos con Petya no hemos reiniciado el equipo, es decir, nunca pasó al Stage 2 de cifrado, el decoder nos dará directamente la clave de recuperación:

Si Petya pasó al Stage 2:

En este caso el decoder nos dará un dato de verificación y un nonce para que podamos intentar descifrar el disco desde el Stage 2.

Con esta información, entramos en uno de los enlaces que nos cita el decoder (el original o el mirror) y copiamos dicha información.

paste_data

Al cargar los datos el sistema nos dará la clave:

your_key

Para usuarios de Windows:

Pueden descargar el Petya Key Extractor desde acá: http://download.bleepingcomputer.com/fabian-wosar/PetyaExtractor.zip

Al ejecutarlo tendremos la clave del decoder… no es otra cosa que el decoder con interfaz gráfica compilado para Windows. Gracias Fabian Wosar por el aporte!

petya-sector-extractor

Paso 5: Copiamos la clave

Es MUY IMPORTANTE no equivocarse en este paso.

Paso 6: BACKUP!!

Cable aclarar en este paso, que Petya puede tener varias versiones con mínimos cambios, por lo que el decoder podría no poder recuperar la información.

Ahora bien, en criptografía, si intentamos descifrar un dato con una clave diferente a la que se usó para cifrarlo, obtendremos otro dato cifrado. En términos prácticos, darle esta clave a Petya puede ocasionar, o que recuperemos el disco e iniciemos el equipo normalmente, o que perdamos toda la información irremediablemente.

Por lo tanto, vamos a proceder a hacer un backup a nivel de bits del disco en cuestión.

Introducimos un disco extraible en el equipo, que tenga capacidad suficiente para almacenar todo el contenido del disco original sin comprimir. Si hemos ejecutado Kali en otro equipo, el destino del backup puede ser una partición montada.

Ejecutamos lo siguiente:

dd if=/dev/sda of=/punto/de/montaje/backup.img

Donde sda es nuestro disco infectado, y backup.img es el archivo de imagen, dentro del punto de montaje de nuestro disco externo o partición montada.

Paso 7: Reiniciar

Al reiniciar el sistema, veremos la pantalla de Petya en la que podremos introducir ahora la clave obtenida del sistema web de descifrado.

decrypting

Paso 8: Esperar, y cruzar los dedos

Esperamos a que el disco se descifre de Petya, y reiniciamos el ordenador. Si todo salió bien, volveremos a ver el sistema operativo que habíamos perdido, y toda su información!

Conclusiones y referencias

Espero que con este tutorial puedan salvarse «vidas» sin pagar la recompensa!

Este artículo está basado en el artículo original de @hasherezada, el autor del decoder, Petya key decoder.

Para los interesados en el funcionamiento a bajo nivel de Petya, pueden visitar este sitio, es excelente el análisis que hacen!

Desde ya, se agradece si pueden difundir esta info así llega a más víctimas de Petya y pueden librarse sin pagar!!

Y por supuesto, MIL GRACIAS a los autores de estos decoders por compartirlos con la comunidad!!