Red de conocimiento informático - Material del sitio web - ¿Cómo utilizar la vulnerabilidad del ransomware Locky como "vacuna"?

¿Cómo utilizar la vulnerabilidad del ransomware Locky como "vacuna"?

A continuación, aplicaremos la "vacunación" a cualquier modificación sutil del sistema diseñada para bloquear funciones relevantes sin la interacción del usuario. Esto es para evitar los efectos negativos de la ejecución de programas maliciosos. Evidentemente, el uso de la “vacuna” debe ser antes de ser infectado por el virus.

Esta ligera modificación puede ser para crear un mutex y registro específico, o puede ser simplemente modificar los parámetros del sistema. De todos modos, no causará ningún inconveniente al usuario. A continuación se muestra un ejemplo. En la etapa inicial de su ejecución, Locky bloquea el idioma del sistema, pero no hay ninguna configuración relevante para infectar el ruso:

Entonces, si el idioma del sistema está configurado en ruso, entonces el sistema no se infectará y Generalmente pocas personas cambiarán esta configuración.

Vacuna n.° 1: bloquear las ACL en las claves de registro

Después de verificar el idioma del sistema, Locky intentará crear el registro HKCU\Software\Locky; si falla, Locky se detendrá inmediatamente; .

Usar ACL para crear esta clave antes de Locky puede evitar que cualquiera entre y permitir que el sistema complete la "vacunación".

Vacuna n.° 2: valores completos del registro

Luego, Lodge verificará HKCU\Software\Rocky.

Clave, luego busca el ID (código de identificación del infectado), clave pública (clave extraída del servidor, explicada en detalle más adelante), texto de pago (texto presentado al usuario en el idioma especificado) y Valor de registro completo. El último valor del registro muestra el paso final del proceso de cifrado. Locky verificará que si es un valor de registro completo, lo marcará como 1. Si el valor de ID aún contiene el identificador del sistema correcto, dejará de ejecutarse:

El algoritmo de generación de etiquetas es realmente muy simple; . En nuestras pruebas, obtuvimos los siguientes resultados:

1. GetWindowsDirectoryA():C:\ WINDOWS

2. GetVolumeNameForVolumeMountPointA(C:\ WINDOWS):\ \? \Volumen{ b 17db 400-ae8a-11de-9cee-806d 6172696 f }

3 . 665d 25 de 4330 fee 06

4. Convertir a ASCII en mayúsculas, interceptar los primeros 16 caracteres: 1D9076E6FD853AB6.

Cree estos dos registros, uno de los cuales está relacionado con el sistema y bloquea Locky mediante cifrado:

Vacuna n.º 3: claves RSA corruptas

Ingrese antes de cifrar el archivo, Locky envía una solicitud HTTP POST a C&:

(gdb) hexdump 0x923770 0x65

88 09 0c da 46 FD 2c de 1d E8 E4 45 89 18 AE 46 |.. ..Mujer,....E...F|

69 64 3d 31 44 39 30 37 36 45 36 46 44 38 35 33 id = 1d 9076 e6fd 853 |

41423626163743d 6765746b 6579261 | act = getkey & ampa|

666669643d 33266c 616e 673d 66722663 | 26 73 65 72 76 3d 30 26 6f 73 3d. serv=0&os=|

57696e 646f 77732b 58502673703d 3226.

sp = 2 & amp|

78 36 34 3d 30 |x64=0

La primera línea es el valor hash MD5 parcial del búfer. Los datos se codificarán simplemente antes de ser enviados:

Los datos de respuesta se decodifican mediante un algoritmo similar:

Ambos algoritmos se pueden implementar en unas pocas líneas de Python:

Codificación de definición (búfer):

buff = md5(buff). digest() + buff

out = " "

key = 0xcd43ef19

Para índice en rango (len(buff)):

ebx = ord(buff[index])

ecx = (ror(key, 5) - rol(index, 0x0d)) ^ ebx

out+= chr(ecx & amp ;0xff)

edx = (rol(ebx, index & amp0x1f) + ror(key, 1))& amp;0xffffffff

ecx = (ror(index, 0x 17 ) +0x 53702 f68); 0xffffffff

key = edx ^ ecx

Retorno

Definir decodificación (almacenamiento en búfer):

out = " "

key = 0xaff49754

Para índice en rango (len(buff)):

eax =(ord(buff[index])- index-rol (clave, 3))&0xff

out += chr(eax)

clave += ((ror(eax, 0xb) ^rol(clave, 5) ^exponente )+0xb 834 F2 d 1); 0xffffffff

Retorno

Los datos codificados son los siguientes:

00000000:3a F6 b4e 2 83b 1 6405 0758 854 f b 971 a80a:.....d..X.O.q..

00000010:0602 0000 00a 4 0000 5253 4131 0008 0000.....RSA1....

00000020 :0100 0100 2160 3262 90cb 7be 6 9b 94 d54a....! ` 2b..{....J

00000030:45 E0 B6 C3 f624 1e C5 3f 28 7d 06 c868 ca45 E....$..? (}..Educación Superior

00000040:c374 250 f 9ed 9 91 D3 3bd 2 b20f b843 F9 a3. t%....;....C..

00000050:1150 5af 5 4478 4e 90 0af 9 1e 89 66 D2 9860 ....f..`

00000060:4b 60 a289 1a 16 c258 3754 5be 6 7ae 3 a75a k '. .....X7T[.

z..Z

00000070:0be 4 0783 9f 18 46 E4 80f 78195 be65 078 e...F...e..

00000080: de62 3793 2fa 6 cead d 661 e7e 4 2b 40 c92b ./....a..+@.+

00000090:23 C9 4 ab 3 c3aa b560 2258 849 c b9fc b 1a 7 #. J....` " .

000000 B0:80 F6 0 CBF 2bb 4 04eb a4 b5 7e8d 30ad f4d 4....+.....~.0 ...

000000 c0: 70ba f8fb ddae 7270 9103 d385 359a 5a 91p....República de Filipinas....5.Z

000000 d0:4995 9996 3620 3a 12 168 e f 113. 1753d 18b I...6 : ......S..

000000 E0:fdac 1 eed 25a 1 fa5c 0d 54 6d9c dcbd 9cb 7..%..\.Tulio. ...

000000 f 0:4b8e 1228 8b 70 be 13 2 lado bfd f91a 8481 K..(.p..+.......

00000100: dc33 185 e b 181 8 b0f ccbd f89d 67d 3 AFA 8 3. ^.........g...

0000110:c680 17d 8 0100 6438 4 EBA a7b 7 04b 1. d00f......d8N......

00000120: c4fc 94ba