导航:首页 > 编程语言 > python可视化全球疫苗

python可视化全球疫苗

发布时间:2022-05-01 21:49:24

‘壹’ 如何利用Locky勒索软件漏洞制造“疫苗”

接下来,我们会在不与用户进行交互的情况下将”疫苗”应用于任何旨在阻止相关功能的细微系统改造中,这些改造是为了阻止因恶意程序的执行而引发的负面影响。显而易见的是,”疫苗”的使用必须是在受到病毒感染之前。

这种细微的修改可能是一个具体的互斥体和注册表的创建,或是简单地系统参数的修正,反正这些都不会给用户造成任何不便。下面是一个例子,在其执行的初始阶段,Locky锁定了系统语言,但是没有感染俄语的相关配置:

因此,如果设置系统语言为俄语,那么该系统就不会被感染,而一般情况下很少有人会更改这个设置。
疫苗#1:Locky注册表项中的ACL
在检查系统语言之后,Locky会试图创建 HKCU\Software\Locky 注册表;一旦失败,Locky便会立刻停止。

在Locky之前使用ACL创建此密钥可以阻止任何人进入,这样该系统就完成“疫苗”的接种了。

疫苗#2:已完成的注册表值
之后Locky会检查HKCU\Software\Locky
密钥,然后寻找ID(被感染的识别码)、公共密钥(从服务器提取的密钥,之后会详细解释)、支付文本(以指定语言呈现给用户的文本)和完整的注册表值。最后的注册表值会显示加密过程的最后一步。Locky会进行验证,如果是完整的注册表值,那就会标示为1;如果ID值中还是包含正确的系统识别符,那它会停止运行:

标示符生成算法其实很简单,在我们的测试中得到这样的结果:

1、GetWindowsDirectoryA() : C:\WINDOWS

2.(C:\WINDOWS) : \\?\Volume{ b17db400-ae8a-11de-9cee-806d6172696f}

3.md5({b17db400-ae8a-11de-9cee-806d6172696f}) :

4.转换为大写ASCII并截取前16位字符: 1D9076E6FD853AB6

创建这两个注册表,其中一个是与系统有关的,通过加密阻止Locky:

疫苗#3:损坏的RSA密钥
在加密文件之前,Locky用下面的数据向C&C发送一个HTTP POST请求:

(gdb) hexmp 0x923770 0x65

88 09 0c da 46 fd 2c de 1d e8 e4 45 89 18 ae 46 |....F.,....E...F|

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

41 42 36 26 61 63 74 3d 67 65 74 6b 65 79 26 61 |AB6&act=getkey&a|

66 66 69 64 3d 33 26 6c 61 6e 67 3d 66 72 26 63 |ffid=3&lang=fr&c|

6f 72 70 3d 30 26 73 65 72 76 3d 30 26 6f 73 3d |orp=0&serv=0&os=|

57 69 6e 64 6f 77 73 2b 58 50 26 73 70 3d 32 26 |Windows+XP&sp=2&|

78 36 34 3d 30 |x64=0

第一行是缓冲区的部分MD5 Hash值。数据会在发送之前进行简单编码的:

解码响应数据是通过这种类似的算法:

这两种算法可以通过几行Python实现:

def encode(buff):

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

out = ""

key = 0xcd43ef19

for index in range(len(buff)):

ebx = ord(buff[index])

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

out += chr(ecx & 0xff)

edx = (rol(ebx, index & 0x1f) + ror(key, 1)) & 0xffffffff

ecx = (ror(index, 0x17) + 0x53702f68) & 0xffffffff

key = edx ^ ecx

return out

def decode(buff):

out = ""

key = 0xaff49754

for index in range(len(buff)):

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

out += chr(eax)

key += ((ror(eax, 0xb) ^ rol(key, 5) ^ index) + 0xb834f2d1) & 0xffffffff

return out

编码之后的数据如下:

00000000: 3af6 b4e2 83b1 6405 0758 854f b971 a80a :.....d..X.O.q..

00000010: 0602 0000 00a4 0000 5253 4131 0008 0000 ........RSA1....

00000020: 0100 0100 2160 3262 90cb 7be6 9b94 d54a ....!`2b..{....J

00000030: 45e0 b6c3 f624 1ec5 3f28 7d06 c868 ca45 E....$..?(}..h.E

00000040: c374 250f 9ed9 91d3 3bd2 b20f b843 f9a3 .t%.....;....C..

00000050: 1150 5af5 4478 4e90 0af9 1e89 66d2 9860 .PZ.DxN.....f..`

00000060: 4b60 a289 1a16 c258 3754 5be6 7ae3 a75a K`.....X7T[.z..Z

00000070: 0be4 0783 9f18 46e4 80f7 8195 be65 078e ......F......e..

00000080: de62 3793 2fa6 cead d661 e7e4 2b40 c92b .b7./....a..+@.+

00000090: 23c9 4ab3 c3aa b560 2258 849c b9fc b1a7 #.J....`"X......

000000a0: b03f d9b1 e5ee 278c bf75 040b 5f48 9501 .?....'..u.._H..

000000b0: 80f6 0cbf 2bb4 04eb a4b5 7e8d 30ad f4d4 ....+.....~.0...

000000c0: 70ba f8fb ddae 7270 9103 d385 359a 5a91 p.....rp....5.Z.

000000d0: 4995 9996 3620 3a12 168e f113 1753 d18b I...6 :......S..

000000e0: fdac 1eed 25a1 fa5c 0d54 6d9c dcbd 9cb7 ....%..\.Tm.....

000000f0: 4b8e 1228 8b70 be13 2bfd face f91a 8481 K..(.p..+.......

00000100: dc33 185e b181 8b0f ccbd f89d 67d3 afa8 .3.^........g...

00000110: c680 17d8 0100 6438 4eba a7b7 04b1 d00f ......d8N.......

00000120: c4fc 94ba

阅读全文

与python可视化全球疫苗相关的资料

热点内容
职业生涯pdf 浏览:953
ubuntu安装软件php 浏览:158
黑马程序员退学流程 浏览:361
网页服务器崩溃怎么回事 浏览:650
cnc编程前景怎么样 浏览:319
lniux命令详解 浏览:493
linuxmysql查询日志 浏览:368
老捷达伙伴压缩比 浏览:93
改后缀加密 浏览:432
邮局选址问题算法 浏览:14
河北服务器内存云主机 浏览:12
在电脑上怎么找到加密狗图标 浏览:435
电脑的浏览器怎么打开pdf文件怎么打开 浏览:142
pdf卡片库下载 浏览:11
单片机中二进制表示什么 浏览:725
java网络编程推荐 浏览:795
施耐德开关编程 浏览:66
组织胚胎学pdf 浏览:844
linux查看发包 浏览:496
加密货币交易所暴利时代 浏览:824