瞄准大型组织进行勒索:详细分析BitPaymer勒索软件

41yf1sh 技术 2018年11月21日发布
Favorite收藏

导语:据报道,2017年8月,一个名为BitPaymer的新型勒索软件变种攻击了英国的国民健康服务(NHS),并勒索高达53比特币(约合20万美元)。由于该勒索软件以组织作为目标,并且提出了高额的赎金要求,因此在当时非常引人注目。

一、概述

INDRIK SPIDER是一个复杂的网络犯罪集团,该组织自2014年6月以来就一直在运营Dridex银行木马。在2015年和2016年,Dridex是全世界违法收益最高的银行木马之一。自2014年以来,INDRIK SPIDER已经通过该木马获得数百万美元的非法利润。经过多年的运营,目前Dridex已经进行了多次更新,开发了一些新的模块,同时在恶意软件中添加了新的反分析功能。

据报道,2017年8月,一个名为BitPaymer的新型勒索软件变种攻击了英国的国民健康服务(NHS),并勒索高达53比特币(约合20万美元)。由于该勒索软件以组织作为目标,并且提出了高额的赎金要求,因此在当时非常引人注目。尽管BitPaymer的加密和赎金功能从技术上来看并不复杂,但恶意软件包含了多个与Dridex相同的反分析功能。后来,通过对BitPaymer进行技术分析,证明它是由INDRIK SPIDER开发的勒索软件,同时也表明该组织已经将其犯罪活动范围扩大到勒索软件。

2017年初,INDRIK SPIDER对Dridex的运营也发生了变化。Dridex恶意软件从“大体积+广泛撒网”变为“小体积+特定目标攻击”,因此Dridex恶意活动占比也有显著下降。在此期间,Dridex的快速发展趋势也有所平缓,2017年发布的版本数量与前几年相比显著下降。同时,我们也观察到Dridex与BitPaymer勒索软件具有高度相关性。我们调查了BitPaymer的相关事件,发现网络中主机在感染BitPaymer勒索软件之前,都首先感染了Dridex。另外,还有一点不寻常之处,Dridex和BitPaymer都是通过渗透测试相关的横向移动技术在受害者网络中实现传播的。

因此,INDRIK SPIDER已经将模式转变为:有针对性的面向特定组织进行高额勒索。这也标志着该组织的运营策略发生了转变,他们开始倾向于有针对性、低成本、高回报的犯罪活动,也就是我们称为大型狩猎游戏的网络犯罪行为。自从这一策略转变以来,INDRIK SPIDER已经使用BitPaymer勒索软件作为这些犯罪活动的重要工具,并且在勒索软件投入运营的前15个月内获得了约150万美元的非法收入。

二、针对特定目标投递

我们针对多起活跃的BitPaymer事件进行了应急响应支持。根据从这些事件应急中收集的信息,并结合此前我们掌握的关于Dridex的情报,可以深入了解INDRIK SPIDER是如何部署和运营Dridex和BitPaymer的。下图是该过程的简要描述。

1.png

在近期处理的BitPaymer事件中,我们认为其最初感染媒介是FlashPlayer插件和Chrome浏览器的虚假更新。攻击者首先入侵合法网站,随后发布这些虚假更新,并通过社会工程学诱导用户下载并运行恶意的可执行文件。我们发现,其他恶意软件也通过相同的虚假更新来提供,因此推断,这些虚假更新应该是一个“根据安装次数付费”的服务。

2.1 PowerShell Empire的横向移动

在感染之后,我们发现被感染主机上运行了Dridex加载程序和PowerShell Empire。PowerShell Empire是一款专为渗透测试而开发的后漏洞利用阶段代理,用于在主机之间横向移动。在主机之间横向移动期间,PowerShell Empire代理以名为Updater的服务运行,如下图所示。

2.png

在横向移动过程中,我们还观察到PowerShell Empire在被感染网络的服务器上部署了Mimikatz模块。Mimikatz是一种用于在Windows主机上获取凭据的后期利用工具。在获取凭据后,恶意软件会使用得到的凭据进行进一步的横向移动。对于PowerShell Empire成功移动的主机,将会下载并安装Dridex加载工具。该恶意软件将持续进行横向移动,一旦检索到环境的域凭据,就会将PowerShell Empire和Dridex加载工具全部安装在域控上。该过程自动执行,其传播速度取决于主机被攻陷的速度。

尽管Dridex的主要功能是加载模块以进行欺诈活动,但其最新版本的更新还允许它执行系统和网络侦查。这些侦查功能包括:收集主机上当前用户及相关信息、列出本地网络中的计算机以及提取系统环境变量。这些信息可能用于帮助攻击者识别被攻击网络中的目标。

在某些场景中,我们还观察到,在域控受到攻击后、BitPaymer安装之前,存在几天停止恶意活动的时间。我们认为,这段时间间隔是用于侦查和信息收集,以便让恶意活动运营者决定如何能最大化收益。

2.2 通过PowerShell Empire和组策略对象部署的勒索软件

一旦域控制器被成功入侵,有两种不同的方式执行BitPaymer的部署。在其中一个场景中,仅将域控制器和其他关键基础架构(如薪资支付服务器)作为攻击目标,使用PowerShell Empire直接在这些服务器上下载并执行BitPaymer恶意软件。

在另一个场景中,BitPaymer恶意软件被下载到目标网络的网络共享中,并且一个名为gpupdate.bat的启动脚本通过域控制器的组策略对象(GPO)被推送到网络中所有主机。该脚本将从共享中复制BitPaymer,并在网络中的所有主机上执行该恶意程序,最终导致数千台计算机的感染和文件被加密。

2.3 发动APT攻击

这种有针对性的部署方式,涉及到凭据窃取、横向移动和系统管理员工具的使用,非常类似于我们此前监测到的某些恶意组织和渗透测试团队的行为。由于目前已经针对特定受害者勒索高价赎金,因此INDRIK SPIDER组织就不再需要扩展其违法业务,目前已经有能力根据受害者的环境定制工具,并在攻击的过程中发挥更积极的作用。

三、BitPaymer勒索软件

尽管首次发现BitPaymer被使用是在2017年8月,当时有攻击者使用这一恶意软件攻击了几家NHS医院,但实际上,该病毒最初是由Twitter用户Michael Gillespie在2017年7月发现的。后来,在2018年1月,发布了一份报告,确定了BitPaymer勒索软件和Dridex恶意软件之间的相似之处。该报告的作者将恶意软件重命名为“FriedEx”。我们分析了这一恶意软件,并确认BitPaymer/FriedEx和Dridex恶意软件之间具有相同部分。

由于勒索软件是针对特定目标的,因此BitPaymer为每个恶意活动量身定制,具有单独的加密密钥、赎金通知和嵌入恶意软件的联系方式。因此,恶意软件也有多种版本。目前,我们已经确定了两个主要变种:一种较旧的变种,它将加密过程分为多个“模式”,每种模式都用于完成一个特定的任务;此外还有一个较新的变种,它作为服务来运行。

3.1 BitPaymer也称为“wp_encrypt”

在分析过程中,我们掌握了包含程序数据库(PDB)字符串S:\Work\_bin\Release-Win32\wp_encrypt.pdb的勒索软件构建方式。基于这一字符串,恶意软件开发人员也将该勒索软件称为wp_encrypt。PDB字符串还包含前缀字符串S:\Work\,它与其他Dridex模块相同,具体如下所示。此外,勒索软件还包含来自Dridex模块的代码,勒索软件的一些变体与Dridex加载工具的代码相似度高达69%。

各模块名称与描述如下:

1、loader:下载并安装核心Dridex模块,包括其worker。

2、vnc:提供远程桌面访问。

3、netcheck:检查网络连接。

4、spammer:垃圾邮件模块。

5、worker:负责银行木马功能的核心组件,包括键盘记录、Web注入、下载并执行第二阶段Payload等。

6、trendmicro:在TrendMicro防病毒检测软件中,将Dridex模块列入白名单。

7、wp_decrypt:BitPaymer解密工具。

3.2 反分析技术

BitPaymer恶意软件的两个变种都具有多种反分析技术。恶意软件开发人员采用了加密字符串、字符串哈希和动态API解析等方案,确保二进制文件中不包含任何字符串。

3.3 加密字符串表

BitPaymer恶意软件在二进制文件的rdata部分中包含一个加密字符串的小表。这些字符串使用标准RC4算法加密,其中前40个字节构成RC4密钥,其余数据包含加密字符串表。这部分内容将在运行时根据实际需要使用。解密字符串表中的字符串以空字节分隔,并且按顺序引用。该字符串表加密方法与其他Dridex恶意软件中所使用的方法相同,包括40字节密钥长度和rdata部分中表格的字符串。字符串表中包含勒索软件加密过程使用的RSA公钥、勒索提示、文件扩展名和加密目标特征字符串等内容。

3.4 字符串哈希

除了加密的字符串表之外,BitPaymer还是用哈希值替换二进制文件中的剩余字符串,并使用算法将这些哈希值与主机上存在的字符串进行匹配。例如,在设置持久性运行键时,BitPaymer并没有简单地打开注册表项HKCU\Software\Microsoft\Windows\CurrentVersion\Run,而是使用API RegEnumKeyW迭代所有注册表项,比较它们的哈希值,直至找到正确的键值。散列算法负责生成字符串的CRC32散列。该散列使用简单的XOR与DWORD组合。对于每个恶意软件版本,其DWORD都不同。这里使用到的字符串散列算法,与其他Dridex模块中使用的散列算法相同。哈希值算法如下面的Python代码所示。

Import binascii
 
Def get_string_hash(string_value, key_dword):
Crc_hash = binascii.crc32(string_value.lowercase()) & 0xffffffff
Hash_value = crc_hash ^ key_dword
Return hash_value

3.5 动态API解析

恶意软件中使用到的Windows API会在运行时动态解析。针对每个API,其函数名称和DLL名称都经过哈希处理,并存储在二进制文件中。在运行过程中,如果需要API,恶意软件会遍历Windows系统目录中的所有DLL,将其名称的哈希值与预先计算好的DLL哈希值进行比较,直至找到。然后,恶意软件将加载DLL,并迭代导出表,将API名称的哈希值与预期哈希值进行比较,直至找到。用于API名称的哈希算法与用于字符串哈希的CRC32算法相同。但是,在对DLL名称进行哈希处理时,BitPaymer会事先将字符串转换为大写。此过程也适用于其他Dridex模块。

3.6 持久化

BitPaymer的旧“模式”变种使用Windows注册表实现持久化,而新版变种则尝试将其自身安装为服务。如果失败,则会尝试使用Windows注册表。

旧的“模式”变种首先将自身复制到%USERPROFILE%\AppData\Local或%USERPROFILE%\AppData\LocalLow目录下,具体选择取决于其进程完整性级别。然后,它将向注册表项HKCU\Software\Microsoft\Windows\CurrentVersion\Run中添加一个新的注册表值,其中包含刚刚复制的恶意软件的路径。注册表值名称是一个随机生成的字符串,介于5-15个字符之间,其中包含大写字母、小写字母及数字。

3.7 Windows事件查看器UAC绕过(eventvwr.msc)

当运行BitPaymer的新版变种时,它首先会确定是否正在从备用数据流(ADS)中执行。如果没有,恶意软件将在%APPDATA%文件夹中创建一个文件,其文件名长度在3-8个字符之间,包含大写字母、小写字母及数字。然后,它将自身复制到新创建文件的备用数据流:bin,并从流中创建新进程。

当从备用数据流执行恶意软件时,它会检查进程完整性级别。如果没有以高于中等完整性(Medium Integrity)的级别运行,则会尝试提升其权限。为了防止在权限提升期间产生用户访问控制(UAC)提示,恶意软件早在2016年8月就使用了UAC绕过技术。该绕过需要临时设置注册表项HKCU\Software\Classes\ms-settings\shell\open\command(Win 10)或HKCU\Software\Classes\mscfile\shell\open\command(Win 7),来执行恶意软件。在设置注册表项后,恶意软件将启动Windows事件查看器进程eventvwr.msc,该进程将会在无意中以提升后的权限启动注册表项中的恶意软件集。

3.8 劫持服务

如果没有成功实现权限提升,那么恶意软件将会采取与旧变种相同的技术,利用注册表项HKCU\Software\Microsoft\Windows\CurrentVersion\Run来添加持久性。如果恶意软件成功实现权限提升,则会开始遍历主机上配置为以LocalSystem身份运行的现有Windows服务。恶意软件选择当前未处于活动状态的服务,并会忽略启动可执行文件svchost.exe和lsass.exe的服务。针对每个服务,恶意软件会尝试控制服务的可执行文件,首先使用带有/reset标志的icacls.exe来重置可执行文件的权限,随后使用带有/F标志的takeown.exe获取可执行文件的所有权。

如果成功,恶意软件会在可执行文件中创建:0备用数据流,并将可执行文件的内容复制到流中,从而可以在后面恢复可执行文件。然后,恶意软件使用自身副本,替换可执行文件的内容,并启动该服务。可执行文件的文件修改时间也被人为地更改为00:00:00 UTC。这一更改的目的是通过解密工具识别和恢复文件。

一旦服务被成功劫持,恶意软件就会停止尝试劫持其他服务,并退出。如果没有符合要求的服务,那么BitPaymer将会退出,同时不会对任何文件进行加密。

3.9 删除影子文件

在加密之前,BitPaymer的两种变种都试图从主机中删除备份影子文件(Shadow Files),从而使用户无法恢复加密文件。这一过程是通过使用以下命令启动vssadmin进程来实现的:

vssadmin.exe Delete Shadows /All /Quiet

3.10 加密

字符串表中包含一个字符串,其作用类似于恶意软件加密目标的配置标志。字符串包含字母F、R、N、S的组合。在加密过程中,将会检查此标志中的字母,以确定要加密的驱动器类型。每个字母所代表的驱动器类型如下,我们分析的所有BitPaymer样本都启用了全部四个标志,从而实现对尽可能多的文件进行加密。

字母F:加密固定驱动器

字母R:加密可移动驱动器

字母N:加密网络驱动器(已装载)

字母S:搜索域/工作组上的网络共享,并进行加密

3.11 网络共享加密

为了实现加密网络共享,BitPaymer将尝试遍历登录到被感染主机上每个用户的会话,并使用每个用户的Token创建一个新的进程。这些新进程将首先使用view参数生成net.exe进程,用于收集网络中可访问主机的列表。针对每个主机,BitPaymer会使用新发现的主机作为参数,使用命令net view <host>生成另一个net.exe进程。这样一来,将会返回主机上可以模拟用户的网络共享列表。一旦收集了所有网络共享的列表后,BitPaymer就会尝试挂载它们,并进行加密。

3.12 加密例程

针对每个目标驱动器,恶意软件会递归遍历所有文件和目录。对于每个文件,都会将其文件名和路径,与“排除的文件名列表”和两个排除的目录名列表进行比较。这些排除的列表由位于加密字符串表中的正则表达式类型字符串组成。如果文件名和路径与排除列表中的任何正则表达式都不匹配,就会对文件进行加密。

文件加密算法使用CryptImportPublicKeyInfo,从加密字符串表中导入硬编码的RSA 1024位公钥,并且对于每个文件使用CryptGenKey生成128位RC4密钥。然后使用RC4密钥加密文件。加密后,文件将变为具有相同名称的新文件,其扩展名后将附加关键字.locked。

RC4密钥将会导出,作为使用RSA密钥和Base64编码加密的SIMPLEBLOB。此后,勒索软件将创建第二个文件,其名称与被加密文件的名称相同,但其扩展名后将附加关键字.readme_txt。该文件将用于存储勒索提示,同时将RSA加密、Base64编码后的RC4密钥与KEY: 字符串一同附加到此文件中,如下图所示。

3.png

由于密钥没有附加到加密文件,而是写入到单独的文件,所以如果包含勒索提示的文件被意外删除或移动到单独的目录,则加密文件将无法恢复。在较新的变种中,我们找到了关于不要对readme_txt文件进行操作的警告,而旧版勒索软件的提示中则没有这段内容。

4.png

根据勒索提示,我们可以看出这种勒索软件专门针对的是公司,而不是个人。如果没有支付赎金,勒索软件制作者还威胁将会泄露收集到的隐私信息。尽管勒索软件自身并没有功能来收集信息,但实际上勒索软件是与Dridex恶意软件一起部署到主机上的,而Dridex恶意软件包含可以从受感染主机中收集信息的模块。

嵌入式RSA公钥的使用,表明勒索软件创建的每个二进制文件对于特定目标来说都是唯一的。根据设计,解密工具需要包含相应的RSA私钥。因此,如果二进制文件用于多个目标,那么只需支付一次赎金,就可以获取私钥,随后便可以使用私钥解密所有受感染的主机。我们已经掌握了与BitPaymer相关的多种解密工具,这些工具也证实了攻击者针对每个目标使用单独密钥的推测。

四、勒索提示和解密过程

BitPaymer的勒索提示发生了多次变化,第一次更改是在2017年7月首次发现恶意活动后不久进行的。最初,INDRIK SPIDER在勒索提示或基于TOR的支付门户中,提供了所有必须的信息,这意味着受害者只需与攻击者进行很少的互动,即可完成支付。但是,后来的勒索提示中删除了一些关键信息,从而迫使受害者需要向INDRIK SPIDER组织发送电子邮件,从而获取付款和解密详情。下表列举了BitPaymer勒索提示所发生的变化。

5.png

通过从提示中删除赎金要求,INDRIK SPIDER可以随意更改勒索的金额,这一金额可能取决于组织的规模和受害者联系的速度。

4.1 电子邮件支持解密

与其他的一些勒索软件操作不同,INDRIK SPIDER要求受害者与运营者进行通信。我们针对受害者与运营者的电子邮件通信过程进行了分析,揭示了勒索软件运营者是如何与受害者进行付款谈判,以及如何发送解密指令的。

在我们尝试与INDRIK SPIDER运营者进行邮件通信后,运营者提供了一些关键信息,例如比特币地址和赎金金额。同时,该恶意阻止也愿意对受害者选择的两个特定文件进行解密,以此证明他们能够成功解密。

在通信过程中,恶意组织明确表示,他们不愿意就赎金金额进行谈判,并且明确说明受害者可以通过多个比特币交易所来购买比特币,汇率应根据当时价格来进行计算。

恶意组织的赎金要求,可能是准确美元价格对应的比特币,也可能是特定数量的比特币,我们推测会根据比特币的行情而发生变化。在通信中,受害者被告知要使用TOP 10的比特币交易所进行交易,同时他们还应该寻求当地IT支持公司的协助。值得注意的是,INDRIK SPIDER还限定了受害者应该联系的IT支持公司的地理位置范围,以确认他们掌握受害者的关键信息。

在付款完成后,INDRIK SPIDER将确认收到,并说明解密器将在几个小时内交付。尽管在此前,恶意组织承诺会在收到付款后1小时之内交付解密器,但实际上他们是在4小时内完成交付的。我们认为,这一情况,可能是由于INDRIK SPIDER运营者和受害者存在时差造成的。

INDRIK SPIDER使用文件共享平台来分发BitPaymer解密器。在向受害者发送的大量电子邮件中,INDRIK SPDIER运营者提供了解密器下载链接、解密器删除链接(在解密器下载后使用)和密码。同一封邮件中,还提供了有关如何下载和使用BitPaymer解密器的说明,包括如何删除恶意软件的持久性。运营者还说明,他们将使用相同电子邮件地址进行通信,提供更长时间的协助,这一时间通常会持续到那一周的结束。有趣的是,INDRIK SPIDER为受害者提供了几个重要的安全建议,有助于避免进一步感染恶意软件,其中不仅包含安全建议,还包含INDRIK SPIDER如何破坏组织并横向移动,直至获得域控制器访问权限的说明。

6.png

4.2 赎金支付

针对不同目标,其赎金支付的要求也有所不同,这表明INDRIK SPIDER可能会根据受害组织的规模和价值来计算赎金金额。目前,已经发现的最低付款金额为10000美元,最高金额接近200000美元。

以下是恶意组织所使用的比特币地址,以及他们所收到的美元金额:

12AWdHJkwF193ud21XWGontyCJTW6A9i6p  $197,596.05
1Ln9RxSRuDqqFhCTuqBPBKRMeyhVhRaUG4  $0
1BWj247jtipKr1wuFciKypeidZVwZWHCi9  $77,651.59
19aF868XPJhNqheXWgvrHPqnXpwhttf3Hw  $173,315.48
14uAWnPnhtrXDB9DTBCruToawM65dUgwot  $740,752.71
1PNmBWJHzJGqTUemastR7E4ccrUNASktmZ  $172,793.80
1DWbPyjmbKA1NFqv3nyL47y9Vsz6WFU4Hw  $192,867.22

截至2018年11月1日,我们观察到受害者已经向INDRIK SPIDER控制的比特币地址共支付了185.7个比特币,总金额为1554977美元(根据文章撰写时的当前汇率)。

五、INDRIK SPIDER恶意组织未来发展趋势

INDRIK SPIDER恶意组织由经验丰富的恶意软件开发者和运营者组成,可能他们自2014年6月开始就在运营Dridex恶意软件。该恶意组织的运作方式在2017年初发生了显著吧电话,Dridex运营开始变得更有针对性,从而导致分发数量和Dridex子僵尸网络数量的减少。BitPaymer勒索软件的运营始于2017年7月。

毫无疑问,BitPaymer勒索软件对于这个犯罪集团来说是成功的,每位愿意支付赎金的受害者都支付了高昂的费用。与此同时,该恶意组织持续运营Dridex银行木马。在近四年的运营中,Dridex持续为他们带来非法收入,但一些针对特定目标的银行诈骗活动可能需要事先进行细致的规划。因此,勒索软件为该恶意组织提供了高收益,也降低了运营者和开发者所需付出的成本。

我们预计,INDRIK SPIDER将会继续运营Dridex和BitPaymer,两种恶意软件将互为补充。在银行欺诈不能得到足够收益的时候,他们会将重心放在勒索软件上。目前可以看出,他们的低规模、针对特定目标、高赎金价格策略非常有效。

INDRIK SPDIER并不是唯一一个将大型企业作为目标的犯罪分子。第一个针对大型企业进行勒索的勒索软件名为Samas(又称为SamSam),由BOSS SPDIER恶意组织开发和运营。自从1月2日至1月16日首次发现它们以来,这一恶意组织始终以大型企业为目标,并要求高额赎金。2017年7月,INDRIK SPIDER发布了BitPaymer勒索软件。此后,被称为Ryuk的勒索软件在2017年8月被发现,我们将其运营团队称为GRIM SPIDER恶意组织,该勒索软件也针对大型组织。

我们预计,INDRIK SPIDER、BOSS SPIDER和GRIM SPIDER这三个恶意组织将在短时间内继续运营,并且其他针对大型组织的威胁也将发生增长。其他犯罪分子可能也在考虑开发并使用复杂的勒索软件。但考虑到需要拥有熟练的技术、适合的工具和特定的恶意软件,我们预计只有少数犯罪集团能够发动这种类型的攻击。然而,我们认为这一攻击的趋势将持续增长。

六、IoC

我们分析的BitPaymer样本,SHA256哈希值及创建时间(UTC)如下:

c7f8c6e833243519cdc8dd327942d62a627fe9c0793d899448938a3f10149481   2017-10-22 07:48:04
17526923258ff290ff5ca553248b5952a65373564731a2b8a0cff10e56c293a4   2017-06-08 14:20:38
282b7a6d1648e08c02846820324d932ccc224affe94793e9d63ff46818003636   2017-06-30 09:33:52
8943356b0288b9463e96d6d0f4f24db068ea47617299071e6124028a8160db9c   2018-01-26 14:43:27

我们分析的BitPaymer解密器样本,SHA256哈希值及创建时间(UTC)如下:

f0e600bdca5c6a5eae155cc82aad718fe68d7571b7c106774b4c731baa01a50c   2017-06-07 15:08:59
b44e61de54b97c0492babbf8c56fad0c1f03cb2b839bad8c1c8d3bcd0591a010   2017-08-02 15:40:03
13209680c091e180ed1d9a87090be9c10876db403c40638a24b5bc893fd87587   2017-11-07 14:40:50

我们分析的BitPaymer感染阶段部署的Dridex样本,SHA256哈希值及创建时间(UTC)如下:

91c0c6ab8a1fe428958f33da590bdd52baec868c7011461da8a8972c3d989d42   2018-05-01 14:43:04
f1d69b69f53af9ea83fe8281e5c1745737fd42977597491f942755088c994d8e   2018-05-01 00:35:47
39e7a9b0ea00316b232b3d0f8c511498ca5b6aee95abad0c3f1275ef029a0bef   2018-02-18 12:38:40
本文翻译自:https://www.crowdstrike.com/blog/big-game-hunting-the-evolution-of-indrik-spider-from-dridex-wire-fraud-to-bitpaymer-targeted-ransomware/如若转载,请注明原文地址: http://www.4hou.com/technology/14632.html
点赞 0
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论