(一)準(zhǔn)備階段
1、獲取本機(jī)的殺毒軟件信息
2饼灿、獲取本機(jī)信息
勒索Id的生成方法和之前版本一樣,都是利用RtlComputerCrc32()函數(shù)將本機(jī)硬件信息生成的CRC32,然后再拼接上 小寫的GetVolumeInformationW獲取到的卷序列號(hào)地址(pVolumeSerialNumber )斋攀。
因?yàn)榘薌etVolumeInformationW獲取到卷序列號(hào)的地址(pVolumeSerialNumber )奥此,都保證了每臺(tái)受感染機(jī)器生成的id獨(dú)一無二弧哎。
3、RC4加密本機(jī)信息
關(guān)于RC4的Sbox:
整體加密算法:
4稚虎、區(qū)域豁免
獲取本機(jī)使用的語言信息撤嫩,如果屬于以下語言之一,就不對此電腦進(jìn)行加密蠢终。
5序攘、創(chuàng)建唯一的互斥體
創(chuàng)建為"Global\8B5BDDB94369950A5F4C.luck" ?的互斥體茴她,防止多個(gè)實(shí)例相互干擾。因?yàn)橛玫搅司硇蛄刑?hào)的地址程奠,因此每臺(tái)電腦上的互斥體名稱都是唯一的丈牢。
(1),(2)是互斥體"Global\8B5BDDB94369950A5F4C.lock"名稱產(chǎn)生的詳細(xì)流程瞄沙。
(1)明文數(shù)據(jù):2A8972E8
通過GetVolumeInformationW獲取到卷序列號(hào)的地址(pVolumeSerialNumber )是AA25CBA3赡麦,然后將卷序列號(hào)的地址右移2位,得到2A8972E8帕识。
(2)Sala20加密:
64字節(jié)的輸入數(shù)據(jù)(4個(gè)常量詞的選取是由expand 32-byte k得來):
Salsa20函數(shù):
加密后:UNICODE "8B5BDDB94369950A5F4C469DD8A7A"泛粹,然后取加密后的前20個(gè)字節(jié)8B5BDDB94369950A5F4C,然后拼接成"Global\8B5BDDB94369950A5F4C.luck"作為互斥體的名稱肮疗。
6晶姊、查殺進(jìn)程
要查殺的進(jìn)程名單內(nèi)有71個(gè)進(jìn)程,相比于GandCrab5.0.4(39個(gè))伪货,這一版本要查殺的進(jìn)程完善了很多
7们衙、解密生成RSA公鑰
將一段全局?jǐn)?shù)據(jù)異或5,然后使用Salsa20進(jìn)行解密碱呼,得到RSA公鑰蒙挑。
Salsa20算法:
Salsa20的秘鑰和初始向量:
Salsa20函數(shù):
8、指定要加密文件的后綴名
...a.n.i. ...c.a.b. ...c.p.l. ...c.u.r. ...d.i.a.g.c.a.b. ...d.i.a.g.p.k.g. ?...d.l.l. ...d.r.v. ...l.o.c.k. ...h.l.p. ...l.d.f. ...i.c.l. ...i.c.n.s. ...i.c.o. ...i.c.s. ...l.n.k. ...k.e.y....i.d.x. ...m.o.d. ...m.p.a. ...m.s.c. ...m.s.p. ...m.s.s.t.y.l.e.s. ...m.s.u. ...n.o.m.e.d.i.a. ...o.c.x. ...p.r.f. ...r.o.m....r.t.p. ...s.c.r. ...s.h.s. ...s.p.l. ...s.y.s. ...t.h.e.m.e. ...t.h.e.m.e.p.a.c.k. ...e.x.e. ...b.a.t. ...c.m.d. ...g.a.n.d.c.r.a.b. ...K.R.A.B. ...C.R.A.B. ...z.e.r.o.p.h.a.g.e._.i._.l.i.k.e._.y.o.u.r._.p.i.c.t.u.r.e.s.. ...r.a.r. ...z.i.p. ...c.a.b. ...a.r.j. ...l.z.h. ...t.a.r. ...7.z. ...g.z.i.p. ...i.s.o. ?...z. ...7.-.z.i.p. ...l.z.m.a. ...v.m.x. ...v.m.d.k. ...v.m.e.m. ...v.d.i. . ...v.b.o.x . ?...1.s.t. ...6.0.2. ...d.o.c.b. ...x.l.m. ...x.l.s.x....x.l.s.m. ...x.l.t.x. ...x.l.t.m. ...x.l.s.b. ...x.l.a. ...x.l.a.m. ...x.l.l. ...x.l.w. ...p.p.t. ...p.o.t. ...p.p.s. ...p.p.t.x. ...p.p.t.m. ...p.o.t.x. ...p.o.t.m. ...p.p.a.m. ...p.p.s.x. ...p.p.s.m. ...s.l.d.x. ...s.l.d.m. ...x.p.s. ...x.l.s. ...x.l.t..._.d.o.c. ...d.o.t.m. ?..._.d.o.c.x. ...a.b.w. ...a.c.t. ...a.d.o.c. ...a.i.m. ...a.n.s. ...a.p.k.g. ...a.p.t. ?...a.s.c. ...a.s.c. ...a.s.c.i.i. ...a.s.e. ...a.t.y. ...a.w.p. ...a.w.t. ...a.w.w. ?...b.a.d. ...b.b.s. ...b.d.p. ...b.d.r. ...b.e.a.n. ...b.i.b. ...b.i.b. ...b.i.b.t.e.x. ...b.m.l. ...b.n.a. ...b.o.c. ...b.r.x. ...b.t.d. ...b.z.a.b.w. ...c.a.l.c.a. ...c.h.a.r.s.e.t. ...c.h.a.r.t. ...c.h.o.r.d. ...c.n.m. ...c.o.d. ...c.r.w.l. ...c.w.s. ...c.y.i. ...d.c.a. ...d.f.t.i. ...d.g.s. ...d.i.z. ...d.n.e. ...d.o.t. ...d.o.c. ...d.o.c.m. ...d.o.t.x. ...d.o.c.x. ...d.o.c.x.m.l. ...d.o.c.z. ...d.o.x. ...d.r.o.p.b.o.x. ...d.s.c. ...d.v.i. ...d.w.d. ...d.x. ...d.x.b. ...d.x.p. ...e.i.o. ...e.i.t. ...e.m.f. ...e.m.l. ...e.m.l.x. ...e.m.u.l.e.c.o.l.l.e.c.t.i.o.n . ...e.p.p. ...e.r.r. ...e.r.r. ...e.t.f. ...e.t.x. ...e.u.c. ...f.a.d.e.i.n...t.e.m.p.l.a.t.e. ...f.a.q. ...f.b.l. ...f.c.f. ...f.d.f. ...f.d.r. ...f.d.s. ...f.d.t. ...f.d.x. ...f.d.x.t. ?...f.f.t. ...f.g.s. ...f.l.r. ...f.o.d.t. ...f.o.u.n.t.a.i.n. ...f.p.t. ...f.r.t. ...f.w.d. ...f.w.d.n. ...g.m.d. ...g.p.d. ...g.p.n. ...g.s.d. ...g.t.h.r. ...g.v. ...h.b.k. ...h.h.t. ...h.s. ...h.w.p. ...h.w.p. ...h.z. ...i.d.x. ...i.i.l. ...i.p.f. ...i.p.s.p.o.t. ...j.a.r.v.i.s. ...j.i.s. ...j.n.p. ...j.o.e. ...j.p.1. ...j.r.t.f. ...j.t.d. ...k.e.s. ...k.l.g. ...k.l.g. ...k.n.t. ...k.o.n. ...k.w.d. ...l.a.t.e.x. ...l.b.t. ...l.i.s. ...l.n.t. ...l.o.g. ...l.p.2. ...l.s.t. ...l.s.t. ...l.t.r. ...l.t.x. ...l.u.e. ...l.u.f. ...l.w.p. ...l.x.f.m.l. ...l.y.t. ...l.y.x. ...m.a.n. ...m.b.o.x. ?...m.c.w. ...m.d.5. ...m.e. ...m.e.l.l. ...m.e.l.l.e.l. ...m.i.n. ...m.n.t. ...m.s.g. ...m.w. ...m.w.d. ...m.w.p....n.b. ...n.d.o.c. ...n.f.o. ...n.g.l.o.s.s. ...n.j.x. ...n.o.t.e. ...n.o.t.e.s. ...n.o.w. ...n.w.c.t.x.t. ...n.w.m. ...n.w.p....o.c.r. ...o.d.i.f. ...o.d.m. ...o.d.o. ...o.d.t. ...o.f.l. ...o.p.e.i.c.o. ...o.p.e.n.b.s.d. ...o.r.t. ...o.t.t. ...p.7.s. ?...p.a.g.e.s. ...p.a.g.e.s.-.t.e.f. ...p.d.p.c.m.d. ...p.f.x. ...p.j.t. ...p.l.a.i.n. ...p.l.a.n.t.u.m.l. ...p.m.o. ...p.r.t. ...p.r.t. ...p.s.w. ...p.u. ...p.v.j. ...p.v.m. ...p.w.d. ...p.w.d.p . ...p.w.d.p.l. ...p.w.i. ...p.w.r. ...q.d.l. ...q.p.f. ...r.a.d. ...r.e.a.d.m.e. ...r.f.t ?...r.i.s. ...r.p.t. ...r.s.t. ...r.t.d. ...r.t.f. ...r.t.f.d. ...r.t.x. ...r.u.n. ...r.v.f. ...r.z.k. ...r.z.n. ...s.a.f. ...s.a.f.e.t.e.x.t. ...s.a.m. ...s.a.m. .. .s.a.v.e. ...s.c.c. ?...s.c.m. ...s.c.r.i.v. ...s.c.r.i.v.x. ...s.c.t. ...s.c.w. ...s.d.m. ...s.d.o.c. ...s.d.w. ...s.e. ...s.e.s.s.i.o.n. ...s.g.m. ...s.i.g. ...s.k.c.a.r.d. ...s.l.a. ...s.l.a...g.z. ...s.m.f. ...s.m.s. ...s.s.a. ...s.t.o.r.y. ...s.t.r.i.n.g.s. ...s.t.w. ...s.t.y. ...s.u.b.l.i.m.e.-.p.r.o.j.e.c.t. ...s.u.b.l.i.m.e.-.w.o.r.k.s.p.a.c.e. ...s.x.g. ...s.x.w. ...t.a.b. ...t.a.b. ...t.d.f. ...t.d.f. ...t.e.m.p.l.a.t.e. ...t.e.x. ...t.e.x.t. ...t.e.x.t.c.l.i.p.p.i.n.g. ...t.h.p. ...t.l.b. ...t.m....t.m.d. ...t.m.d.x. ...t.m.v. ...t.m.v.x. ...t.p.c. ...t.r.e.l.b.y. ...t.v.j. ...t.x.t. ...u.3.i. ...u.n.a.u.t.h. ...u.n.x. ...u.o.f. ...u.o.t. ...u.p.d. ...u.t.f.8. ...u.t.x.t. ...v.c.t. ...v.n.t. ...v.w. ...w.b.k. ...w.e.b.d.o.c. ...w.n. ?...w.p. ...w.p.4. ...w.p.5. ...w.p.6. ...w.p.7. ...w.p.a. ...w.p.d. ...w.p.d....w.p.d. ...w.p.l. ...w.p.s. ...w.p.s. ...w.p.t. ...w.p.t. ...w.p.w. ...w.r.i. ...w.s.d. ...w.t.t ?...w.t.x. ...x.b.d.o.c. ...x.b.p.l.a.t.e. ...x.d.l. ...x.d.l. ...x.w.p. ...x.w.p. ...x.w.p. ...x.y. ...x.y.3. ...x.y.p. ...x.y.w. ...z.a.b.w. ...z.r.t.f. ...z.w.
9愚臀、生成User公私鑰
生產(chǎn)User公私鑰函數(shù):
User公鑰:
User私鑰:
10忆蚀、加密后的User私鑰
User私鑰被使用Salsa20算法加密,并在其前拼接上被User公鑰加密的512個(gè)字節(jié)姑裂。這512個(gè)字節(jié)中記錄加密User私鑰的Salsa20密鑰馋袜。以下是加密流程:
① 兩次調(diào)用CryptGenRandom,第一次生成32字節(jié)隨機(jī)字符串作為Salsa20的key舶斧,記錄在數(shù)據(jù)開頭的第一個(gè)256字節(jié)欣鳖,第二次生成8字節(jié)隨機(jī)字符串作為Salsa20的向量,記錄在數(shù)據(jù)的第二個(gè)256字節(jié)茴厉。
32字節(jié)的key:
8字節(jié)的向量:
② User私鑰記錄在數(shù)據(jù)的256*2字節(jié)后泽台,User私鑰用Salsa20加密。
Salsa20的密鑰:
Salsa20函數(shù):
③,包含Salsa20 key的256個(gè)字節(jié)和包含Salsa20初始向量的256個(gè)字節(jié)分別用RSA算法加密,密鑰是RSA公鑰沪哺。沒有攻擊者的RSA私鑰無法通過解密RSA算法得出Salsa20密鑰烤镐,因此也就無法獲取User私鑰。
11、生成隨機(jī)字符串,這個(gè)字符串的作用是作為被加密文件的新后綴名
12鲫尊、創(chuàng)建\HKEY_LOCAL_MACHINE\SOFTWARE\ex_data\data笔横,記錄生成的隨機(jī)字符串?竞滓,這個(gè)字符串將作為被加密文件的新后綴名。
13吹缔、在\HKEY_LOCAL_MACHINE\SOFTWARE\keys_data\data商佑,在public上:記錄User公鑰。private上:記錄加密后的User私鑰
14厢塘、加密后的User私鑰和加密后的本機(jī)信息被用Base64加密 茶没。這兩個(gè)信息又被記錄在了勒索信中
15、在C盤下創(chuàng)建勒索信晚碾,勒索信的命名方式是:“注冊表中記錄的后綴名-DECRYPT.txt“抓半。
勒索信中記錄了繳納贖金的詳細(xì)步驟,RSA加密的User私鑰和RC4加密的本機(jī)信息的base64
(二)加密階段
1格嘁、在要加密文件的同級目錄下創(chuàng)建勒索信笛求,勒索信的命名方式是:“勒索后綴名-DECRYPT.txt“。
勒索信中記錄了繳納贖金的詳細(xì)步驟糕簿,RSA加密的User私鑰和RC4加密的本機(jī)信息的base64
2探入、 排除以下文件,文件夾懂诗,不對其進(jìn)行加密蜂嗽。以防對操作系統(tǒng)進(jìn)行損害和誤將勒索信進(jìn)行加密。
3殃恒、遍歷磁盤植旧,對文件進(jìn)行加密。
加密的文本過程分為:加密文本整體User公鑰芋类;加密帶有Salsa20秘鑰的540個(gè)字節(jié)隆嗅;最后將這兩部分進(jìn)行拼接:加密的文本=Salsa20加密后的文本整體 拼接上 RSA加密后的文件末尾540個(gè)字節(jié)
以下是加密的具體步驟:
(1)判斷文件是否有加密的標(biāo)識(shí)
① 文件的后綴名是不是和注冊表中記錄的后綴名一樣
②?取文件末尾的540個(gè)字節(jié)界阁,判斷這540個(gè)字節(jié)中倒數(shù)第一個(gè)4字節(jié)是不是 0x38281侯繁,倒數(shù)第二個(gè)4字節(jié)是不是0x93892918。
(2)對文件末尾的540個(gè)字節(jié)中的進(jìn)行處理加密:前512字節(jié)記錄Salsa20秘鑰,使用RSA加密泡躯;20字節(jié)記錄文本加密前信息贮竟;8字節(jié)記錄加密后的標(biāo)識(shí);
① 8字節(jié)記錄加密后的標(biāo)識(shí):
賦值加密后的標(biāo)識(shí)給這540字節(jié)的末尾:將數(shù)據(jù)從第532字節(jié)開始賦值為0x38281较剃,將數(shù)據(jù)從536字節(jié)開始賦值為為0x93892918咕别。
② 前512字節(jié)記錄Salsa20秘鑰,RSA算法加密写穴,密鑰是User公鑰:
調(diào)用兩次CryptGenRandom惰拱,第一次產(chǎn)生32字節(jié)的隨機(jī)字符串作為Salsa20的key。第二次產(chǎn)生8字節(jié)的隨機(jī)字符串作為Salsa20的向量
32字節(jié)的key:
8字節(jié)的向量:
③ 在這540字節(jié)中存儲(chǔ)Salsa20的密鑰啊送,然后用User公鑰加密:分為兩步
a),將第一個(gè)256個(gè)字節(jié)中的前32字節(jié)替換成Salsa20的key偿短。再將256字節(jié)數(shù)據(jù)使用RSA算法加密欣孤,密鑰是User公鑰。
b),將第二個(gè)256個(gè)字節(jié)中的前8個(gè)字節(jié)替換成Salsa20的向量昔逗。再將256字節(jié)數(shù)據(jù)使用RSA算法加密降传,密鑰是User公鑰。
User公鑰加密函數(shù):
④ 20字節(jié)中記錄文本加密前總大小勾怒,每次加密文本字節(jié)數(shù)和加密的次數(shù)
(3)文本整體加密
① 每次讀取文件0x10 0000(1M)的字節(jié)數(shù)據(jù)進(jìn)行加密
② 加密:加密算法是Salsa20加密
帶key(32字節(jié)的隨機(jī)字符串)和向量(8字節(jié)的隨機(jī)字符串)的64字節(jié)的數(shù)據(jù):
Salsa20加密:
(4)拼接構(gòu)成加密后的文本:加密的文本=加密后的文本整體 拼接上 加密后的本身末尾的540個(gè)字節(jié)
(5)在加密后的文本名稱后添加上注冊表中記錄的后綴名婆排。至此加密文本完結(jié)。
(三)笔链、其他階段
1段只、加密局域網(wǎng)中共享目錄下的文件
2、傳送本機(jī)信息
(1)url的生成如下
① 遍歷網(wǎng)址鉴扫,每個(gè)網(wǎng)址之間是用分號(hào)隔開的翼悴。
② 拼接URL:從a),b)幔妨,c)鹦赎,d)中選取字符進(jìn)行url拼接。
a):wp-content误堡、static古话、content、includes锁施、data陪踩、uploads、news
b):images悉抵、pictures肩狂、image、graphic姥饰、assets傻谁、pics、imgs列粪、tmp
c):im审磁、de、ka岂座、ke态蒂、am、es费什、so钾恢、fu、se、da瘩蚪、he刑桑、ru、me募舟、mo祠斧、th、zu
d):jpg拱礁、png琢锋、gif、bmp
例如:
(2)發(fā)送數(shù)據(jù):發(fā)送數(shù)據(jù)到拼接出的url
數(shù)據(jù)標(biāo)頭"Content-Type: multipart/form-data"要傳送的數(shù)據(jù)是已經(jīng)加密的本機(jī)信息的base64
3呢灶、刪除文件備份
4吴超、設(shè)置桌面背景
圖片位置:C:\Users\15pb-win7\AppData\Local\Temp\bxmeoengtf.bmp
桌面背景: