Análisis de malware
Análisis inicial de Petya Ransomware
julio 26, por Ninja de seguridad
El siguiente documento es un análisis de nivel inicial del reciente Petya Ransomware (). También discutiremos un análisis de una variante dll del ransomware.
Objetivo del ransomware:
Cifre la máquina de destino y solicite un rescate (en Bitcoins) para descifrarla.
¡Conviértete en un ingeniero inverso certificado!
Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender
Objetivo del análisis:
Primero, este documento no contiene todos los indicadores pero explicará el proceso de muestra. El objetivo del análisis es realizar algunos análisis de código en un disimulador y luego realizar también un análisis dinámico para ver artefactos mientras el malware está en acción.
Información certificada
La variante Petya utiliza un certificado de Microsoft caducado.
Dado que el objetivo de este ransomware es cifrar la máquina objetivo, prefiero hacer un análisis estático (es decir, analizar el malware sin ejecutarlo) en IDA Pro y comprobar si podemos ver alguna función interesante.
Análisis estático
- Dll se carga en IDA pro y, como se esperaba, se detiene en el punto de entrada de dll (main() para dll).
- El ejemplo utiliza la siguiente función, llamando a CreateToolhelp32snapshot seguido de Process32First y Process 32 Next. Esto significa que el espécimen está enumerando la máquina víctima para ejecutar procesos.
- Los autores han aplicado XOR a los nombres de los procesos que están revisando. Después de un poco de desofuscación, resultó que están comprobando el siguiente AV
- Kaspersky, Norton Seguridad, Symantec.
- Los autores han aplicado XOR a los nombres de los procesos que están revisando. Después de un poco de desofuscación, resultó que están comprobando el siguiente AV
- Según los permisos de SeDebugPrivilege, el malware llamará a tres API para cifrar los archivos mediante cifrado AES en la memoria.
- Encontrar archivo
- VistaMapaDeArchivo
- FLushViewOfFile
- Después de esa muestra, elimina sus actividades eliminando los registros de eventos de configuración, sistema, seguridad y aplicaciones utilizando weutil. También usó fsutil para eliminar el diario de cambios de USN (para eliminar rastros de cualquier actualización del volumen).
- Observe los comandos wevutil cl y fsutil /D a continuación
- Para el movimiento lateral, Petya hace lo siguiente:
- Intenta establecer una conexión con admin$ con una llamada a WNetAddConnection con un nombre de usuario y contraseña nulos, lo que significa que el espécimen está usando credenciales de usuario actuales que explotarán las cuentas de administrador local compartidas.
- Una vez realizada la conexión, el malware creará una copia de sí mismo usando CreateFile() y WriteFile().
- Luego, el archivo recién creado se ejecuta utilizando una utilidad integrada que la muestra extrae como dllhost.dat (C:Windows) en el sistema de destino. Este archivo dllhost.dat utiliza %s -acceptula -s, que es una opción silenciosa para PSEXEC. Al enviar archivos dllhost.dat a VirtuTotal, se revela como PSEXEC.
- Si el método anterior falla, el malware intentará ejecutar el archivo dllhost.dat utilizando WMIC.exe.
- El ejemplo también utiliza DHcpEnumSubnets, DHCPSubnetINfo, DHCPSubnetCLients para enumerar todos los clientes del dominio.
- Si la muestra obtiene SEDebugPrivilege, entonces la muestra también accederá al dispositivo físico.
- El espécimen recopila todos los archivos que se enumeran a continuación.
- A continuación se muestra parte del texto del banner de Petya que veremos una vez que el sistema de destino esté cifrado.
- A continuación se muestra el mensaje CHKDSK falso.
Análisis dinámico
- Dado que se trata de una DLL, debe ejecutarse con rundll32 como se muestra a continuación.
- Tan pronto como se crea la tarea, crea una tarea programada para apagar el sistema. He observado que proporciona un búfer de aproximadamente una hora antes de que se inicien las tareas programadas. En este período de búfer, el malware se apoderará de todo el sistema y también intentará enumerar la red, ya que justo antes del cierre, el malware se eliminará. y si se apaga inmediatamente, pierde la oportunidad de propagarse en la red.
- A continuación se muestran los procesos creados por el espécimen.
- Como se mencionó anteriormente en el análisis estático.
- Crea una tarea programada
- Crea un archivo tmp en la carpeta local AppData
- Crea el archivo dllhost.dat en C:Windows
- También noté que la muestra eliminará el archivo malicioso (petya.dll) en este caso y lo copiará a C:Windows. Quienes todavía siguen el documento sabrán por qué mencioné este punto. (Más adelante en Kill Switch)
- Como se mencionó anteriormente en el análisis estático.
- Hay una gran cantidad de eventos CreateFile por parte de este espécimen, ya que necesita obtener los archivos en el sistema para cifrarlos.
- Una vez que se inicien las tareas programadas, como se esperaba, aparecerá el mensaje FAKECHKDSK.
Derrotar el proceso de Petya (juicio)
Pensé en probar un par de técnicas para evitar el proceso de cifrado o detener por completo la ejecución del malware.
- Intenté utilizar la utilidad del controlador Cisco MBRFilter que, según Cisco, evitará cualquier intento de sobrescribir el registro MBR.
Esto no funcionó para mí y Petya cifró mi sistema con éxito incluso con este controlador ejecutando L .
- Hay algunas noticias sobre un Kill Switch de Petya que incluye el archivo perfc en el directorio C:Windows. Seguí ciegamente las noticias y creé los siguientes archivos de aplicación perfc* en modo de solo lectura.
Pero no funcionó y Petya volvió a cifrar mi dispositivo. La lectura del código revela que la muestra está buscando exactamente el mismo archivo que se ejecuta como muestra. En nuestro caso es petya.dll. Así que creé un nuevo archivo de aplicación Petya.dll y lo hice de solo lectura.
Y esta vez funcionó. Pude ver el proceso de malware creado pero luego se eliminó después de ver la existencia de petya.dll. No se creó ninguna tarea programada como se mencionó anteriormente.
Para estar seguro, reinicié mi sistema y volvió a estar en buenas condiciones.
¡Conviértete en un ingeniero inverso certificado!
Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender
Entonces, este es el análisis inicial. Trabajaré en el proceso de extracción de credenciales en este malware y también revisaré qué parámetros de pila se pueden ver en el depurador.