标签:文件目录 ef6 枚举 安全 a20 push 分析 images 复杂
?前言:?⑩如上图所示,GandCrab.00404DC5函数是GandCrab勒索的核心函数,先是利用微软提供的CSP函数获取随机数,如下所示:
????????????????????图片二十二:GetModuleHandleA
?解密字符串,解密后发现是文件名的后缀,如下所示:
????????????????????图片二十三:文件后缀名
?随机生成密钥,且导出公钥,私钥,如下所示:
????????????????????图片二十四:导出Key
?接着创建了注册表ex_data\data,并且设置了随机字符,如下所示:
????????????????????图片二十五:设置注册表
?导入公钥,加密了数据:
????????????????????图片二十六:硬编码公钥导入
?创建了key_datas\datas,设置了public=公钥,private=硬编码加密后私钥(还加了随机数等数据)
????????????????????图片二十七:注册表设置
?有意思的赋值方式,push入栈,pop弹出给寄存器,赋值给内存变量,如下所示:
????????????????????图片二十八:赋值方式
?使用了Base64加密了之前的密钥,然后拼接勒索警告字符串与获取的pc数据,如下所示:
????????????????????图片二十九:勒索警告
??下面压入了文件后缀格式,应该准备枚举网络资源,遍历文件,加密文件了,如下所示:
????????????????????图片三十:GandCrab.00403D8E
?内部创建了两个线程,线程分析一,如下所示:
????????????????????图片三十一:回调函数
????????????????????图片三十二:局域网枚举
????????????????????图片三十四:遍历局域网下文件目录与磁盘
????????????????????图片三十五:递归扫描
????????????????????图片三十六:加密过滤
????????????????????图片三十七:加密过程
????????????????????图片三十八:硬编码公钥加密文件
?线程分析二,如下所示:
?
????????????????????图片三十九:本地文件加密且退出进程
最后调用了函数GandCrab.00405252执行了 ShellExecute,执行了如下指令:
?
??样本中关于利用CVE漏洞提权代码没有分析,因为在测试环境下没有匹配0x1000,跳过了提权函数,上述有很多分析点不够精准,但是还原了样本的整体逻辑。
?关于硬编码公钥加密研究,使用的是CSP又称"加密服务提供者(Cryptographic Service Provider)",微软提供的一套API,后续有机会一起实现与深入研究一番。
?
思维导图:
标签:文件目录 ef6 枚举 安全 a20 push 分析 images 复杂
原文地址:https://blog.51cto.com/13352079/2355303