PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

  • A+
所属分类:ptython全栈开发

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

样本分析

· 5ffefc13a49c138ac1d454176d5a19fd – EK释放的下载器

· b508908cc44a54a841ede7214d34aff3 –恶意安装器(MinerBlocker)

· e5ba5f821da68331b875671b4b946b56 –注入python的主DLL

· 596dc36cd6eabd8861a6362b6b55011a – injecteex64 (注入浏览器的DLL,64位)

· 645176c6d02bdb8a18d2a6a445dd1ac3 – injecteex86 (注入浏览器的DLL,64位)

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

传播方法

上面描述的样本是RIG利用套件释放的:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

行为分析

安装

利用套件释放的主执行文件是一个下载器。这个下载器非常简单,并且没有混淆。可以看到资源中的脚本:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

作用是取出第二个安装器,其中第二个安装器中含有所有的恶意python脚本。第二个部分就是MinerBlocker。

如果下载的组件单机运行,那么行为就是一个正常的、合法的安装器。而且会看到下面的信息:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

这看起来像一个拦截恶意挖矿机的合法应用。但是研究人员没有找到类似产品相关的网站。

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

当原来的下载器以原来的组件运行,安装过程就是全静默的。并且会在%APPDATA%文件夹中释放包。

组件

释放的应用含有多个元素,可以看到运行释放脚本所需要的python的完全安装。一起安装的还含有卸载软件uninstall.exe,一旦应用就会完全移除该包。

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

在js目录中,可以看到一个JS脚本文件i.js:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

在configs中,有两个配置文件:rules.ini和settings.ini。

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

2)可能被攻击的浏览器进程列表:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

3)IP和域名的白名单集。域名是base64编码的,解码后可以看到不同的俄罗斯银行站点。结果确认,这些站点都没有被感染。

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

通过在注册表中运行key来达到驻留的目的。

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

ml.py脚本运行后,就会使用另一个python组件,httpfilter.py和.ini文件:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

将该脚本与js目录中的脚本对比:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

恶意软件会伪造证书并执行MIMB攻击。站点的HTTPS合法证书被一个“The Filter”签发的假的证书所取代,而The Filter是一个恶意实体:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PE header定义片段:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

并且会手动加载PE文件,加载器开头:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

重定向执行到入口点。然后可以找到解混淆的加载器。

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

注:用python写的PE注入器是很少见的。

注入器(DLL)

注入python的DLL是恶意软件的主要组件。该组件会被注入到Python可执行文件当中:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

注入器会从配置文件中取回传递的参数。可以看到这并不是之前脚本传递的参数。

开发者预留了一些调试字符串,这就让执行流很容易明白。

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

injectee是植入到浏览器中的,并且负责hook对应的DLL。下面是hooking函数的开始:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

hooking函数是这事件的标准类型。负责接收特定输出函数的地址,然后重写重定向到含有恶意DLL的函数的开头。

目标是分割证书的函数(Crypt32.dll)和发送接收数据的函数(ws32_dll):

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

通过PE-sieve可以dump hook,就可以看到这些函数如何被重定向到恶意软件。下面是从DLL中收集的标签列表:

From Crypt32:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

From ws32_dll:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

从上面可以看出,地址都被重定向到injectee DLL,DLL是在base 50000被加载的。比如,函数WSASend被监听,执行的过程被重定向到injectee dll中RVA 0xd90处的函数。

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

监听函数的开始:

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

PBot很多程序员都知道吧?深度分析一款基于python的恶意软件!

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: