迅维网

Kronos恶意软件分析

ptmanager 2017-9-5 11:23


老树新芽:Kronos恶意软件分析(part 2)


  Kronos是一款银行木马,其bot程序需要首先从C&C服务器上下载额外的配置文件,并以加密的形式存储在安装文件夹中。通过分析我们发现,当通过网络发送该配置文件时,它运用CBC模式的AES 加密算法对文件进行加密进行加密,但是当该配置文件存储在磁盘上时,将运用ECB模式的AES加密算法进行加密。从下图我们可以看到,Kronos恶意软件的安装目录是%APPDATA%/Microsoft,目录中的文件夹名称被用来表示BotId。而且,该文件夹中存储的文件,可执行文件以及配置文件都具有相同的名称,只是扩展名不同而已:


老树新芽:Kronos恶意软件分析(part 2)


  我们将捕获到配置文件进行了解密操作,你可以在如下的github地址上找到该解密文件:

  https://gist.github.com/malwarezone/d6de3d53395849123596f5d9e68fe3a3#file-config-txt

  配置文件的格式遵循了Zeus恶意软件中定义的标准,恶意软件在该文件中指定了要在目标网站中注入的外部脚本以及注入位置。下图是一个配置文件的片段:


老树新芽:Kronos恶意软件分析(part 2)


  上述例子中注入的外部脚本是figrabber.js,该脚本被托管在攻击者的服务器上:


老树新芽:Kronos恶意软件分析(part 2)


  该脚本当前的配置主要用来对几家银行实施网络攻击,不过该脚本还被用来窃取Google,Twitter和Facebook等网站的登录凭据。如果用户的机器上感染了Kronos恶意软件,那么配置文件中定义的代码片段会被植入到了合法网站的源代码中,一旦用户打开恶意软件所针对的目标网站,注入到合法网站上的脚本就会开始执行了,具体例子如下图所示:

  Facebook的:


老树新芽:Kronos恶意软件分析(part 2)

  花旗银行:


老树新芽:Kronos恶意软件分析(part 2)


  注入的脚本负责打开额外的窗口,该窗口正在尝试欺骗用户并窃取他/她的个人数据:


老树新芽:Kronos恶意软件分析(part 2)

  富国银行:

老树新芽:Kronos恶意软件分析(part 2)


老树新芽:Kronos恶意软件分析(part 2)


  图片中的表单是都是恶意软件自定义的,以适应每个页面的主题。但是,其内容对于每个目标都是相同的。总的来说,该恶意软件针对银行的攻击操作并不十分复杂,稍微有些安全意识的用户都会对上述的攻击行为产生怀疑,毕竟该恶意软件试图说服用户输入与银行业务相关的所有个人数据:


老树新芽:Kronos恶意软件分析(part 2)

  Downloader

  Kronos恶意软件除了感染浏览器和窃取数据外,它还具有下载功能。在我们的测验中,它下载了一个新的可执行文件,并将其保存在%TEMP%目录中,恶意软件的有效载荷存储在与主安装目录相同名称的其他目录中:


老树新芽:Kronos恶意软件分析(part 2)


  已下载的payload
  6f7f79dd2a2bf58ba08d03c64ead5ced -nCBngA.exe
  从Kronos C&C下载的payload:


老树新芽:Kronos恶意软件分析(part 2)


  下载的过程中发现payload未加密传输:


老树新芽:Kronos恶意软件分析(part 2)


  在上述案例中,下载的payload只是Kronos恶意软件bot组件的更新程序。但是,同样的功能也可用于获取和部署其他恶意软件系列。

  命令和控制(C&C)服务器

  通过我们的分析发现,Kronos恶意软件在其C&C服务器上运用了Fast-Flux技术,域名每次都被解析成不同的IP。例如,针对hjbkjbhkjhbkjhl.info这个域名,每次从下面给出的IP地址池中随机选择一个作为域名的IP地址:

  46.175.146.50
  46.172.209.210
  47.188.161.114
  74.109.250.65
  77.122.51.88
  77.122.51.88
  89.25.31.94
  89.185.15.235
  91.196.93.112
  176.32.5.207
  188.25.234.208
  109.121.227.191

  通过对C&C服务器网络通信流量的分析,我们观察到恶意软件每次都通过connect.php这个php文件与C&C服务器进行通信,并附带一个可选参数a:
connect.php-初始信标

  connect.php?a = 0向C&C发送数据

  connect.php?a=1从C&C下载配置文件

  C&C管理后台

  在网上我们找到了泄漏的C&C管理后台代码,这个发现可以让我们对Kronos恶意软件有更进一步的了解。像大多数恶意软件管理后台一样,Kronos管理后台运用PHP编写,并运用MySQL数据库,涉及到的文件如下图所示:


老树新芽:Kronos恶意软件分析(part 2)


  事实证明,bot程序总共有三个命令:

  a=0 :发送抓取的页面内容
  a=1 :获取配置文件
  a=2 :发送记录的窗口

  下图是管理后台代码的一个代码片段(具体实现位于connect.php文件中),该php文件负责解析和存储相应命令上传的数据。

  #0命令(a=0):


老树新芽:Kronos恶意软件分析(part 2)


  #2命令(a=2):


老树新芽:Kronos恶意软件分析(part 2)


  #1命令(a=1):


老树新芽:Kronos恶意软件分析(part 2)

  我们还可以非常清楚地看到C&C服务器运用CBC模式的AES加密算法对配置文件进行加密,且加密密钥是BotId的md5值的前16个字节。


老树新芽:Kronos恶意软件分析(part 2)

  然而,AES并不是Kronos所运用的唯OnePlus密算法。其他命令在ECB模式下运用BlowFish加密算法:

  #0命令(a=0):


老树新芽:Kronos恶意软件分析(part 2)


  #2命令(a=2):


老树新芽:Kronos恶意软件分析(part 2)


  在所有情况下,都有一个名为UniqueId的变量用作加密算法的密钥。其实,UniqueId变量就是BotId,该变量值在每个POST请求中经过XOR编码后被发送出去。


老树新芽:Kronos恶意软件分析(part 2)


  你可以在这里找到相应的Python脚本来解码相应的请求和响应:https://github.com/hasherezade/malware_analysis/tree/master/kronos,Kronos恶意软件还支持插件功能,以扩展其核心功能:


老树新芽:Kronos恶意软件分析(part 2)


  解密通信流量

  在脚本程序(可以在这里下载)的帮助下,我们可以解密Kronos bot和C&C服务器之间通信的网络流量,具体如下所述:

  1.BotId

  由于BotId被用作加密算法的加密,因此我们首先需要获取BotId变量的值,我们在bot程序发送给其C&C服务器(74字节长)的请求中能够找到它:


老树新芽:Kronos恶意软件分析(part 2)


  转储请求后,我们可以运用以下脚本对其进行解码:
1./kronos_beacon_decoder.py --infile dump1.bin

  解码输出结果中包含了以下两个字段:

  1.配置文件的哈希值(如果现在没有配置文件,这部分将填写“X”字符)

  2.BotId

  例如:

  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {117BB161-6479-4624-858B-4D2CE81593A2}

  因此,上图中的BotId就是{117BB161-6479-4624-858B-4D2CE81593A2}。

  2.配置

  获取BotId之后,我们可以用它来解密配置文件,配置文件位于a=1请求的响应报文中:


老树新芽:Kronos恶意软件分析(part 2)


  下图是一个请求示例:


老树新芽:Kronos恶意软件分析(part 2)


  在转储响应之后,我们可以运用另一个脚本进行解码,给出BotId作为参数:

  ./kronos_a1_decoder.py --datafile dump2.bin --botid {117BB161-6479-4624-858B-4D2CE81593A2}

  解码后的数据已经上传到github上了,详情参考:

  https://gist.github.com/malwarezone/a7fc13d4142da0c6a67b5e575156c720#file-config-txt

  3.发送报告

  有时我们可以在请求中找到Kronos bot报告给C&C服务器的加密数据:


老树新芽:Kronos恶意软件分析(part 2)


  下图是加密请求示例:


老树新芽:Kronos恶意软件分析(part 2)


  在转储请求提数据之后,我们可以运用一个脚本对数据进行解密:

  ./kronos_a02_decoder.py --datafile dump3.bin --botid {117BB161-6479-4624-858B-4D2CE81593A2}

  解密后的数据已经上传到github上了,详情参考https://gist.github.com/malwarezone/a03fa49de475dfbdb7c499ff2bbb3314#file-a0_req-txt

  结论

  Kronos 恶意软件的代码质量方面很高,但相较于其他恶意软件,其功能并没有什么“高明”之处。尽管bot程序在黑市论坛上得到了很好的评价,但由于其定价太高,因此在受欢迎程度方面,它总是落后于其他恶意软件。



雷人

握手

鲜花

鸡蛋

路过
收藏
来自: 今日头条
发表评论

最新评论

引用 青春维修 2017-9-5 11:23
1脸懵

发表评论

登录 后可参与评论
返回顶部
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索