Petya es un crypto-ransomware que hace aproximadamente un mes pegó muy fuerte sobretodo en Alemania mediante una campaña de spam dirigida a organizaciones de recursos humanos por medio de correos electrónicos con solicitudes de empleo. Estos correos contenían un enlace a un archivo de Dropbox que era un dropper que descargaba e instalaba Petya.
Una vez instalado, el ransomware sobrescribe los primeros sectores del disco, incluyendo el MBR (Master Boot Record), y realiza un respaldo cifrado con XOR. A continuación fuerza el reinicio de Windows y muestra una falsa pantalla de chequeo del disco (CHKDSK) mientras que, en segundo plano, cifra la MFT (Master File Table). Sin acceso a la MFT, el sistema operativo no tendrá la información de los archivos de su volumen (nombre, tamaño y el mapeo de sectores del disco duro) y al arrancar la víctima se encontrará con una desagradable sorpresa:
Para descifrar la MFT el ransomware solicita unos 0.99 BTC (unos 371€) para obtener la clave de descifrado.
El 31 de marzo Hasherezade, investigador de Malwarebytes, descubrió que el malware cifraba el MBR simplemente con XOR y el carácter ASCII 7 (0x37 en hexadecimal). Sabiendo ésto, publicó una herramienta para recuperar la clave en la fase 1, si el sistema no ha sido reiniciado después de la infección. Podéis descargar el binario y también el código fuente.
Pero sobretodo y hace unos días, el anónimo leostone consiguió crackear también la segunda fase, siendo capaz de encontrar la clave usada por Petya para cifrar la MBR en sólo unos segundos. A grandes rasgos el código de su herramienta re-implementa el algoritmo de hashing usado para generar la clave, un algoritmo Salsa pero que opera en 16 bits en lugar de 32 y sólo aleatoriza la matriz 10 veces. Podéis encontrar el código en Github:
https://github.com/leo-stone/hack-petya
Eso sí, para utilizar la herramienta es necesario previamente extraer del disco infectado los siguientes datos y convertirlos a base64:
- Sector de verificación de cifrado: 512-bytes (sector 55 [0x37] offset: 0 [0x0])
- Nonce: 8-bytes (sector 54 [0x36] offset: 33 [0x21])
Pero no os preocupéis, si no queréis tirar de 'dd' o de algún editor hexadecimal, el investigador Fabian Wosar de Emsisoft ha desarrollado también una herramienta "Petya Sector Extractor" para facilitar la extracción:
Luego con la información obtenida, se puede ejecutar el script en go pegando los datos en src.txt y nonce.txt respectivamente o, más fácil, directamente pegando en la web https://petya-pay-no-ransom.herokuapp.com/ o https://petya-pay-no-ransom-mirror1.herokuapp.com/ para generar la clave:
Fuentes:
- Petya – Taking Ransomware To The Low Level
- Researchers Learning More About Petya Ransomware
- Petya key decoder
- SALSA algorithm
- Infected by Petya ransomware? Use this tool to unlock your files... for now
- Ransomware bug leads to Petya decryptor
- Petya Ransomware's Encryption Defeated and Password Generator Released
Una vez instalado, el ransomware sobrescribe los primeros sectores del disco, incluyendo el MBR (Master Boot Record), y realiza un respaldo cifrado con XOR. A continuación fuerza el reinicio de Windows y muestra una falsa pantalla de chequeo del disco (CHKDSK) mientras que, en segundo plano, cifra la MFT (Master File Table). Sin acceso a la MFT, el sistema operativo no tendrá la información de los archivos de su volumen (nombre, tamaño y el mapeo de sectores del disco duro) y al arrancar la víctima se encontrará con una desagradable sorpresa:
Para descifrar la MFT el ransomware solicita unos 0.99 BTC (unos 371€) para obtener la clave de descifrado.
El 31 de marzo Hasherezade, investigador de Malwarebytes, descubrió que el malware cifraba el MBR simplemente con XOR y el carácter ASCII 7 (0x37 en hexadecimal). Sabiendo ésto, publicó una herramienta para recuperar la clave en la fase 1, si el sistema no ha sido reiniciado después de la infección. Podéis descargar el binario y también el código fuente.
Pero sobretodo y hace unos días, el anónimo leostone consiguió crackear también la segunda fase, siendo capaz de encontrar la clave usada por Petya para cifrar la MBR en sólo unos segundos. A grandes rasgos el código de su herramienta re-implementa el algoritmo de hashing usado para generar la clave, un algoritmo Salsa pero que opera en 16 bits en lugar de 32 y sólo aleatoriza la matriz 10 veces. Podéis encontrar el código en Github:
https://github.com/leo-stone/hack-petya
Eso sí, para utilizar la herramienta es necesario previamente extraer del disco infectado los siguientes datos y convertirlos a base64:
- Sector de verificación de cifrado: 512-bytes (sector 55 [0x37] offset: 0 [0x0])
- Nonce: 8-bytes (sector 54 [0x36] offset: 33 [0x21])
Pero no os preocupéis, si no queréis tirar de 'dd' o de algún editor hexadecimal, el investigador Fabian Wosar de Emsisoft ha desarrollado también una herramienta "Petya Sector Extractor" para facilitar la extracción:
Luego con la información obtenida, se puede ejecutar el script en go pegando los datos en src.txt y nonce.txt respectivamente o, más fácil, directamente pegando en la web https://petya-pay-no-ransom.herokuapp.com/ o https://petya-pay-no-ransom-mirror1.herokuapp.com/ para generar la clave:
Fuentes:
- Petya – Taking Ransomware To The Low Level
- Researchers Learning More About Petya Ransomware
- Petya key decoder
- SALSA algorithm
- Infected by Petya ransomware? Use this tool to unlock your files... for now
- Ransomware bug leads to Petya decryptor
- Petya Ransomware's Encryption Defeated and Password Generator Released
Comentarios
Publicar un comentario