在阴影中:Vawtrak(银行木马病毒)意图通过添加新的数据源使得自己更加隐蔽

原文发布时间:2015/10/01

原作者:Darien Huss & Matthew Mesa

在Dridex木马活动短暂停止的同时,这个恶意软件背后的犯罪人员立马去寻找(开发)新的交付渠道(攻击方法,钓鱼方式),这看起来像是其他的恶意软件供应商将自己定位为了从有利可图的犯罪软件竞争环境中获得更多的市场份额。最近的一个发展现象就是Vawtrak(以前是二级银行金融信息窃取木马)出现了新功能 —— 最值得注意的是其中用于数据编码和C2通信更改的新方法,其目的是为了改善恶意软件对检测的躲避能力。

第一部分:攻击媒介(木马)和渗透攻击

在Vawtrak使用这个新功能之前(在Vawtrak发挥出新特性之前),必须将Vawtrak附着(依附,安装)在目标上。虽然基于附件的网络钓鱼仍然是首选的传输媒介(木马)的方式,但Proofpoint还是检测到从(2015年)9月底开始传播的新的变种(Vawtrak)也可以基于漏洞套件的攻击(又名“偷渡式下载”)。

基于附件的网络钓鱼

Proofpoint观察了数个传播新Vawtrak变体的大量的电子邮件活动。这些电子邮件声称附带着附件,比如传真(图1),传票,价格清单或财务报告,以便诱导用户点击并打开附件。这些附件内嵌了叫做Xbagging或Bartalex1的服务的宏,之后这些宏会从远端站点下载了Pony病毒(WINDOWS下的木马程序),最后Pony将会下载并执行了Vawtrak(代码)数据。

图 1. 钓鱼邮件
图 2. 恶意附件

Proofpoint研究人员观察到以下邮件主题和恶意附件被用于最新的活动,用于传播Vawtrak的新变种:

日期

邮件主题

附件诱饵

9月17日

转: 转: 诽谤诉讼

法院传票

9月22日

转: 转: 转:

财务报表

9月23日

转: 新报价

价格清单

9月24日

来自<电话号码>的新2页电子传真

传真

9月28日

来自<电话号码>的新3页电子传真

传真

9月29日

您有1个新的eVoice语音邮件(回复:<电话号码>)

语音信息

9月30日

您有1个新的eVoice语音邮件(回复:<电话号码>)

语音信息

使用漏洞利用套件传播木马病毒

Proofpoint的研究人员还发现这种Vawtrak变种木马也可以通过Angler(漏洞)利用套件进行传播。如图3所示,我们发现一个恶意软件TDS(流量分配系统),其导致Angler EK(漏洞攻击工具)下载了Bedep(病毒)。之后,Bedep将会执行它自己常规的程序(步骤),比如,创建一个隐藏的桌面,通过浏览和其他僵尸网络攻击进行广告欺诈。当然,同时也会下载Vawtrak。

图3 Angler EK 传播 Bedap->Vawtrak

第二部分:命令与控制和数据泄露 —— Vawtrak将获得升级

了解与C2通信和恶意软件配置文件可以在组织检测恶意软件时和补救方面发挥重要作用,从而更好地估算恶意软件可能造成的损害。最新观察到的Vawtrak变种已经加入了明确的改进,试图进一步阻碍防御方的反击。

修改编码和加密

正如之前的研究所描述的那样(2,3,4),Vawtrak在过往中经常使用类似Vername Cipher的加密算法来隐藏泄露在C2中的配置文件,可疑的字符串和掩码数据。在最新的版本中,Vawtrak仍然使用由伪随机树生成器(PRNG)提供的线性同余生成器(LCG)来生产用于加密数据的密钥;但是,现在使用的PRNG功能发送了改变:

def prng ( seed ) :
	return ( ( seed * 0x41C64E6D ) + 0x3039 ) & 0xFFFFFFFF

字符串编码

字符串编码使用由新的PRNG算法提供的LCG,然后从每个加密字节中减去生成的密钥以生成明文字符串。编码字符串中的第一个DWORD(是指注册表的键值,每个word为2个字节的长度,DWORD 双字即为4个字节,每个字节是8位,共32位)当作“seed”,而相同的值与第二个DWORD进行异或运算(XOR),以计算编码字符串的大小。编码的字符串从第二个DWORD之后的位置开始。解压后的Vawtrak DLL文件中的大多数可疑字符串都是使用此方法进行编码的。

HTTP信标(网络臭虫)

通过Vawtrak生成的用于将数据泄露到C2的HTTP流量相对地进行了改变,现在在外观和功能方面都有者很大的差别。图4展示了一个例子有关于Vawtrak在使用C2初始登记期间生成的HTTP流量。

图 4 Vawtrak HTTP C2 登记(检入)

PHPSESSID被用于传输编码的RC4密钥和其他数据。解码后的Cookie的前4个字节用于RC4加密POST的客户端主体中包含中的数据。这种Vawtrak变种木马使用二进制结构来传输到C2的大多数数据,如图5中的解密网络流量所示。并且在凭证的泄露过程中使用了相同的编码方法。

图 5 解密的Vawtrak HTTP 检入

根据所使用的内容,LZMAT(开源极快数据压缩库)有时用于压缩在加密之前已泄露的数据。图6显示了美国Express(美国运通公司)尝试登录期间解密的HTTP客户端主体,但数据尚未采用明文格式,因为它已使用LZMAT进行压缩。图7说明了使用LZMAT解压缩后的观察到的明文数据。

图6 解密后仍然压缩的Vawtrak HTTP 泄露数据
图 7 来自图3解压后的数据

配置编码

该变种Vawtrak木马通常会在初始登录(检入)后,立即接受原始(没有编码的)二进制blob(数据块)。这种blob中包括了可以包含单独段的二进制结构,包括但不限制编码配置,一些用于检索其他模块的链接以及一个检查自身最新版本的链接。

为了解码配置文件,Vawtrak首先使用与解码可疑字符串完全相同的解码方法。接下来,使用LZMAT解压配置文件。在解压之后,配置中包含了一个二进制数据结构,该二进制数据结构包含若干其他编码的配置段。图8描述了该结构的前几个字节的用途。

图 8 解压后编码的Vawtrak配置信息

Vawtrak用于保护其配置的下一个和最后一个编码层是一个简单的替换密码,其中S-box使用相同的PRNG算法创建。每个单独的注入,目标URL等包含在其自己的结构中并单独解码。

存储配置

除了在收到配置后立即解码配置,Vawtrak还在添加额外的编码层后将编码配置存储在注册表中。首先,“seed”(第一个DWORD)与驱动器的VolumeSerialNumber(硬盘序列号)进行异或运算(XOR),该驱动器包含Windows API函数GetTempPath(获取临时文件指定的路径)的结果。下一步,使用添加LCG算法进一步编码整个编码配置文件。然后使用编码密钥将该值存储在注册表中。我们使用以下表示配置文件的注册表项来观察此变体:

- ”#0”
- ”#1”

但是,这些键值首先使用和旧Vawtrak变种木马类似的方式编码,首先与VolumeSerialNumber(硬盘序列号)进行异或运算处理。图9包含存储的Vawtrak信息的屏幕截图,这里重点展示的键值总包含编码配置。

图 9. 存储在注册表中的Vawtrak信息

检索模块

如前一节所述,当Vawtrak从C2接收其配置时,还可能会接收到一个URL列表有关于其他模块的地址。Vawtrak为它需要检索的每个模块生成一个新线程。首先以编码状态接收模块,使用前面部分中说过的相同的解密LCG算法对其进行解码。解码模块在开头包含RSA签名,用于验证压模块的完整性。在我们分析的每个解压的“模块”中,它们都包含模块的x86和x64版本。然后每个木块可以根据入侵的机器的体系结构(版本)单独进行解压。到目前为止,我们只观察到了以下模块:

[hxxp://185.66.10[.]57/module/9f3359a7b12ceea791a4afc21a971152 -> injecter_32.dll / injecter_64.dll]
[hxxp://185.66.10[.]57/module/4c06c7a4c2bc6fb51cd998e9bbcf5846 -> dg_32.dll / dg_64.dll]
[hxxp://185.66.10[.]57/module/221680f17a95443c798c701eff36cbe6 -> pony_32.dll / pony_64.dll]

检索更新:

如之前所述,除了检索模块之外,Vawtrak还可能接收到一条关于是否升级自身的链接。更新数据被包含在类似于模块结构的二进制数据结构中; 但是,“seed”包含在第二个DWORD而不是第一个DWORD中。然后,RSA签名包含在下一个0x80字节中,而编码更新包含在签名后的剩余字节中。可以使用相同的LCG相减算法对更新进行解码。包含更新一些的DLL文件的URL可以在附录A中找到。

Web注入和窃取数据

Vawtrak的功能与以前版本相似,涉及窃取数据和Web注入。在我们分析的样本配置中,有几家电商平台被作为攻击的目标(或是在线的金融服务机构),例如Amazon.com(亚马逊)。对于一些组织而言,定制Web注入是为了窃取除登录凭据之外的其他信息而量身定制的。尝试登录亚马逊的受害者通过Vawtrak的网络注入机制获得以下信用卡表格(图10)。

图 10 Web注入虚假的Amazon.com信用卡表单页面

如果受害者填写此表格,信用卡数据及其亚马逊登录凭证将通过HTTP信标部分中记录的方式发送给僵尸网络运营商。图11显示了传递给恶意软件C2的解密输出。

图 11 解密的Amazon.com数据

结论

至少有一名攻击发起者已经放弃传播Dyreza而转而去传播Vawtrak的新版本,该版本经历了几次显着的变化,似乎试图让Vawtrak的数据传输变得更加隐蔽。这些变化包括:

  • 用于加密密钥生成的新PRNG算法
  • 用于C2的HTTP通信方法和用于混淆的相关加密
  • 配置编码
  • 下载的编码模块
  • 更新模块编码

在Dridex木马消失之后,Vawtrak的作者可能正在争夺木马市场份额。它们是否会成功仍有待观察,但这一最新产品是有着一个复杂的改进,可以更好地定位它们以填补Dridex留下的空白,并成为银行木马领域的新首选工具 —— 因此,从防守的角度来看,需要进一步研究和监测。

附录 A

IDPS(入侵检测与防御系统)检测 :

ET Pro签名:2813059,2813060,2814111,2814112,2814150

资源 :

Office办工软件中的Vawtrak:

26a92873992b5a674ea953131a4effc119dee0bc74da8ffa43f4d8de7df3c169
93941f506feca505510b60d3ccaea8127a6450836642e97bf936b8875777e26b
120d5320a59a86f9b3e0774609a3f0773d76a7d66689525a023bee7f8666f2eb
b6441a6ea25a4ea5cb38f9f186805501379ceb132cfe8907d174e00dab8526ec
6741e88fcd83fe32a8731d0714fba500ea6a3d9735b3829d51aeb7478061d93d
7683afa68bf176249dfc61c5e3bf455dabc9d8b0696d6f8952d72ebb5500a798
78ceb2dbbd39831f84c6fe50742a778cb4610fb02c06072de02e798692279ae4
9337b6c7f6f4f300ebd11813dc6fe5a9646f394541139c96af27f45e1bb7eec2
1eaac96f675fd29b06beed67cb89d5862183659a071062ca9440c46dc69b5a58
0b9b361aaab7baa0ae49c0234d78bcb7cfbd0e529eeda1b126ef08a3b3e0ae89
2f87d666915cc345ae8ac57c5b975163828c2923cdfabc3cf436ebca50346eb0
b5681046f8a571f4fde991e349356e078498f1afb3d2a31a549df65b01ba6de7
eabbcb1af0022dbf1a0b4465e73b6c98458c3c3887b06df13c893a9413556011
606a489df381a8cc3fb43b8ca3b763c61ff91328aa39fa9be167c428d587c1bc
3ffbe191d9326f97db4ffaf6b294c166397bf1c77d28e2ab44d41fca511ce55b
3d1e7e54db786c6aef572d1ef57ad1c26413aacbf2fd91eb700d469c550dd4df

Xbagging / Bartalex 附加代码下载:

hxxp://pomona[.]pl/wp-content/plugins/wp-db-backup-made/5716367236.txt
hxxp://funsockfriday[.]com/wp-content/cache/db/000000/all/cd0/2a7/5716367236.txt
hxxp://pomona[.]pl/wp-content/plugins/wp-db-backup-made/pipi.txt
hxxp://funsockfriday[.]com/wp-content/cache/db/000000/all/cd0/2a7/pipi.txt
hxxp://admtorg[.]ru/wp-includes/js/tinymce/plugins/compat3x/css/5716367236.txt
hxxp://ozgencfutbolokulu[.]com/wp-content/plugins/wp-db-backup-made/5716367236.txt
hxxp://admtorg[.]ru/wp-includes/js/tinymce/plugins/compat3x/css/pipi.txt
hxxp://ozgencfutbolokulu[.]com/wp-content/plugins/wp-db-backup-made/pipi.txt
hxxp://unmaskedman[.]com/wp-content/themes/unmaskedman/assets/sass/layouts/pages/5716367236.txt
hxxp://ssgc[.]co/wp-content/uploads/cache/remote/www-abc-net-au/5716367236.txt
hxxp://unmaskedman[.]com/wp-content/themes/unmaskedman/assets/sass/layouts/pages/pipi.txt
hxxp://ssgc[.]co/wp-content/uploads/cache/remote/www-abc-net-au/pipi.txt
hxxp://shaliniandamar[.]com/wp-content/tfuse_bk_just-married-parent_2015-04-20/theme_config/extensions/slider/designs/round/static/images/5716367236.txt
hxxp://kingmanmobile[.]com/wp-content/plugins/essential-grid/admin/assets/js/mode/5716367236.txt
hxxp://shaliniandamar[.]com/wp-content/tfuse_bk_just-married-parent_2015-04-20/theme_config/extensions/slider/designs/round/static/images/pipi/txt
hxxp://kingmanmobile[.]com/wp-content/plugins/essential-grid/admin/assets/js/mode/pipi.txt
hxxp://dillardvideo[.]com/wp-admin/network/5716367236.txt
hxxp://diputacion[.]ardinova[.]com/wp-admin/images/screenshots/5716367236.txt
hxxp://dillardvideo[.]com/wp-admin/network/pipi.txt
hxxp://diputacion[.]ardinova[.]com/wp-admin/images/screenshots/pipi.txt
hxxp://diy-router[.]com/wp-includes/css/5716367236.txt
hxxp://depositionstream[.]com/scripts/img/5716367236.txt
hxxp://diy-router[.]com/wp-includes/css/pipi.txt
hxxp://depositionstream[.]com/scripts/img/pipi.txt

Pony 下载:

hxxp://freshbox[.]pl/przypomnienie_lss/WEFiles/Client/jQuery/Plugins/s1.exe
hxxp://petalsbythechesapeake[.]com/wp-content/themes/x/framework/scss/site/stacks/integrity/inc/s1.exe
hxxp://longcroftcarehome[.]com/wp-content/themes/Impreza/s1.exe
hxxp://glovestix[.]com/wp-content/plugins/woocommerce-subscriptions/lib/action-scheduler/tests/phpunit/jobstore/s1.exe
hxxp://datanetsolution[.]com/ujksew1/templates/s1.exe
hxxp://dominamarketingporinternet[.]com/wp-admin/user/s1.exe

Pony hashes:

3fbffc12ddeedff72e0d73e48965a9bebabe4a527b1ebc030bbbf756ce3d3740
cbaa784cba00750ae5d46aa242fe7337022317ac3d4e02906c9068140532de00
c1afb96d2a3b436444313fde02d103ff86f9b68d7e2ca3151b64cb7caa3696cd
a2ba57cec0392cbe781ed67f3ed3ec38f9aaa1e6a232536bcddba171889b9ece
6f8901cbe86e0633b75d772ac7b888d9f9fec7f0eff1c5c12adf1b1b20b86bd9
a33f5441949760569756062788077391d5a3611c6cb35a3c97ef76821261d2c8
3de2503dfdc3d108da6676565612ac8bbfc4317026fdcf99543c0de5301f4e82

Pony Gates:

hxxp://dicalburep[.]ru/gate.php
hxxp://toldwassmause[.]ru/gate.php
hxxp://uthatinuse[.]ru/gate.php
hxxp://paughesdidn[.]ru/gate.php
hxxp://rectalrenlo[.]ru/gate.php
hxxp://ritoftwithhers[.]ru/gate.php
hxxp://rindititred[.]ru/gate.php
hxxp://wassfethefa[.]ru/gate.php
hxxp://kerehiled[.]ru/gate.php
hxxp://ropaketsed[.]ru/gate.php
hxxp://utrewserat[.]ru/gate.php
hxxp://joorrolwas[.]ru/gate.php
hxxp://fortthenranled[.]ru/gate.php
hxxp://harlosion[.]ru/gate.php
hxxp://onerophegre[.]ru/gate.php
hxxp://duorgoho[.]ru/gate.php
hxxp://idwigalitt[.]ru/gate.php
hxxp://robbetotso[.]ru/gate.php
hxxp://ledrewharte[.]ru/gate.php
hxxp://dotindintres[.]ru/gate.php
hxxp://tetotgane[.]ru/gate.php

Vawtrak 下载:

hxxp://oka-dentalshop[.]com/system/logs/k1.exe
hxxp://9.rent-shops[.]ru/system/logs/k1.exe
hxxp://hubsportsmed[.]com/system/logs/k1.exe
hxxp://xn--80aa8argd0e[.]xn--80aswg/system/logs/k1.exe
hxxp://www[.]brindesgama[.]com[.]br/system/logs/k1.exe
hxxp://mysocceruniforms[.]com/system/logs/k1.exe
hxxp://worldhealthsupply[.]com/system/logs/k1.exe
hxxp://errors-seeds[.]cz/system/logs/k1.exe
hxxp://bloomgifts4u[.]com/system/logs/k1.exe
hxxp://plan[.]computer-repair[.]org[.]ua/system/logs/k1.exe
hxxp://wildcardzwincanton[.]bricks-and-clicks[.]co[.]uk/system/logs/k1.exe
hxxp://kosikyhana[.]sk/system/logs/k1.exe
hxxp://electro-cablaj[.]ro/system/logs/m1.exe
hxxp://juuze[.]demowebsite[.]net/system/logs/m1.exe
hxxp://wierdensewijnhandel[.]nl/system/logs/m1.exe
hxxp://globalshow[.]com[.]ua/system/logs/m1.exe
hxxp://chackochacko[.]com/system/logs/m1.exe
hxxp://es[.]healthyliverplus[.]com/system/logs/m1.exe
hxxp://boxx96[.]com[.]br/system/logs/m1.exe
hxxp://store[.]lumos[.]my/system/logs/m1.exe
hxxp://pudore[.]com[.]my/system/logs/m1.exe

Vawtrak来自电子邮件的hashes:

a0b3bef0804ca6fb0dd7ab180f6cc38fa1ef4c247d152eaecf9081729cb2b158
afdebec93fd6e133e24809e7b476927f7403a119c428698645abd0e380048f6a
4d47396e1e9c7538c59da8b5574fb8f208154cdfc6590e33b74b7e9feada7584
d3ccde340b36b55dc2db2abc323f728a8c135b8d27ec18f2afc756675008b511
caac605b2d5dec2ec314eb0a9f9273595935791509df27f599402a92beb107b9
5B0E4024C12E21CA5F7552A555DC20499FD7A439A669C963AB5D02227CC1BE9A
2350F4617102C51542682219761E7A3E2CD6EFD7529599DBC579AC6882C0343E

在Angler漏洞利用工具中的Vawtrak Hashes :

75db66d0aaff0d6adc4bedcb652ae041071852fbb550d5c3446502de29246c3d

Vawtrak c2:

hxxp://ninthclub[.]com/Work/new/index.php
hxxp://camelcap[.]com/Work/new/index.php
hxxp://ideagreens[.]com/Work/new/index.php
hxxp://guesstrade[.]com/Work/new/index.php
hxxp://castuning[.]ru/Work/new/index.php
hxxp://mgsmedia[.]ru/Work/new/index.php

Vawtrak模块下载:

hxxp://185.66.10[.]57/module/9f3359a7b12ceea791a4afc21a971152
hxxp://185.66.10[.]57/module/4c06c7a4c2bc6fb51cd998e9bbcf5846
hxxp://185.66.10[.]57/module/221680f17a95443c798c701eff36cbe6

Vawtrak更新下载:

hxxp://185.66.10[.]57/upd/2
hxxp://185.66.10[.]57/upd/3
hxxp://185.66.10[.]57/upd/4
hxxp://185.66.10[.]57/upd/5

Vawtrak更新,解码(分别是):

6ca5edee52615821bd25f6872b86ccb61329d047c9de8817c8fea17679076eda
592a84f6c913e8bdccabf3d4a36deb0844d037ca3aa19029755d2d658c873c04
75ff95ef4cdf7511264df09daa93f44e72acfc5084c4f058071ddd2fc8ad2d09
b7475a729083a11b8e99ae7a293807b6e35fa4c2735789847afdee97eddfb904

分析Vawtrak Dropper:

7e7d0557cc95e3f509f71a72aad9b8ab85d6a681df4a46e1648e928a4be5f4be

分析解压缩的Vawtrak x86 DLL:

1818967235b1e86f9b5e956ab55e1fb47ea44c6579c91e9a48d8bd428f14f165

参考

  1. https://www.proofpoint.com/sites/default/files/documents/bnt_download/pp-macroeconomics-rr.pdf
  2. http://now.avg.com/wp-content/uploads/2015/03/avg_technologies_vawtrak_banking_trojan_report.pdf

以下是在翻译时参考的资料:

  1. 百度百科:S-Box
  2. 漏洞利用套件(Exploit Kit)简史
  3. BlackTDS:新型恶意软件流量分配系统
  4. 深入调查 Angler 漏洞攻击工具(EK)翻译
  5. 深入调查 Angler 漏洞攻击工具(EK)原文
  6. 揭秘:钓鱼攻击工具包Angler Exploit Kit初探
  7. 黄金搭档:安全研究人员发现Flash 0day漏洞与BEDEP病毒存在密切关联

各位大佬,如果有错误的地方,麻烦告知。翻译的不好,请见谅,水平有限,会继续改进的。

原文链接:https://www.proofpoint.com/us/threat-insight/post/In-The-Shadows

原文作者:Darien Huss & Matthew Mesa

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏嵌入式程序猿

你还没学会CAN通信波特率的设置?

记得最早是在15年就给大家推送过关于CAN通信波特率的设置,当时是以NXP的kinetis系列之KV46为例子来给大家介绍的,最近推送了几篇有关CAN通信的文章...

1921
来自专栏木子昭的博客

用Electron创建跨平台应用(第一弹)

2132
来自专栏信安之路

我是如何通关信安之路巅峰挑战赛的

我滴个天啊。。。。。弱密码随意登陆。。。。。不好意思,这题我真是非预期解法,具体的预期解法,之前信安之路文章已发,就不仔细讲述啦!

1716
来自专栏我就是马云飞

RxJava2 实战知识梳理(2) - 计算一段时间内数据的平均值

前言 今天,我们继续跟着 RxJava-Android-Samples 的脚步,一起看一下RxJava2在实战当中的应用,在这个项目中,第二个的例子的描述如下:...

2466
来自专栏java一日一条

Python爬虫爬取美剧网站

一直有爱看美剧的习惯,一方面锻炼一下英语听力,一方面打发一下时间。之前是能在视频网站上面在线看的,可是自从广电总局的限制令之后,进口的美剧英剧等貌似就不在像以前...

1802
来自专栏Cloud Native - 产品级敏捷

微服务架构 (五): 获取微服务数据, 生成报表

2016.8.17, 深圳, Ken Fang 架构师在设计从多个微服务取数据, 而生成报表的架构设计方案时, 往往面临著需在边界上下文 (Bounded Co...

21410
来自专栏张戈的专栏

SEO分享:彻底禁止搜索引擎抓取/收录动态页面或指定路径的方法

最近张戈博客收录出现异常,原因并不明朗。我个人猜测存在如下几个直接原因: 更换主题,折腾时带来过多错误页面或间歇性访问错误; 直接线上折腾 Nginx 缓存和...

4566
来自专栏前端说吧

vue项目实战 — — 那些自己给自己挖的深坑

7206
来自专栏大数据挖掘DT机器学习

数据爬取、清洗到分析,如何徒手研究上海二手房房价

本文由作者:孙培培 原创投稿 声明:本文所公布代码及数据仅作学习用,若别有用途则后果自行承担。 提到上海,不得不提上海的高房价,最近一篇上海各市辖区均价的文章...

3346
来自专栏恰童鞋骚年

操作系统核心原理-3.进程原理(下):进程通信

进程作为人类的发明,自然也免不了脱离人类的习性,也有通信的需求。如果进程之间不进行任何通信,那么进程所能完成的任务就要大打折扣。人类的通信方式无外乎对白(通过...

1032

扫码关注云+社区

领取腾讯云代金券