本文原创作者:降草,本文属freebuf原创奖励计划,未经许可禁止转载
近日,fortinet截获一种使用python语言编写的勒索软件,并将其命名为 “fsociety locker”。之所以命名为“fsociety locker”,是因为勒索软件作者是美剧“黑客军团”的粉丝,勒索软件作者使用了“fs0ciety”作为文件加密后的后缀名。 今天我们就对这款勒索软件进行分析。
行为特征
在win7系统上运行的效果为:
运行后对文件的加密处理:
此exe是由pyinstall生成。pyinstall生成的exe文件有下面几个显著特征:
特征一:字符串特点,在字符串中会出现使用的python的模块文本
使用strings.exe查看exe的字符串信息,可以看到有好多python的模块的文本内容:
特征二:算法特点。pyinstall会将python的解释程序使用zlib算法压缩打包
使用peid的kanal查看加密算法,可以看到程序所使用的算法
特征三:进程特征。pyinstall生成的exe会启动自身做为子进程,同时父进程会创建一个互斥体等待子进程的结束,一旦子进程结束后,父进程也随之结束:
源代码分析
使用pyinstxtractor.py 脚本可以用来提取pyinstall打包的exe文件的内容,脚本同时也可以提取出可执行文件中的pyz文件的内容。
使用pyinstxtractor.py将exe反编译成py文件
进入解压出来的文件夹中的翻找一番,看到scolding文件,这就是原始的py文件
查看scolding文件的内容,可以知道scolding是一个python写的勒索者软件。
对scolding文件的分析
在main函数中
首先,调用regwrite函数,将自身写入启动项
调用shadow_wipe删除系统还原备份
遍历c-z盘符,得到指定扩展名的文件列表
对汇总得到文件,通过函数file_buster_network使用密钥“123456789123456”进行加密
通过对源代码的分析,我们基于下列理由相信,此勒索软件正在处于调试开发阶段,这可能也是这款勒索软件现在还没有大范围流行起来的原因。
1.代码中通过注释的方式取消了通过共享传播的函数,
2.代码中也写好了获取tor浏览器及运行tor代理的代码,而这些代码并没有得到调用执行
3.程序中写好了修改桌面壁纸显示勒索信息的代码,这些代码也没有被调用执行。
总结
python 语言拥有开发快,语言简洁,简单易学,类库众多等优点,这使的勒索软件作者可以使用python方便的进行恶意软件开发,根据2016年6月tiobe编程语言排行榜,python已经打入编程语言前五名。python的快速普及也使python开发的恶意程序也普遍起来。可以预见,在不久的未来,此类的勒索软件也极可能会出现linux和mac os的变种。
比较有意思的是,国内杀软对此样本目前仍全部失身。
pyinstxtractor脚本下载
参考资料:
<a href="https://blog.fortinet.com/2016/09/01/take-it-easy-and-say-hi-to-this-new-python-ransomware">https://blog.fortinet.com/2016/09/01/take-it-easy-and-say-hi-to-this-new-python-ransomware</a>
<a href="http://news.softpedia.com/news/fsociety-ransomware-is-here-but-it-s-pretty-lame-507450.shtml">http://news.softpedia.com/news/fsociety-ransomware-is-here-but-it-s-pretty-lame-507450.shtml</a>
本文转自d1net(转载)