“双枪”木马的基础设施更新及相应传播方式的分析

1. 引述

2018.12.23 日,我们的 DNSMon 系统监测到以下三个异常的域名,经过研判这些域名属于 双枪 木马的网络基础设施。考虑到这些域名仅在最近才注册并启用,我们认为双枪木马近期在更新其基础设施,建议安全社区加以关注。

white[.]gogo23424.com  
www[.]src135.com  
www[.]x15222.com  

双枪 木马是目前我们见过的最复杂的恶意程序之一,最早由 360 安全卫士团队披露,并对其木马工作原理做了详细的技术分析。双枪木马本身集 Rootkit 和 Bootkit(同时感染 MBR 和 VBR)于一身,还有诸多对抗措施。除此之外,双枪木马恶意活动相关的网络基础设施十分庞杂,感染路径繁琐、传播手段多样,涉及的黑灰产业务种类也五花八门。

之前对双枪木马的公开披露内容主要涉及双枪木马本身的工作原理、涉及的黑灰产业务以及部分溯源。对其传播过程的技术细节少有涉及。在双枪木马多种多样的传播方式中,按照我们的统计,与本次更新相关的这种传播方式是感染范围比较大的,并且之前未见披露。本文将着重分析本次双枪木马更新其网络基础设施的情况,以及相应的木马传播技术细节。

1.1 域名

通过分析上述 3 个域名的 IP 解析情况,我们发现 white[.]gogo23424.com 与以前用来传播双枪木马的恶意域名 white.shougouji.top 之间存在直接关联:

根据我们的 PassiveDNS 数据,可以看出这 3 个异常域名的解析时间分别如下:

对应的注册时间信息分别如下表所示:

值得注意这些域名的注册和解析时间都发生在近期,例如 www[.]src135.comwww[.]x15222.com ;而 white[.]gogo23424.com 虽然注册信息早在今年 5 月底,但是实际提供域名解析也是发生在近期。

1.2 样本

近期这些域名上的恶意代码,正在被大量下载。这些恶意代码的URL和 md5sum 如下:

hxxp://www.src135.com:802/update.txt  
    - MD5: 94191b6c57b185289b2eb83108d076e4
hxxp://www.x15222.com:8002/update.txt  
    - MD5: 3f5473826dcef015dc06b83767744ea0

虽然下载上述两个 URL 看似得到两个后缀为 .txt 的文件,但其实这是两个不同的 JPG 图片,并且在不同的文件偏移处嵌入了 PE 文件。这两个PE文件,经过分析认定,实际为两个功能相近的 DLL 文件:

  • 有相同的导出函数 update()
  • 有类似的执行流程,并且会向发出部分相同的网络请求。

执行两个 DLL 文件,从抓包中可以观察到它们的网络行为序列分别如下: update1.dll update2.dll

可以看出:

  • 两个 DLL 文件执行的过程中都会先请求访问域名 white.xxx.xxx
  • 然后再向百度贴吧图片服务器请求两个图片 ;
  • 最后再向 white.xxx.xxx 发出一个 POST 请求。

1.3 上述新的恶意域名可以确认属于双枪木马的网络基础结构

根据我们以前对双枪木马部分传播流程的分析,我们认定这是双枪木马典型传播流程中的一个环节,这是因为新域名的网络行为与 双枪 木马有以下关联或者类似点:

  • 域名解析有直接关联:如前所述,IP 125.77.29.26 上同时提供了新旧恶意域名的解析
  • white[.]gogo23424.comwhite.shougouji.top 子域名相同,都是 white
  • 两个域名上的下载URL中的URI部分,也遵循了类似的命名规则( stat1.ashx / stat2.ashx / stat4.ashx );
  • 都将恶意 PE 文件嵌入到图片文件中;
  • 都滥用了百度贴吧图片服务器承载恶意代码。

结合我们对双枪木马该传播途径的分析,可以推断双枪木马背后的团伙在更新他们的网络基础设施。并且可以猜测 white[.]gogo23424.com 可能会部分替代以前的 C2 Domain white.shougouji.top ,用来承载 双枪 木马传播过程中的云端配置文件以及木马状态统计服务。这一点值得安全社区关注。

下分详细分析 双枪 木马本次更新相关的传播流程。


2.双枪木马传播流程

2.1 概述

2018 年 9 月初,我们的 DNSMon 系统监测到 *.dztworld[.]com / *.minding99[.]com / white.shougouji.top 等异常域名。通过关联分析,我们定位到了异常域名背后的一批样本,对其中的典型样本(比如 MD5: cfe79da256441e45195d6f47049cb2a8)进行深入分析发现,这是一波主要用来传播双枪木马的恶意活动。整个恶意传播活动的典型特征有以下几个:

  • 多阶段样本执行,至少 4 个阶段的样本活动才最终下载到双枪木马的恶意驱动文件;
  • 利用公共网络服务(比如百度贴吧图片服务器)承载云端配置文件和恶意样本;
  • 对抗手段多样,检测运行环境上报云端、对抗杀软难以检测、变形 DES 加密算法对抗分析等等;
  • 盗用数字签名;
  • 涉及业务种类繁杂,除了传播双枪木马的恶意驱动程序,还传播游戏私服驱动,还会盗窃 Steam 账号、劫持 QQ 进行恶意推广。

2.2 母体样本

后文以 MD5 为 cfe79da256441e45195d6f47049cb2a8 的母体样本为例进行分析。母体样本会访问下面 4 个 URL,下载下一阶段要运行的恶意程序:

hxxp://69.30.193.66/aa.exe    md5=d5f6d28be828225cc429589ec6fa2409  
hxxp://69.30.193.66/cj.exe    md5=e86a9f5819582493837850a25c28915e  
hxxp://222.186.138.30:8080/tgp.exe    md5=e88b1d3c9bfb95d02e8dcd9931cfe99e  
hxxp://69.30.193.66/15.exe    md5=99d94b61a04a19e74bb5b84c1e75e451  

整体结构如下所示:

关于 cj.exe 的 Steam 盗号功能,友商的分析报告 火绒安全警报:疑似方正集团子公司签名泄露 遭黑客利用盗取Steam账号 已经分析的比较清楚。从样本的 PDB 文件路径来看,该恶意程序的功能也可窥见一斑:

关于 aa.exe / tgp.exe 的劫持 QQ 进行恶意推广功能,友商也有分析。木马会访问类似以下的接口来获取推广信息,然后呈现在受害机器上:

据我们统计分析,该团伙中类似的恶意活动中用到的类似接口,至少曾经包括以下几个:

hxxp://42.51.44.167/api/api  
hxxp://42.51.44.215/api/api  
hxxp://42.51.32.166/api/api  
hxxp://42.51.42.106/api/api  
hxxp://42.51.44.168/api/api  
hxxp://42.51.39.60/api/api  
hxxp://42.51.39.208/api/api  
hxxp://42.51.33.3/api/api  
hxxp://42.51.32.20/api/api  

服务端接口返回来的 JSON 数据中的图片 URL,打开之后如下(网赚推广):

我们的重点在最后传播双枪木马的 15.exe

2.3 双枪传播第一阶段——15.exe

15.exe 其实是一个下载器,它会下载百度贴吧图片服务器上的被嵌入了恶意代码的图片文件,从图片文件中解析出恶意 PE 文件并执行。15.exe 的主要流程如下:

流程说明:

  1. 解析得到C2 URL(后文简称 C2_stat4 ):密文字串 tjXWjFcYZBxxsY0CE2nZUpjLsVUtkFA7BNQ7UxV017ELdPXvPvQM00tSnlsDVtSA 经过 Base64+变形 DES 解密出 C2 URL hxxp://white.shougouji.top:8889/stat4.ashx ,DES Key 为 giwdyaiw
  2. 将字串 B6qXVH6POR3lH+CzEzpNX9nIpUQc29lbeeaCHg18AcE= 经过同上的解密过程,解出字串 Chinesestyleinternetmanhunt
  3. 将步骤2中得到的 Chinesestyleinternetmanhunt 经过变形的 DES 加密后,作为 POST Data 发送到 C2_stat4 ,DES Key 为 HQDCKEY1
  4. 用变形 DES 来解密从 C2_stat4 获取到的 HTTP 响应数据,得到如下示例字符串,内含两个可以进一步下载的URL。本步骤中可能会返回不同的数据,故解出不同的字符串,用到DES Key 是HQDCKEY1
    hxxp://imgsrc.baidu.com/tieba/pic/item/d788d43f8794a4c227adb80603f41bd5ad6e3914.jpg|hxxp://imgsrc.baidu.com/tieba/pic/item/a08b87d6277f9e2fa7e042251230e924b999f3c2.jpg
  5. 访问步骤 4 中解密出来的两个图片 URL,从两个图片文件的偏移 0x1E30 处开始到文件末尾各自切出数据,再拼凑在一起,最后再用变形 DES 解密出一个 DLL 文件(后文简称此文件为 ReportDLL,此次解密用到的 DES Key 为 HQXCKEY7
  6. 起 3 个同样的线程,执行如下工作:在内存中解析这个 ReportDLL 文件,找到导出函数 Report() 的地址,导入 DLL 文件需要的 Import Functions,然后执行函数 DLL::Report()

补充说明

  • 步骤 1 / 2 中用到的 DES Key,也是经过解密得到的:
    1. 用 Base64 解码字串 vGbZFzOaw4A= 得到 0xBC66D917339AC380
    2. 然后用变形 DES 解密上述二进制数据,才得到 giwdyaiw ,此处用到的 DES Key 为样本中硬编码的 0x0000310000004959
  • 木马用 Crypt32.dll::CryptBinaryToStringA() 函数来实现 Base64 解密,但 Crypt32.dllCryptBinaryToStringA 两个字串并不是硬编码在样本中,而是由 IYIJIFINIKGAFAGCIFIOIODDDSECDVDSCTDSDZEUEQEJCPEQDHEJEOEQEDDSDN 两个字符串用另外的解密算法分别解密得出,然后再用 LoadLibrary()GetProcAddress() 函数得到 CryptBinaryToStringA 的函数地址,最终才会调用函数进行 Base64 解密。
  • 所谓变形 DES,指的是木马作者修改了 DES 加解密用到的初始化向量中的部分字节顺序,导致按照已有的标准 DES 加解密库/程序不能直接解密,必须按照样本中的初始化向量来运算 DES 算法才可以顺利加解密。后文会详细解析该算法。
  • 步骤 3/4 和步骤 5 中用到的 DES Key(HQDCKEY1 / HQXCKEY7),也不是硬编码在样本中的,而是分别对 1ZGNGIWO7ZGNG]WO 利用另外的解密算法解密得出的。

通过这一阶段的分析,据我们的初步推测,从我们最新监测到的 2 个异常域名 www[.]src135.comwww[.]x15222.com下载到的两个 update.txt 文件,其中嵌入的 DLL 文件,功能应该跟 15.exe 类似。

2.4 双枪传播第二阶段——ReportDLL

第一阶段中通过多重解密得到的 ReportDLL,是第二阶段的主要样本,其主要工作流程包括:

Step 1 监测本地环境、对抗杀软 :样本会收集系统信息,包括CPUid/磁盘信息/guid/hostname/MAC地址/进程列表/UAC 级别等信息,样本会检查当前磁盘是否为虚拟磁盘、进程/服务中是否有反病毒软件。样本会将收集好的系统信息整理成JSON文件,然后用变形 DES 加密(DES Key 为HQDCKEY1 ),示例配置如下:

{
    "cpuid": "2",
    "disks": "San HARDDISK ATA Device",
    "dllver": 20170428,
    "exever": 20170807,
    "guid": "{4F0C293C-C8D5-4bb2-9249-3E4057E5268B}",
    "hddsn": "Sane024ebad-d59c3157",
    "hostname": "HanFang-PC",
    "iswin64": 0,
    "macs": "A0-48-1C-9D-63-F2",
    "osver": 61,
    "parent": "15.exe",
    "process": "[System Process]|System|smss.exe|csrss.exe|wininit.exe|winlogon.exe|services.exe|lsass.exe|lsm.exe|svchost.exe|QQ.exe|spoolsv.exe|FoxitProtect.exe|taskhost.exe|dwm.exe|explorer.exe|SearchIndexer.exe|sppsvc.exe|SogouCloud.exe|notepad.exe|calc.exe|15.exe|conhost.exe",
    "sd": 0,
    "srvstat": false,
    "startby": 702,
    "uac": 0
}

样本在这一步检查的磁盘列表如下:

    Richdisk
    VXPDISK
    Diskless 2000/XP
    MZD
    NMenu
    Virtual Disk
    [VSCSICLN]
    CGM
    vDisk
    ZHDisk
    VxpDisk
    iCafe8 SSD
    Icafe8 LTA

检查的进程/服务/驱动列表如下:

    360sd.exe
    XxGamesFilter
    GpeNetSafe
    GameGuard
    \\.\TeSafe
    \\.\SDriver
    \\.\GxWfpFlt
    \\.\PowerChange
    \\.\xspeed
    protectdrv
    KKFileMonitor
    360tray.exe
    QQPCTray.exe
    kxetray.exe
    rstray.exe
    KlDiskCtl
    avgntflt
    Eamon
    SymEvent
    mferkdk
    QqscfeCnotrol

样本还会检查注册表中是否有 VMware 的痕迹: SOFTWARE\\VMware, Inc.\\VMware Tools

另外,还会单独在系统托盘区检查是否有 360安全卫士 的托盘图标。如果没能通过这些检查,样本则不会向下执行。

Step 2 上报信息、云端对抗杀软: 将变形 DES 加密过的系统信息,作为 POST Data 发送到 hxxp://white.shougouji.top:8889/stat1.ashx,接受服务端的检验。目前已知服务端如果检测到进程列表中有 wireshark 这种“危险进程”,或者 MAC 地址可疑,也或者 Disk 类型可疑,服务端就不会返回任何数据,服务器端是否存在其他检测逻辑尚不明确。安全研究人员需要在动态调试时手动修改这些数据,发送到 C2,才会成功捕获 C2返回的响应。

服务端返回的数据经过变形 DES 解密(DES Key 为 HQDCKEY1 ),是一份 JSON 格式的配置文件:

    {
      "TaskGroupId":33,
      "TaskId":1108,
      "TaskType":1,
      "TaskUrls":[
         "hxxp://imgsrc.baidu.com/tieba/pic/item/562c11dfa9ec8a137a506533fd03918fa1ecc09e.jpg",
         "hxxp://imgsrc.baidu.com/tieba/pic/item/0d338744ebf81a4c6a8cde1add2a6059242da6a2.jpg"
      ],
      "Interface":"DoIt",
      "ExecMode":0,
      "SaveMode":0,
      "SavePath":"",
      "SaveFileName":"",
      "TaskParameter":[
         {
            "ParaType":0,
"Parameter":"hxxp://imgsrc.baidu.com/tieba/pic/item/c2cec3fdfc03924586e1a4228a94a4c27d1e2542.jpg|hxxp://imgsrc.baidu.com/tieba/pic/item/e4dde71190ef76c6a9c7be069016fdfaaf516781.jpg",
            "FileType":2,
            "SaveMode":2,
            "SavePath":"C:\\Windows\\Temp",
            "SaveFileName":""
         }
      ]
    }

这份配置文件也是动态变化的,分析过程中还收到过另一份配置文件,TaskUrls 配置项两个图片URL如下(其他配置项同上):

    hxxp://imgsrc.baidu.com/tieba/pic/item/3bf33a87e950352a147a920f5843fbf2b2118b9a.jpg
    hxxp://imgsrc.baidu.com/tieba/pic/item/0b55b319ebc4b74532570311c4fc1e178b8215f1.jpg

Step 3 解析得到WorkDLL: 解析 Step 2 中获取到的 JSON 配置文件,访问 TaskUrls 中的 2 个图片 URL,获取图片文件,从图片偏移 0x1E30 处到文件末尾切出加密数据,拼凑一起,并用变形 DES 解密(DES Key 为 HQXCKEY7),得到一个 DLL 文件(后文简称 WorkDll);

对 JSON 配置中的 TaskParameter::Parameter 项里的 2 个图片 URL 做同样的操作,得到一个驱动文件(后文简称 kemon.sys)。

根据 Step 2 中的 JSON 配置文件中的 Interface 配置项(DoIt), 找到 WorkDll 中的导出函数 DoIt() 函数地址,导入 WorkDll 导入表中的 Library,在内存中执行 WorkDll::DoIt() 函数。

Step 4 采集信息: 整理系统信息和木马运行信息,整理成 JSON 格式并以变形 DES 加密,Post 到 hxxp://white.shougouji.top:8889/stat2.ashx

第二阶段的 ReportDLL 明显加上了一些对抗分析的措施,在样本端和 C2 端都有检查逻辑。安全社区成员在分析时需要注意这一点。

2.5 双枪传播第三阶段——WorkDLL

WorkDll 的工作很简单:

  1. kemon.sys 生成 7 个随机英文字符的文件名,以 .sys 为后缀,移动到 C:\Windows\System32\inetsrv\ 目录下;
  2. 为新的驱动程序注册系统服务,加载 kemon.sys 启动服务。

2.6 双枪传播第四阶段——kemon.sys

2.6.1 kemon.sys 对抗分析,安营扎寨做好准备工作

kemon.sys 功能繁杂,对抗分析手段也多种多样,比较有特色的比如:

  • 所有可用字符串(上百条)都经过了自定义加密,运行之前会用两套算法分别解密其中的 ASCII 和 Unicode 密文;
  • 会更新自身,每次更新还会把时间戳设置成跟 ntdll 相同;
  • 注册 Boot 回调和 Shutdown 回调来进行一些初始化和隐匿工作;
  • 用 CmRegisterCallBack() 方式监控注册表;
  • 用 PendingFileRenameOperations 方式实现开机启动。

2.6.2 下一阶段工作——获取双枪木马及私服相关恶意程序

不过我们更关注样本的网络行为,驱动程序在做好了一系列对抗、自保措施在失陷主机安营扎寨之后,就开始了下一阶段工作。

在准备阶段,kemon.sys 解密出的上百个字符串中,有下面一系列 URL:

hxxp://ua.dztworld.com:12338  
hxxp://ua.minding99.com:12338  
hxxp://ub.dztworld.com:12339  
hxxp://ub.minding99.com:12339  
hxxp://ba.dztworld.com:12340/Default.html  
hxxp://bb.dztworld.com:12340/Default.html  
hxxp://bc.dztworld.com:12340/Default.html  
hxxp://ba.minding99.com:12340/default.html  
hxxp://bb.minding99.com:12340/default.html  
hxxp://bc.minding99.com:12340/default.html  
hxxp://ub.dztworld.com:12339/no008/no00a/gtmp.txt  
hxxp://ub.dztworld.com:12339/no008/no00a/gtmpm.txt  
hxxp://ub.dztworld.com:12339/no008/GetUrlKeyMsg.ashx  
hxxp://ub.dztworld.com:12339/no008/GetMsg.ashx  
hxxp://ub.dztworld.com:12339/no008/jspe.ashx  
hxxp://ub.minding99.com:12339/no008/jspe.ashx  
hxxp://ub.dztworld.com:12339/no008/jspl.ashx  
hxxp://ub.dztworld.com:12339/no008/jspm.ashx  
hxxp://ua.dztworld.com:12338/no008/File/d00831.dat  
hxxp://ua.dztworld.com:12338/no008/File/a00831.dat  
hxxp://ua.minding99.com:12338/no008/File/d00831.dat  
hxxp://ua.minding99.com:12338/no008/File/a00831.dat  
hxxp://ub.dztworld.com:12339/no008/File/dt0083.dat  
hxxp://ub.dztworld.com:12339/no008/File/t0083.dat  
hxxp://ub.minding99.com:12339/no008/File/dt0083.dat  
hxxp://ub.minding99.com:12339/no008/File/t0083.dat  
hxxp://ub.dztworld.com:12339/no008/File/ds0083.dat  
hxxp://ub.dztworld.com:12339/no008/File/s0083.dat  
hxxp://ub.minding99.com:12339/no008/File/ds0083.dat  
hxxp://ub.minding99.com:12339/no008/File/s0083.dat  
hxxp://ub.dztworld.com:12339/no008/File/da0083.dat  
hxxp://ub.dztworld.com:12339/no008/File/a0083.dat  
hxxp://ub.minding99.com:12339/no008/File/da0083.dat  
hxxp://ub.minding99.com:12339/no008/File/a0083.dat  

接下来依次访问下面的 URL,只要一个存活即可:

hxxp://ba.dztworld.com:12340/Default.html  
hxxp://bb.dztworld.com:12340/Default.html  
hxxp://bc.dztworld.com:12340/Default.html  
hxxp://ba.minding99.com:12340/default.html  
hxxp://bb.minding99.com:12340/default.html  
hxxp://bc.minding99.com:12340/default.html  

获取到响应,目前收集到两段不同的 default.html 的 HTTP 响应,每段响应都用 3 组连续的方括号括起来:

[[[B3652241EBE375617D4415EFDE7B894C3F5294F8D54FA6438E3686644C8D12BDB3AEF00FB23F54BF03E104A616A19EBD9942910013E4B3A196B19732E5DD5A347D4C252F9EBE3A9D0CDAE65C04CCB39066DE181712D13D7819094AF38BC17BE44387A650FD372E5B8B1093E508E4DBEEA62EDA8CE20264954E07437FC651BE98BC53A31868ECFB4B313D435772A67A420002002D4746E1480CFE839908B0A4D5412DC9A7A076F3125978AD51A34598B928CEFBF9A3E48275C82F29D020D9F9A12EC5A06DB5640943FD06608741613018F54B6E38861AFDECBF2821AD086A39CD862C20054D2895DC15134CE24F133AC5352CE1B4E0B2859A1231C4F21C5B20937418F41B6B8BEA367F614DA7F3500EDC28EC71A4570514069DEE9E4F75F2F40272D330F6A9901ADC8D42A42128514AEBD90364AB090C7721CEF77528A5CF837642AA4659F67499CEFB15BA1CE4549DC8685D4C16E9A5CC17BF5B66ECE0EF072F57DF094701DB9BAC4ED0D8708EF52E5E0E3051A62E328DB8]]]

[[[B3652241EBE375617D4415EFDE7B894C3F5294F8D54FA6438E3686644C8D12BDB3AEF00FB23F54BF8FF35A3AB54379EF47EE39FC10944AB7EE582C463D6EDC686A568D1F2B4C949F2F680F4C2E94C5CEBF39A799325C1D6E9938734CDB49B244C5DC5DCFD93FE9CFDA1BF3F0815812DEB2DE10D2AE5871C872A5D35A6C535D4ABC53A31868ECFB4B313D435772A67A420002002D4746E1480CFE839908B0A4D5A0160A207C1170DD5623CC0327B97404F73D94C73BA378428226DA39E674A07EA30BF34632F1A2C8A88BB2C6BA8B655ABA4F9DBEBEDF10F8419847A1375505670B067873285EAD4A88E33E2961BBABFDD52BC336EC13CA681231C4F21C5B20937418F41B6B8BEA367F614DA7F3500EDC28EC71A4570514069DEE9E4F75F2F4023A3DB58A415EDAE3669EE37F1A190D205EF3687DF0A3194EDB7452A1EF5C81954DDA184D8C63857BFDB23C34B1DD384B06B8649F7D9FD0D2037174A7C79CBD6ABC4E39821D714260CF9965D5B8CA3D050E3051A62E328DB8]]]

用变形 DES 解密步骤 1 获取到的响应,DES Key 为 HQXCKEY7,上述两段密文分别得到两组数据整理后如下:

##Shttp://imgsrc.baidu.com/tieba/pic/item/730e0cf3d7ca7bcbbb337629b3096b63f624a868.jpg## 9378148AF6604EA1D807D1EDE06EB994
##Shttp://imgsrc.baidu.com/tieba/pic/item/1b4c510fd9f9d72ade7aa11bd92a2834349bbb9e.jpg## 9378148AF6604EA1D807D1EDE06EB994
##Shttp://imgsrc.baidu.com/tieba/pic/item/0824ab18972bd40765b362fb76899e510fb309bb.jpg## 9378148AF6604EA1D807D1EDE06EB994

##Shttp://imgsrc.baidu.com/tieba/pic/item/730e0cf3d7ca7bcbbb337629b3096b63f624a868.jpg## 9378148AF6604EA1D807D1EDE06EB994
##Shttp://imgsrc.baidu.com/tieba/pic/item/1b4c510fd9f9d72ade7aa11bd92a2834349bbb9e.jpg## 9378148AF6604EA1D807D1EDE06EB994
##Shttp://imgsrc.baidu.com/tieba/pic/item/0824ab18972bd40765b362fb76899e510fb309bb.jpg## 9378148AF6604EA1D807D1EDE06EB994

------------------------------------------------------------------------------

##Shttp://imgsrc.baidu.com/tieba/pic/item/5bafa40f4bfbfbed2b24656f75f0f736afc31fa4.jpg## 64AFC96FF3E6E51BDE76779E9E8A678B
##Shttp://imgsrc.baidu.com/tieba/pic/item/d788d43f8794a4c223bfb43b03f41bd5ad6e3905.jpg## 64AFC96FF3E6E51BDE76779E9E8A678B
##Shttp://imgsrc.baidu.com/tieba/pic/item/78310a55b319ebc43e3f25898f26cffc1e17165e.jpg## 64AFC96FF3E6E51BDE76779E9E8A678B

##Shttp://imgsrc.baidu.com/tieba/pic/item/5bafa40f4bfbfbed2b24656f75f0f736afc31fa4.jpg## 64AFC96FF3E6E51BDE76779E9E8A678B
##Shttp://imgsrc.baidu.com/tieba/pic/item/d788d43f8794a4c223bfb43b03f41bd5ad6e3905.jpg## 64AFC96FF3E6E51BDE76779E9E8A678B
##Shttp://imgsrc.baidu.com/tieba/pic/item/78310a55b319ebc43e3f25898f26cffc1e17165e.jpg## 64AFC96FF3E6E51BDE76779E9E8A678B

可见 default.html 每次的响应解密后是 2组*3条 图片的 URL,并且是重复的 2 组 URL,即只有 3 条 uniq URL。经过检查,每次响应中的 3 条 uniq URL 下载到的图片 MD5 相同。即 default.html 每次响应,去重之后就获取到 1 个图片 URL。

根据上面的相应解密之后获取到的图片 URL,下载图片文件,在图片文件偏移 0x1E30 处开始到文件末尾切出加密数据,用变形 DES 解密(DES Key 为 HQXCKEY7),得到如下数据:

##Shttp://imgsrc.baidu.com/tieba/pic/item/267f9e2f0708283897406d12b599a9014c08f163.jpg##63AAFB03DC50CD59920FC8195F98E3F65/no008/File/a00831.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/279759ee3d6d55fb16e5c72060224f4a20a4dd91.jpg##626CED471332B6AFDA3D94D0C571A50ED/no008/File/a00861.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/c83d70cf3bc79f3dc8985536b7a1cd11728b29be.jpg##5899A9DB3276632334956CC8738D47579/no008/File/T0083.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/f31fbe096b63f624dd1088058a44ebf81a4ca363.jpg##5076EE8464792AE80475EDB129050C27B/no008/File/T0086.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/024f78f0f736afc31e3f8e63be19ebc4b7451280.jpg##52AF4784BC73BEEBFEE49B9A3F2D048EF/no008/File/A0083.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/e850352ac65c103883337fc4bf119313b07e8963.jpg##554900D4ACCE5A202F14C225A82E870D0/no008/File/A0086.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/fcfaaf51f3deb48f8d4b10d8fd1f3a292df57891.jpg##:DDE1426369397CC5FECF00CBD3507504/no008/no00a/ConfigNew.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/d009b3de9c82d158dbcee8b78d0a19d8bc3e4263.jpg##<EC0E4BED4EEDAA41D8D300261947FF1C/no008/no00a/ConfigNew.txt01
##Shttp://imgsrc.baidu.com/tieba/pic/item/6609c93d70cf3bc7b0227ceadc00baa1cd112a91.jpg##<E056E65F2E6C5A389FFE9E29D15F4DC9/no008/no00a/ConfigNew.txt02
##Shttp://imgsrc.baidu.com/tieba/pic/item/c9fcc3cec3fdfc03a93452bed93f8794a4c22663.jpg##<39CAE786DA64D1FC4A39684D58DBB05F/no008/no00a/ConfigNew.txt03
##Shttp://imgsrc.baidu.com/tieba/pic/item/9213b07eca806538db9315159adda144ad3482bf.jpg##<0B3381CF39CDC128C236A360BAF5C2A8/no008/no00a/ConfigNew.txt04
##Shttp://imgsrc.baidu.com/tieba/pic/item/ac345982b2b7d0a2d3b0b59bc6ef76094b369abf.jpg##<1D660AE25855D011C1A6822C84E592EB/no008/no00a/ConfigNew.txt05
##Shttp://imgsrc.baidu.com/tieba/pic/item/79f0f736afc37931624a372fe6c4b74543a91191.jpg##:32EB3529A1119BD3D5B46F3D9708BF00/no008/no00a/ConfigAll.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/0823dd54564e9258c20637e89182d158ccbf4e81.jpg##:51214C7E01D4A5C19E4E599C5051D4DE/no008/no00b/ConfigNew.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/3812b31bb051f819fc69b24cd7b44aed2e73e76c.jpg##:AA9FDA3F42FAF0E07F1E19D921CC1F72/no008/no00b/ConfigAll.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/94cad1c8a786c9175531e33fc43d70cf3bc75781.jpg##:A58028489E70188D6C7EB5D519AFA1F1/no008/no00c/ConfigNew.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/738b4710b912c8fcfbc147cbf1039245d6882181.jpg##:B54A6B1C114BF66E2FE6C2E075C75BCB/no008/no00c/ConfigAll.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/71cf3bc79f3df8dce0453e97c011728b471028bf.jpg##:0ABCF80B7CBDA9710B577204D1ECC881/no008/no00d/ConfigNew.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/7c1ed21b0ef41bd5e92b59f25cda81cb39db3dbf.jpg##<AC67768DFBF04DF84EBEA8D48E0F912C/no008/no00d/ConfigNew.txt01
##Shttp://imgsrc.baidu.com/tieba/pic/item/0e2442a7d933c8958806297ddc1373f0820200bf.jpg##<30ABF0162AF1CD87F9862DFE6AFCE5FC/no008/no00d/ConfigNew.txt02
##Shttp://imgsrc.baidu.com/tieba/pic/item/aec379310a55b319818133734ea98226cffc17bf.jpg##<ACA00521253A3C4F203F8A384EC563A2/no008/no00d/ConfigNew.txt03
##Shttp://imgsrc.baidu.com/tieba/pic/item/0bd162d9f2d3572c87d02dda8713632762d0c382.jpg##<C7BAAA9FF2B1296B29BA5604C43A934B/no008/no00d/ConfigNew.txt04
##Shttp://imgsrc.baidu.com/tieba/pic/item/a1ec08fa513d2697f8e1b95b58fbb2fb4316d882.jpg##<7AA72D110655BA9153004EC9FE2D01B9/no008/no00d/ConfigNew.txt05
##Shttp://imgsrc.baidu.com/tieba/pic/item/e1fe9925bc315c603edadae980b1cb134954776c.jpg##:4691A104242EEF7E8F213BDD196E4E52/no008/no00d/ConfigAll.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/d8f9d72a6059252d1425ac02399b033b5bb5b982.jpg##63AAFB03DC50CD59920FC8195F98E3F65/no008/File/a00831.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/3ac79f3df8dcd100888149277f8b4710b9122f92.jpg##626CED471332B6AFDA3D94D0C571A50ED/no008/File/a00861.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/d52a2834349b033b9ff04ddc18ce36d3d539bdb8.jpg##5899A9DB3276632334956CC8738D47579/no008/File/T0083.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/38dbb6fd5266d01645562f2e9a2bd40735fa356c.jpg##5076EE8464792AE80475EDB129050C27B/no008/File/T0086.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/d833c895d143ad4b8a61f7c68f025aafa40f066c.jpg##52AF4784BC73BEEBFEE49B9A3F2D048EF/no008/File/A0083.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/a686c9177f3e6709e52df4f936c79f3df8dc5582.jpg##554900D4ACCE5A202F14C225A82E870D0/no008/File/A0086.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/d31b0ef41bd5ad6e98d4d5ec8ccb39dbb6fd3c82.jpg##:DDE1426369397CC5FECF00CBD3507504/no008/no00a/ConfigNew.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/f31fbe096b63f624dd1288058a44ebf81a4ca36d.jpg##<EC0E4BED4EEDAA41D8D300261947FF1C/no008/no00a/ConfigNew.txt01
##Shttp://imgsrc.baidu.com/tieba/pic/item/eac4b74543a98226a1ec9a218782b9014a90eb83.jpg##<E056E65F2E6C5A389FFE9E29D15F4DC9/no008/no00a/ConfigNew.txt02
##Shttp://imgsrc.baidu.com/tieba/pic/item/b3b7d0a20cf431ad2acff23f4636acaf2edd9893.jpg##<39CAE786DA64D1FC4A39684D58DBB05F/no008/no00a/ConfigNew.txt03
##Shttp://imgsrc.baidu.com/tieba/pic/item/55e736d12f2eb9386922cbf4d8628535e5dd6f6d.jpg##<0B3381CF39CDC128C236A360BAF5C2A8/no008/no00a/ConfigNew.txt04
##Shttp://imgsrc.baidu.com/tieba/pic/item/91ef76c6a7efce1b616479cca251f3deb48f656d.jpg##<1D660AE25855D011C1A6822C84E592EB/no008/no00a/ConfigNew.txt05
##Shttp://imgsrc.baidu.com/tieba/pic/item/a8014c086e061d95853d863e76f40ad162d9cab9.jpg##:32EB3529A1119BD3D5B46F3D9708BF00/no008/no00a/ConfigAll.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/9922720e0cf3d7cacbdb8e70ff1fbe096b63a983.jpg##:51214C7E01D4A5C19E4E599C5051D4DE/no008/no00b/ConfigNew.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/b2de9c82d158ccbf74a0043c14d8bc3eb1354193.jpg##:AA9FDA3F42FAF0E07F1E19D921CC1F72/no008/no00b/ConfigAll.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/6159252dd42a2834f68b870d56b5c9ea15cebf83.jpg##:A58028489E70188D6C7EB5D519AFA1F1/no008/no00c/ConfigNew.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/37d3d539b6003af3f1976d66382ac65c1038b683.jpg##:B54A6B1C114BF66E2FE6C2E075C75BCB/no008/no00c/ConfigAll.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/8694a4c27d1ed21b4cd59fe3a06eddc451da3f93.jpg##:0ABCF80B7CBDA9710B577204D1ECC881/no008/no00d/ConfigNew.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/b3119313b07eca80b37e88e19c2397dda14483b9.jpg##<AC67768DFBF04DF84EBEA8D48E0F912C/no008/no00d/ConfigNew.txt01
##Shttp://imgsrc.baidu.com/tieba/pic/item/7dd98d1001e93901ca793c3876ec54e736d196b9.jpg##<30ABF0162AF1CD87F9862DFE6AFCE5FC/no008/no00d/ConfigNew.txt02
##Shttp://imgsrc.baidu.com/tieba/pic/item/f703738da9773912c4683467f5198618367ae26e.jpg##<ACA00521253A3C4F203F8A384EC563A2/no008/no00d/ConfigNew.txt03
##Shttp://imgsrc.baidu.com/tieba/pic/item/9d82d158ccbf6c81994d9deeb13eb13533fa40b9.jpg##<C7BAAA9FF2B1296B29BA5604C43A934B/no008/no00d/ConfigNew.txt04
##Shttp://imgsrc.baidu.com/tieba/pic/item/908fa0ec08fa513d86b6ddd8306d55fbb2fbd99c.jpg##<7AA72D110655BA9153004EC9FE2D01B9/no008/no00d/ConfigNew.txt05
##Shttp://imgsrc.baidu.com/tieba/pic/item/dcc451da81cb39dbffecd650dd160924ab183083.jpg##:4691A104242EEF7E8F213BDD196E4E52/no008/no00d/ConfigAll.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/7acb0a46f21fbe09df10721266600c338744ad6e.jpg##63AAFB03DC50CD59920FC8195F98E3F65/no008/File/a00831.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/aec379310a55b31981d533734ea98226cffc1783.jpg##626CED471332B6AFDA3D94D0C571A50ED/no008/File/a00861.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/b3119313b07eca80b34b88e19c2397dda144836e.jpg##5899A9DB3276632334956CC8738D47579/no008/File/T0083.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/55e736d12f2eb9386971cbf4d8628535e5dd6f9c.jpg##5076EE8464792AE80475EDB129050C27B/no008/File/T0086.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/a6efce1b9d16fdfa517077e8b98f8c5494ee7b9c.jpg##52AF4784BC73BEEBFEE49B9A3F2D048EF/no008/File/A0083.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/f11f3a292df5e0fe9e513807516034a85edf726e.jpg##554900D4ACCE5A202F14C225A82E870D0/no008/File/A0086.dat
##Shttp://imgsrc.baidu.com/tieba/pic/item/eaf81a4c510fd9f96a6de46f282dd42a2834a4ba.jpg##:DDE1426369397CC5FECF00CBD3507504/no008/no00a/ConfigNew.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/55e736d12f2eb9386917cbf4d8628535e5dd6fba.jpg##<EC0E4BED4EEDAA41D8D300261947FF1C/no008/no00a/ConfigNew.txt01
##Shttp://imgsrc.baidu.com/tieba/pic/item/cdbf6c81800a19d8a77635033efa828ba61e46ba.jpg##<E056E65F2E6C5A389FFE9E29D15F4DC9/no008/no00a/ConfigNew.txt02
##Shttp://imgsrc.baidu.com/tieba/pic/item/d6ca7bcb0a46f21f0d2bef55fb246b600c33ae9d.jpg##<39CAE786DA64D1FC4A39684D58DBB05F/no008/no00a/ConfigNew.txt03
##Shttp://imgsrc.baidu.com/tieba/pic/item/7a899e510fb30f2414ef5d05c595d143ad4b03ba.jpg##<0B3381CF39CDC128C236A360BAF5C2A8/no008/no00a/ConfigNew.txt04
##Shttp://imgsrc.baidu.com/tieba/pic/item/b21bb051f81986184d685e8247ed2e738bd4e68d.jpg##<1D660AE25855D011C1A6822C84E592EB/no008/no00a/ConfigNew.txt05
##Shttp://imgsrc.baidu.com/tieba/pic/item/b7003af33a87e950f8a9426a1d385343fbf2b47e.jpg##:32EB3529A1119BD3D5B46F3D9708BF00/no008/no00a/ConfigAll.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/2fdda3cc7cd98d10e89dbd372c3fb80e7bec906f.jpg##:51214C7E01D4A5C19E4E599C5051D4DE/no008/no00b/ConfigNew.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/f9198618367adab437a5aa4586d4b31c8701e4bb.jpg##:AA9FDA3F42FAF0E07F1E19D921CC1F72/no008/no00b/ConfigAll.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/cf1b9d16fdfaaf510caa30b9815494eef01f7a6f.jpg##:A58028489E70188D6C7EB5D519AFA1F1/no008/no00c/ConfigNew.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/9a504fc2d5628535135e63279def76c6a7ef637e.jpg##:B54A6B1C114BF66E2FE6C2E075C75BCB/no008/no00c/ConfigAll.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/b03533fa828ba61e885779294c34970a304e597e.jpg##:0ABCF80B7CBDA9710B577204D1ECC881/no008/no00d/ConfigNew.txt
##Shttp://imgsrc.baidu.com/tieba/pic/item/d1160924ab18972b9b72b1ccebcd7b899e510a6f.jpg##<AC67768DFBF04DF84EBEA8D48E0F912C/no008/no00d/ConfigNew.txt01
##Shttp://imgsrc.baidu.com/tieba/pic/item/aa18972bd40735fab749ffbf93510fb30f24087e.jpg##<30ABF0162AF1CD87F9862DFE6AFCE5FC/no008/no00d/ConfigNew.txt02
##Shttp://imgsrc.baidu.com/tieba/pic/item/f2deb48f8c5494eef356be1f20f5e0fe99257ebb.jpg##<ACA00521253A3C4F203F8A384EC563A2/no008/no00d/ConfigNew.txt03
##Shttp://imgsrc.baidu.com/tieba/pic/item/6f061d950a7b0208ea818ee76fd9f2d3572cc868.jpg##<C7BAAA9FF2B1296B29BA5604C43A934B/no008/no00d/ConfigNew.txt04
##Shttp://imgsrc.baidu.com/tieba/pic/item/86d6277f9e2f0708afbc9b06e424b899a901f27f.jpg##<7AA72D110655BA9153004EC9FE2D01B9/no008/no00d/ConfigNew.txt05
##Shttp://imgsrc.baidu.com/tieba/pic/item/58ee3d6d55fbb2fbe663e914424a20a44623dc68.jpg##:4691A104242EEF7E8F213BDD196E4E52/no008/no00d/ConfigAll.txt

Note:

这里列出的 72 行 list 是当前最新版本。早期我们通过 default.html 响应得到的图片 URL,只有上述列表的前 42 行。

上述列表中的每行 URL 对应后面的文件名。并且部分 URI 在 kemon.sys 中硬编码存在的,但是向 C2 服务器直接请求那些 URI ,会发现都已经失效。猜测早期时可以直接向 <subdomain>.dztworld.com<subdomain>.minding99.com 来获取到响应文件,但后来木马作者开始滥用百度贴吧的图片服务器后,这些URL被逐渐废弃了。

经过排查验证,上述列表中以 .dat 为后缀的文件,都可以直接从相应的图片文件中切出 PE 文件,均为加了 VMP 壳的 双枪 木马或游戏私服相关的恶意程序;而 ConfigXXX.txt 文件,则是与其相配套的配置文件,以变形 DES 解密后如下:

##.gbProtectTdiflt##.1
##.gbProtectTeDrv##.1
##.gbProtectSdDrv##.1
##.tdiver##.1180531
##.GB_IS_JUMP_BACK##.0
##.GB_IS_BYPASS_SUFFIX##.1
##.ApcInjectDLL##.1
##.ApcInjectEXE##.0
##.gbCreateDesktopLnk##.0
##.gbCreateDesktopLnkNew##.0
##.G_NOT_JUMP_TIME##.0
##.G_MAX_JUMP_TIMES##.100
##.G_NEED_CREATE_PROCESS_HOST##.ba.dztworld.com:12337
##.G_NEED_CREATE_PROCESS_PORT##.12337
##.G_B_MONITOR_PAGE_ACTION##.1
##.PatchCode_TE_Amd64##
.##.PatchCode_TE_X86##
.##.PatchCode_TDI_Amd64##
.##.PatchCode_TDI_X86##

至此,从 15.exe 开始到现在,终于明确了这一系列操作的最终目的:传播双枪木马和游戏私服相关的恶意程序。

接下来就是执行从百度图片服务器上下载到的恶意程序。据以往分析,双枪以锁主页带流量为主,游戏私服则主要是传奇的私服。

3. 变形 DES 加/解密算法

前文多次提到,双枪传播过程中的各个阶段都有用到木马开发者自己编写的变形 DES 加/解密算法。由于该算法的存在,导致加密数据不能由 DES 的开源实现直接解密,必须动态调试,或者根据逆向分析自己实现这一套变形 DES 加/解密算法,才能顺利解密该团伙加密的数据。

经过分析,该变形 DES 算法改动了开源 DES 加/解密过程中用到的几个转换向量,而没有改动体积最大的 S_Box 。为了直观展示该 DES 算法对开源 DES 实现中的转换向量的改动,我们以知名开源 C++ 加密库 CryptoCPP 作对比来详细分析。各个改动的转换向量如下(左为CryptoCPP 的实现,右为木马中的实现):

4. 盗用数字签名

母体木马文件 cfe79da256441e45195d6f47049cb2a8 盗用了 Beijing Founder Apabi Technology Limited(北京方正阿帕比技术有限公司) 的数字签名。该数字签名在我们分析此样本的时候还是有效状态,目前已被吊销:

5. 参考资料:

  1. https://www.freebuf.com/articles/web/140113.html
  2. https://www.freebuf.com/articles/web/167776.html
  3. https://www.freebuf.com/articles/system/168789.html
  4. https://www.freebuf.com/articles/system/175507.html
  5. http://www.360.cn/n/10439.html
  6. https://www.freebuf.com/column/187317.html
  7. https://mp.weixin.qq.com/s/sTN7r5hnluAzs5sNyMaRjA

6. IoCs

Domain:

ua[.]dztworld.com  
ub[.]dztworld.com  
uc[.]dztworld.com  
ua[.]minding99.com  
ub[.]minding99.com  
uc[.]minding99.com  
white[.]shougouji.top  
white[.]gogo23424.com  
www[.]src135.com  
www[.]x15222.com  

IP:

125.77.29.26  
125.77.29.205  

URL:

hxxp://42.51.44.167/api/api  
hxxp://42.51.44.215/api/api  
hxxp://42.51.32.166/api/api  
hxxp://42.51.42.106/api/api  
hxxp://42.51.44.168/api/api  
hxxp://42.51.39.60/api/api  
hxxp://42.51.39.208/api/api  
hxxp://42.51.33.3/api/api  
hxxp://42.51.32.20/api/api  

MD5:

94191b6c57b185289b2eb83108d076e4 --> update.txt  
3f5473826dcef015dc06b83767744ea0 --> update.txt  
cfe79da256441e45195d6f47049cb2a8  
d5f6d28be828225cc429589ec6fa2409 --> aa.exe  
e86a9f5819582493837850a25c28915e --> cj.exe  
e88b1d3c9bfb95d02e8dcd9931cfe99e --> tgp.exe  
99d94b61a04a19e74bb5b84c1e75e451 --> 15.exe  
b001c32571dd72dc28fd4dba20027a88 --> kemon.sys

------------------------------------
 Part of image files from imgsrc.baidu.com:
------------------------------------
76853db1e2cc7c75e3e7e47ce09cdfb8  024f78f0f736afc31e3f8e63be19ebc4b7451280.jpg  
c855cb91ae6894783bf0c43b64b9ebe2  0824ab18972bd40765b362fb76899e510fb309bb.jpg  
bccd1c321cf1d27c053d1e6ccf76dec6  0b55b319ebc4b74532570311c4fc1e178b8215f1.jpg  
7a0919b7306afc6bf5b0ff7ca8853fdc  0d338744ebf81a4c6a8cde1add2a6059242da6a2.jpg  
c855cb91ae6894783bf0c43b64b9ebe2  1b4c510fd9f9d72ade7aa11bd92a2834349bbb9e.jpg  
52052a9e4cc1e85f9c1589b59460141e  267f9e2f0708283897406d12b599a9014c08f163.jpg  
f9b5a47ac4f7c297039f6b460db6ed99  279759ee3d6d55fb16e5c72060224f4a20a4dd91.jpg  
5ccd23d40e3874028c00dae5717f57ba  38dbb6fd5266d01645562f2e9a2bd40735fa356c.jpg  
f9b5a47ac4f7c297039f6b460db6ed99  3ac79f3df8dcd100888149277f8b4710b9122f92.jpg  
522ee5811000542d4c0eec97ebfd2473  3bf33a87e950352a147a920f5843fbf2b2118b9a.jpg  
5ccd23d40e3874028c00dae5717f57ba  55e736d12f2eb9386971cbf4d8628535e5dd6f9c.jpg  
908790c5e0064f0a081965c32de4c6e5  562c11dfa9ec8a137a506533fd03918fa1ecc09e.jpg  
7f0341563fd4ce2aae774dec56b54049  5bafa40f4bfbfbed2b24656f75f0f736afc31fa4.jpg  
c855cb91ae6894783bf0c43b64b9ebe2  730e0cf3d7ca7bcbbb337629b3096b63f624a868.jpg  
7f0341563fd4ce2aae774dec56b54049  78310a55b319ebc43e3f25898f26cffc1e17165e.jpg  
f62a4e2edda5e0d7ad9d54c649508c3f  79f0f736afc37931624a372fe6c4b74543a91191.jpg  
52052a9e4cc1e85f9c1589b59460141e  7acb0a46f21fbe09df10721266600c338744ad6e.jpg  
de8eb1ad23798019705311adafde4ee8  a08b87d6277f9e2fa7e042251230e924b999f3c2.jpg  
f457c126893a1a7376be86eeaf28622d  a686c9177f3e6709e52df4f936c79f3df8dc5582.jpg  
76853db1e2cc7c75e3e7e47ce09cdfb8  a6efce1b9d16fdfa517077e8b98f8c5494ee7b9c.jpg  
f9b5a47ac4f7c297039f6b460db6ed99  aec379310a55b31981d533734ea98226cffc1783.jpg  
302635d838991abfa8b3b0dab0df3c38  b3119313b07eca80b34b88e19c2397dda144836e.jpg  
563571761277a49ee146f58e6dfa6522  b8389b504fc2d562960b83fdea1190ef76c66c9a.jpg  
e31e72a3e4dfb949b12e109a102330d8  c2cec3fdfc03924586e1a4228a94a4c27d1e2542.jpg  
302635d838991abfa8b3b0dab0df3c38  c83d70cf3bc79f3dc8985536b7a1cd11728b29be.jpg  
302635d838991abfa8b3b0dab0df3c38  d52a2834349b033b9ff04ddc18ce36d3d539bdb8.jpg  
7f0341563fd4ce2aae774dec56b54049  d788d43f8794a4c223bfb43b03f41bd5ad6e3905.jpg  
6c0edbf13c285df627d3045691bfa3ea  d788d43f8794a4c227adb80603f41bd5ad6e3914.jpg  
76853db1e2cc7c75e3e7e47ce09cdfb8  d833c895d143ad4b8a61f7c68f025aafa40f066c.jpg  
52052a9e4cc1e85f9c1589b59460141e  d8f9d72a6059252d1425ac02399b033b5bb5b982.jpg  
78d41ff236a815bcac9730a79827fd30  dc54564e9258d109fb9acc87dc58ccbf6c814d8d.jpg  
c295f2dbf0bd15dac0e902fc4798e108  e4dde71190ef76c6a9c7be069016fdfaaf516781.jpg  
f457c126893a1a7376be86eeaf28622d  e850352ac65c103883337fc4bf119313b07e8963.jpg  
f457c126893a1a7376be86eeaf28622d  f11f3a292df5e0fe9e513807516034a85edf726e.jpg  
5ccd23d40e3874028c00dae5717f57ba  f31fbe096b63f624dd1088058a44ebf81a4ca363.jpg  
fd115d376a5ff3ba87dfeb16cbc1772a  f603918fa0ec08fa8256769254ee3d6d55fbdab5.jpg  
bd26d5a845790c0fe43dc8bad1040f2c  fcfaaf51f3deb48f8d4b10d8fd1f3a292df57891.jpg