1、概述

近日,安天CERT监测到黑产组织利用伪造的盗版软件下载网站分发多个恶意程序的窃密攻击行动,目前共监测伪造相关虚假盗版(破解)软件数百个,我国已有近千台设备受其感染。虽然攻击者伪造了大量知名软件破解版本的下载页面,但实际这些下载地址文件均为相同类型的恶意代码,并非真正的破解程序或破解安装包。

本起行动中黑产组织使用了多样化的入侵模块以实现更灵活的攻击,黑产组织通过搭建伪造的盗版软件下载网站,通过多个账号在不同社交平台发布声称是知名软件的破解版本的下载链接,诱导受害者下载并执行恶意程序。该程序执行后会释放模块加载器及7个攻击模块,攻击模块的主要功能包括窃取浏览器Cookie、保存的密码及历史记录,并收集系统信息及网络配置信息,释放广告插件等。

黑产组织利用用户希望免费使用盗版软件的心理,诱使用户无视安全软件的警告,执行恶意程序,导致用户数据被泄露,个人财产遭受损失。用户应提高安全意识,避免从未知来源下载软件,一旦发现被感染,应立即进行全面检查并修改相关账号密码。目前,攻击者仍在频繁更新攻击模块,未来可能会具有更复杂的功能,安天CERT将会持续跟进分析。

2、事件对应的ATT&CK映射图谱

该起攻击行动样本技术特点分布图如下:

图2-1 该事件对应ATT&CK的技术特点映射图谱

具体的技术行为描述如下表所示:

表2-1 该事件对应ATT&CK的技术行为描述表

表2-1.jpg

3、攻击概览

黑产组织将钓鱼网站伪装为盗版软件下载网站,诱导受害者主动下载并执行恶意文件。

图3-1 黑产组织伪装的盗版软件下载页面

恶意文件执行后,会释放多个模块及其加载器,执行流程如下图所示。

图3-2 黑产组织攻击行动整体运行流程

4、防护建议

针对该起窃密样本,安天建议企业采取如下防护措施:

4.1 企业防护

        (1)安装终端防护:安装反病毒软件,建议安装安天智甲终端防御系统;
        (2)加强口令强度:避免使用弱口令,密码设置要符合安全要求,并定期更换。建议使用16位或更长的密码,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令;
        (3)部署入侵检测系统(IDS):部署流量监控类软件或设备,便于对恶意代码的发现与追踪溯源。安天探海威胁检测系统(PTD)以网络流量为检测分析对象,能精准检测出已知海量恶意代码和网络攻击活动,有效发现网络可疑行为、资产和各类未知威胁;
        (4)安天服务:若遭受恶意软件攻击,建议及时隔离被攻击主机,并保护现场等待安全工程师对计算机进行排查;安天7*24小时服务热线:400-840-9234。

4.2 网站传播防护

        (1)尽量不打开来历不明的网页链接;
        (2)在威胁情报分析系统中查询URL是否具有威胁;
        (3)建议使用官方网站下载的正版软件。如无官方网站建议使用可信来源进行下载,下载后使用反病毒软件进行扫描。

经验证,安天智甲终端防御系统(简称IEP)可实现对该窃密木马的查杀与有效防护。

图4-1 安天智甲有效防护

5、样本详细分析

5.1 样本标签

表5-1 样本标签

表5-1.png

5.2 释放攻击模块

样本x86_x64_setup.exe运行后释放7-zip自解压文件setup_installer.exe并执行。执行后释放以下文件:模块加载器setup_install.exe、模块metina_1.exe至metina_7.exe、库文件libcurl.dll、libcurlpp.dll、libgcc_s_dw2-1.dll、libstdc++-6.dll、libwinpthread-1.dll到%temp%目录,各文件的说明如下:

表5-2 释放的文件

表5-2.png

5.3 执行攻击模块

模块释放完成后,根据自解压器配置信息执行释放出的setup_install.exe,该程序为其他几个模块的加载器。

图5-1 释放的文件及自解压配置信息

该加载器执行后,使用libcurlp库连接到estrix[.]xyz/addInstallImpression.php,记录受害者信息。

图5-2 加载器连接指定URL

该加载器最多支持10个模块,但在该样本中,黑产组织仅投放了7个模块。该加载器使用libwinpthread库中的popen函数依次尝试运行各个模块。

图5-3 依次执行模块


将加载器版本、已执行模块的编号、数量等信息回传至http://estrix.xyz/addInstall.php,该样本中出现的加载器版本号为“31MAY1110AM”,意为“5月31日 上午11时10分”。

图5-4 回复的模块执行结果

若没有模块可以执行则发送错误信息到http://estrix.xyz/report_error.php。

图 5-5 回复的错误信息

5.4 模块功能分析

该样本共有7个攻击模块,主要功能包括窃取浏览器Cookie、保存的密码、历史记录,收集系统信息、网络配置信息,释放广告插件等。

5.4.1 模块1 窃取浏览器数据

该样本会释放Newtonsoft.Json.dll、install.dll、install.dat和install.dll.lnk到%temp%目录,并启动快捷方式install.dll.lnk。该快捷方式启动后,会使用rUNdlL32.eXe执行install.dll的shl函数,该函数执行后会加载install.dat中的shellcode到内存执行。

图5-6 加载shellcode

shellcode中使用了较多的反虚拟机、反调试等对抗方法,如下表所示:

表5-3 shellcode采用的对抗方法

表5-3.png


shellcode注入代码到系统svchost.exe进程中执行,利用系统进程执行浏览器窃密代码。

5.4.2 模块2 暂未发现实际功能

该加载器属于Derp Loader家族,执行后会释放CC4F.tmp并在之后删除,该文件实际为从本地系统中复制出来的库文件ntdll.dll,样本通过加载系统库的副本,躲避基于监控系统库调用的行为监测软件。分析该样本时并未发现实际功能。

5.4.3 模块3 窃取机密信息

该加载器属于Derp Loader家族,样本执行后解密并加载shellcode,最终在内存中构建一个PE文件并跳转执行。

第一层shellcode使用异或解密第二层shellcode并执行,第二层shellcode在内存构建一个PE文件。该PE文件使用Base64和RC4解密240余条窃密规则,并且还会收集受害者设备信息。

图5-7 部分窃密规则

从公共网站接口https://api.faceit.com/core/v1/nicknames/pavel23puef/获取C2服务器地址,然后连接该C2(http://162.55.189.141/706)获取指令,根据指令收集受害者信息保存到%Program Data%目录内。

C2控制指令示例如下:

图5-8 C2控制指令

该指令以逗号作为每个子命令的分隔符,其中,有实际功能的字段释义如下图。

图5-9 C2控制指令释义

当额外规则被启用时,样本会根据额外规则搜集更多信息。其额外规则包括:收集后放入的子文件夹、收集文件大小、搜索文件的位置、收集的文件名规则等控制指令。

样本将收集的文件类信息使用zip格式打包压缩,并与计算机名、用户名等文本信息组合为网页表单数据,发送至C2(http://162.55.189.141/)。发送完毕后模块会删除自身。

图 5-10 发送的信息

5.4.4 模块4 窃取账户数据

样本执行后,会通过访问http://ip-api.com/json/获取受害者IP地址及其对应的地理位置等信息。

释放jfiag3g_gg.exe到%temp%目录下并添加参数执行,该文件为工具类软件Chrome Cookies View,用于查看或导出谷歌浏览器的Cookie信息。攻击模块使用此工具的/scookiestxt参数将受害者的谷歌浏览器Cookie信息导出到%temp%的fj4ghga23_fsa.txt文件,然后删除该工具。

样本读取导出的Cookie,利用其中登录信息来获取用户数据,获取的信息如下表所示:

表5-4 获取的用户信息

表5-4.png        

连接到http://uyg5wye.2ihsfa.com/api/fbtime发送请求,从服务器获取时间及序列号,用于标识受害者身份,并将收集的用户信息发送至相同域名。

图5-11 发送数据

5.4.5 模块5 释放广告插件

该样本为广告模块,在未经用户允许情况下安装程序并访问广告链接。

模块运行后会从limesfile.com下载UltraMediaBurner.exe并保存为文件“djhdfu_____________.exe”,该文件执行后安装广告软件UltraMediaBurner。

图5-12 广告软件插件

该模块还会下载f3kmkuwbdpgytdc5.exe并使用随机字符串命名后执行。

图5-13 广告弹窗插件

该程序执行后会在后台运行,持续弹出广告窗口。

图5-14 广告弹窗示例

5.4.6 模块6 窃取IP地址

该模块为.net程序,并使用了混淆以干扰分析,主要功能为浏览器数据窃取。目前,该模块相关服务器已失效,执行后仅会访问iplogger.org,收集受害者的IP等信息。

5.4.7 模块7 窃取浏览器数据、系统信息等

该模块伪装成Browzar浏览器,实为释放7Fdzc9CuQ6cn.exe。释放文件的功能为数据窃取,收集IP地址、设备信息、网络配置、浏览器数据等信息后将其发送至http://ullerolaru.xyz//。

图5-15 伪装成Browzar浏览器

5.5 新的攻击模块

目前,黑产组织仍在对加载器加载的攻击模块进行更新,以下为近期更新的一个新模块。

该模块执行后,从http://ww.hackacademy.me/获取需要下载的模块列表,该链接会跳转至http://212.192.241.136/files/ww/pastebin.txt。

图5-16 网络下发攻击模块列表


获取模块列表后,依次下载并执行列表中的每个模块。

图5-17 执行下载的模块

黑产组织在该模块中,添加了针对Windows 7/8/10的权限提升或绕过机制,且将其加载器命名为“Askar loader”。

图 5-18 权限提升操作部分截图

6、小结

        本次攻击行动中,黑产组织通过钓鱼网站投放多种载荷达到窃取信息的目的,对用户的数据安全造成了极大的威胁。用户应提高安全意识,避免从未知来源下载软件,一旦发现被感染,应立即进行全面检查并修改相关账号密码。目前,黑产组织仍在对其攻击模块进行更新,未来可能会出现更复杂的功能,安天CERT将会持续跟进分析。

7、IoCs

表.jpg

1、概述

近日,安天CERT监测到黑产组织利用伪造的盗版软件下载网站分发多个恶意程序的窃密攻击行动,目前共监测伪造相关虚假盗版(破解)软件数百个,我国已有近千台设备受其感染。虽然攻击者伪造了大量知名软件破解版本的下载页面,但实际这些下载地址文件均为相同类型的恶意代码,并非真正的破解程序或破解安装包。

本起行动中黑产组织使用了多样化的入侵模块以实现更灵活的攻击,黑产组织通过搭建伪造的盗版软件下载网站,通过多个账号在不同社交平台发布声称是知名软件的破解版本的下载链接,诱导受害者下载并执行恶意程序。该程序执行后会释放模块加载器及7个攻击模块,攻击模块的主要功能包括窃取浏览器Cookie、保存的密码及历史记录,并收集系统信息及网络配置信息,释放广告插件等。

黑产组织利用用户希望免费使用盗版软件的心理,诱使用户无视安全软件的警告,执行恶意程序,导致用户数据被泄露,个人财产遭受损失。用户应提高安全意识,避免从未知来源下载软件,一旦发现被感染,应立即进行全面检查并修改相关账号密码。目前,攻击者仍在频繁更新攻击模块,未来可能会具有更复杂的功能,安天CERT将会持续跟进分析。

2、事件对应的ATT&CK映射图谱

该起攻击行动样本技术特点分布图如下:

图2-1 该事件对应ATT&CK的技术特点映射图谱

具体的技术行为描述如下表所示:

表2-1 该事件对应ATT&CK的技术行为描述表

表2-1.jpg

3、攻击概览

黑产组织将钓鱼网站伪装为盗版软件下载网站,诱导受害者主动下载并执行恶意文件。

图3-1 黑产组织伪装的盗版软件下载页面

恶意文件执行后,会释放多个模块及其加载器,执行流程如下图所示。

图3-2 黑产组织攻击行动整体运行流程

4、防护建议

针对该起窃密样本,安天建议企业采取如下防护措施:

4.1 企业防护

        (1)安装终端防护:安装反病毒软件,建议安装安天智甲终端防御系统;
        (2)加强口令强度:避免使用弱口令,密码设置要符合安全要求,并定期更换。建议使用16位或更长的密码,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令;
        (3)部署入侵检测系统(IDS):部署流量监控类软件或设备,便于对恶意代码的发现与追踪溯源。安天探海威胁检测系统(PTD)以网络流量为检测分析对象,能精准检测出已知海量恶意代码和网络攻击活动,有效发现网络可疑行为、资产和各类未知威胁;
        (4)安天服务:若遭受恶意软件攻击,建议及时隔离被攻击主机,并保护现场等待安全工程师对计算机进行排查;安天7*24小时服务热线:400-840-9234。

4.2 网站传播防护

        (1)尽量不打开来历不明的网页链接;
        (2)在威胁情报分析系统中查询URL是否具有威胁;
        (3)建议使用官方网站下载的正版软件。如无官方网站建议使用可信来源进行下载,下载后使用反病毒软件进行扫描。

经验证,安天智甲终端防御系统(简称IEP)可实现对该窃密木马的查杀与有效防护。

图4-1 安天智甲有效防护

5、样本详细分析

5.1 样本标签

表5-1 样本标签

表5-1.png

5.2 释放攻击模块

样本x86_x64_setup.exe运行后释放7-zip自解压文件setup_installer.exe并执行。执行后释放以下文件:模块加载器setup_install.exe、模块metina_1.exe至metina_7.exe、库文件libcurl.dll、libcurlpp.dll、libgcc_s_dw2-1.dll、libstdc++-6.dll、libwinpthread-1.dll到%temp%目录,各文件的说明如下:

表5-2 释放的文件

表5-2.png

5.3 执行攻击模块

模块释放完成后,根据自解压器配置信息执行释放出的setup_install.exe,该程序为其他几个模块的加载器。

图5-1 释放的文件及自解压配置信息

该加载器执行后,使用libcurlp库连接到estrix[.]xyz/addInstallImpression.php,记录受害者信息。

图5-2 加载器连接指定URL

该加载器最多支持10个模块,但在该样本中,黑产组织仅投放了7个模块。该加载器使用libwinpthread库中的popen函数依次尝试运行各个模块。

图5-3 依次执行模块


将加载器版本、已执行模块的编号、数量等信息回传至http://estrix.xyz/addInstall.php,该样本中出现的加载器版本号为“31MAY1110AM”,意为“5月31日 上午11时10分”。

图5-4 回复的模块执行结果

若没有模块可以执行则发送错误信息到http://estrix.xyz/report_error.php。

图 5-5 回复的错误信息

5.4 模块功能分析

该样本共有7个攻击模块,主要功能包括窃取浏览器Cookie、保存的密码、历史记录,收集系统信息、网络配置信息,释放广告插件等。

5.4.1 模块1 窃取浏览器数据

该样本会释放Newtonsoft.Json.dll、install.dll、install.dat和install.dll.lnk到%temp%目录,并启动快捷方式install.dll.lnk。该快捷方式启动后,会使用rUNdlL32.eXe执行install.dll的shl函数,该函数执行后会加载install.dat中的shellcode到内存执行。

图5-6 加载shellcode

shellcode中使用了较多的反虚拟机、反调试等对抗方法,如下表所示:

表5-3 shellcode采用的对抗方法

表5-3.png


shellcode注入代码到系统svchost.exe进程中执行,利用系统进程执行浏览器窃密代码。

5.4.2 模块2 暂未发现实际功能

该加载器属于Derp Loader家族,执行后会释放CC4F.tmp并在之后删除,该文件实际为从本地系统中复制出来的库文件ntdll.dll,样本通过加载系统库的副本,躲避基于监控系统库调用的行为监测软件。分析该样本时并未发现实际功能。

5.4.3 模块3 窃取机密信息

该加载器属于Derp Loader家族,样本执行后解密并加载shellcode,最终在内存中构建一个PE文件并跳转执行。

第一层shellcode使用异或解密第二层shellcode并执行,第二层shellcode在内存构建一个PE文件。该PE文件使用Base64和RC4解密240余条窃密规则,并且还会收集受害者设备信息。

图5-7 部分窃密规则

从公共网站接口https://api.faceit.com/core/v1/nicknames/pavel23puef/获取C2服务器地址,然后连接该C2(http://162.55.189.141/706)获取指令,根据指令收集受害者信息保存到%Program Data%目录内。

C2控制指令示例如下:

图5-8 C2控制指令

该指令以逗号作为每个子命令的分隔符,其中,有实际功能的字段释义如下图。

图5-9 C2控制指令释义

当额外规则被启用时,样本会根据额外规则搜集更多信息。其额外规则包括:收集后放入的子文件夹、收集文件大小、搜索文件的位置、收集的文件名规则等控制指令。

样本将收集的文件类信息使用zip格式打包压缩,并与计算机名、用户名等文本信息组合为网页表单数据,发送至C2(http://162.55.189.141/)。发送完毕后模块会删除自身。

图 5-10 发送的信息

5.4.4 模块4 窃取账户数据

样本执行后,会通过访问http://ip-api.com/json/获取受害者IP地址及其对应的地理位置等信息。

释放jfiag3g_gg.exe到%temp%目录下并添加参数执行,该文件为工具类软件Chrome Cookies View,用于查看或导出谷歌浏览器的Cookie信息。攻击模块使用此工具的/scookiestxt参数将受害者的谷歌浏览器Cookie信息导出到%temp%的fj4ghga23_fsa.txt文件,然后删除该工具。

样本读取导出的Cookie,利用其中登录信息来获取用户数据,获取的信息如下表所示:

表5-4 获取的用户信息

表5-4.png        

连接到http://uyg5wye.2ihsfa.com/api/fbtime发送请求,从服务器获取时间及序列号,用于标识受害者身份,并将收集的用户信息发送至相同域名。

图5-11 发送数据

5.4.5 模块5 释放广告插件

该样本为广告模块,在未经用户允许情况下安装程序并访问广告链接。

模块运行后会从limesfile.com下载UltraMediaBurner.exe并保存为文件“djhdfu_____________.exe”,该文件执行后安装广告软件UltraMediaBurner。

图5-12 广告软件插件

该模块还会下载f3kmkuwbdpgytdc5.exe并使用随机字符串命名后执行。

图5-13 广告弹窗插件

该程序执行后会在后台运行,持续弹出广告窗口。

图5-14 广告弹窗示例

5.4.6 模块6 窃取IP地址

该模块为.net程序,并使用了混淆以干扰分析,主要功能为浏览器数据窃取。目前,该模块相关服务器已失效,执行后仅会访问iplogger.org,收集受害者的IP等信息。

5.4.7 模块7 窃取浏览器数据、系统信息等

该模块伪装成Browzar浏览器,实为释放7Fdzc9CuQ6cn.exe。释放文件的功能为数据窃取,收集IP地址、设备信息、网络配置、浏览器数据等信息后将其发送至http://ullerolaru.xyz//。

图5-15 伪装成Browzar浏览器

5.5 新的攻击模块

目前,黑产组织仍在对加载器加载的攻击模块进行更新,以下为近期更新的一个新模块。

该模块执行后,从http://ww.hackacademy.me/获取需要下载的模块列表,该链接会跳转至http://212.192.241.136/files/ww/pastebin.txt。

图5-16 网络下发攻击模块列表


获取模块列表后,依次下载并执行列表中的每个模块。

图5-17 执行下载的模块

黑产组织在该模块中,添加了针对Windows 7/8/10的权限提升或绕过机制,且将其加载器命名为“Askar loader”。

图 5-18 权限提升操作部分截图

6、小结

        本次攻击行动中,黑产组织通过钓鱼网站投放多种载荷达到窃取信息的目的,对用户的数据安全造成了极大的威胁。用户应提高安全意识,避免从未知来源下载软件,一旦发现被感染,应立即进行全面检查并修改相关账号密码。目前,黑产组织仍在对其攻击模块进行更新,未来可能会出现更复杂的功能,安天CERT将会持续跟进分析。

7、IoCs

表.jpg

4月,一个据称包含5亿个LinkedIn用户个人资料的数据档案在某黑客论坛上出售。

现在,研究人员发现一条包含7亿条LinkedIn用户记录的新帖子出现在了地下论坛。

这两个事件中的数据是否存在关联目前还无法确认,但仅从数据量来看,此次泄露的数据至少相比上次有了将近2亿的”新数据“增量。

一个自称GOD User TomL

4月,一个据称包含5亿个LinkedIn用户个人资料的数据档案在某黑客论坛上出售。

现在,研究人员发现一条包含7亿条LinkedIn用户记录的新帖子出现在了地下论坛。

这两个事件中的数据是否存在关联目前还无法确认,但仅从数据量来看,此次泄露的数据至少相比上次有了将近2亿的”新数据“增量。

一个自称GOD User TomL

世界各地的企业都面临着错综复杂而又代价高昂的帐户接管问题,从银行账户中的资金到零售店会员积分、再到网游中的稀有道具,攻击者想方设法夺取这些高价值的数字资产。

Forter的报告表示,2019年底账户接管欺诈占总欺诈类损失的16%,而现在,这个数值还在提升。

与此同时,随着

世界各地的企业都面临着错综复杂而又代价高昂的帐户接管问题,从银行账户中的资金到零售店会员积分、再到网游中的稀有道具,攻击者想方设法夺取这些高价值的数字资产。

Forter的报告表示,2019年底账户接管欺诈占总欺诈类损失的16%,而现在,这个数值还在提升。

与此同时,随着

0x00 前言

VMware vCenter Server是VMware虚拟化管理平台,广泛的应用于企业私有云内网中。站在渗透测试工具开发的角度,我们需要通过命令行实现vCenter Server同虚拟机的交互。

本系列文章将要比较多种不同的API,介绍实现细节,开源代码,实现以下功能:

· 读取虚拟机的配置

· 查看虚拟机文件

· 删除虚拟机文件

· 向虚拟机上传文件

· 从虚拟机下载文件

· 在虚拟机中执行命令

0x01 简介

本文将要介绍以下内容:

· 基础知识

· vSphere Automation API开发细节

· 开源代码vSphereAutomationAPI_Manage.py

0x02 基础知识

1.VMware vSphere

VMware vSphere是整个VMware套件的商业名称,而不是特定的产品或软件。

VMware vSphere的两个核心组件是ESXi服务器和vCenter Server。

2.ESXi

ESXi是hypervsior,可以在其中创建和运行虚拟机和虚拟设备。

3.vCenter Server

vCenter Server是用于管理网络中连接的多个ESXi主机和池主机资源的服务。

vCenter Server可安装至Linux系统中,通过安装vCenter Server Appliance(VCSA)实现。

vCenter Server也可安装至Windows系统中,通过安装Vmware Integrated Management(VIM)实现。

0x03 vSphere Automation API开发细节

官方文档:

https://developer.vmware.com/docs/vsphere-automation/latest/

为了能够通过命令行实现vCenter Server同虚拟机的交互,我们需要使用vSphere Automation API中的vSphere REST API部分。

VMware在vSphere 6.0版本中引入了REST API,从vSphere7.0U2开始,VMware宣布弃用旧的REST API,使用新的REST API。

参考资料:

https://core.vmware.com/blog/vsphere-7-update-2-rest-api-modernization

经过对比,发现旧的REST API(低于vSphere7.0U2)不支持以下操作:

· 查看虚拟机文件

· 删除虚拟机文件

· 向虚拟机上传文件

· 从虚拟机下载文件

· 在虚拟机中执行命令

而新的REST API能够满足需求,所以在开发上我们需要先对vCenter的版本进行判断,如果满足要求(不低于vSphere7.0U2),那么才使用vSphere Automation API。

1.已有的开源代码

https://github.com/vmware/vsphere-automation-sdk-python/

vSphere Automation Python SDK示例。

在/samples/vsphere/vcenter/vm文件夹下有可供参考的实现代码。

其中,samples/vsphere/vcenter/vm/guest/guest_ops.py实现了在虚拟机中执行命令。

测试环境1:192.168.1.1(vCenter 6.7.0)

Windows环境加载该脚本的示例命令如下:

微信截图_20210616140835.png

脚本执行失败,提示如下:

微信截图_20210616140911.png

测试环境2:192.168.1.2(vCenter 7.0.2)

Windows环境加载该脚本的示例命令如下:

微信截图_20210616140945.png

脚本执行成功。

经过更多的测试后,印证结论:vSphere Automation API在低版本(低于vSphere7.0U2)无法实现以下操作:

· 查看虚拟机文件

· 删除虚拟机文件

· 向虚拟机上传文件

· 从虚拟机下载文件

· 在虚拟机中执行命令

2.参考文档用原始数据包实现

参考文档:

https://developer.vmware.com/docs/vsphere-automation/latest/vcenter/

在实现上,首先需要发送用户名和明文口令获得Session,使用Session作为登录凭据,进行后续的操作。

具体实现细节如下:

(1)判断vCenter的版本

获得粗略版本的方法:

浏览器访问: https://< server_hostname >/sdk/vimServiceVersions.xml

返回结果为xml数据,无法获得具体的版本。

获得详细号版本的方法:

访问:https://< server_hostname>/sdk/

正文内容如下:

image.png

注:

vSphere 7.0U2对应对build属性为17630552

(2)Create_Session

添加Header:

微信截图_20210616141106.png

其中,dXNlcm5hbWU6cGFzc3dvcmQ为username:password作Base64编码后的结果。

返回结果格式:响应码201,格式为application/json类型。

(3)List_Guest_Processes

请求正文需要json格式的数据作为凭据,用来登录虚拟机。

格式示例:

微信截图_20210616141132.png

(4)vCenter同虚拟机传输文件

参考文档:

https://developer.vmware.com/docs/vsphere-automation/latest/vcenter/api/vcenter/vm/vm/guest/filesystemactioncreate/post/

官方文档描述的不够详细

这里给出我经过测试得出的结论:

1.将文件从本地发送至虚拟机,即向虚拟机发送该文件,先调用Create_Temporary_Guest_Filesystem_Files创建指定文件对应的uri

发送的内容格式如下;

微信截图_20210616141204.png

不带有size属性。

发送成功后返回该文件对应的uri,使用PUT方法访问uri,data字段为发送的文件内容。

2.将该文件从虚拟机发送至本地,即读取虚拟机中的文件,先调用Create_Temporary_Guest_Filesystem_Files创建指定文件对应的uri。

发送的内容格式如下;

微信截图_20210616141230.png

必须带有size属性。

发送成功后返回该文件对应的uri,使用GET方法访问uri,在获取文件内容时需要区分文本格式和二进制格式,文本格式可以使用r.text读取,二进制格式可以使用r.content读取。

0x04 开源代码

完整的开源代码已上传至github,地址如下:

https://github.com/3gstudent/Homework-of-Python/blob/master/vSphereAutomationAPI_Manage.py

代码适用版本:vSphere 7.0U1+

支持以下功能:

· 读取虚拟机的配置

· 查看虚拟机文件

· 删除虚拟机文件

· 向虚拟机上传文件

· 从虚拟机下载文件

· 在虚拟机中执行命令

具体命令如下:

· ListVM

· GetVMConfig

· ListHost

· ListVMProcess

· CreateVMProcess

· KillVMProcess

· ListVMFolder

· DeleteVMFile

· DownloadFileFromVM

· UploadFileToVM

其中,对于虚拟机的操作,支持Windows和Linux系统

0x05 小结

本文介绍了通过vSphere Automation API实现vCenter Server同虚拟机交互的方法,开源实现代码vSphereAutomationAPI_Manage.py,记录开发细节。

对于vSphere Automation API,有些操作不支持低版本的vCenter(<vSphere7.0U2),导致通用性不够,所以下篇文章将要介绍更为通用的实现方法。


0x00 前言

VMware vCenter Server是VMware虚拟化管理平台,广泛的应用于企业私有云内网中。站在渗透测试工具开发的角度,我们需要通过命令行实现vCenter Server同虚拟机的交互。

本系列文章将要比较多种不同的API,介绍实现细节,开源代码,实现以下功能:

· 读取虚拟机的配置

· 查看虚拟机文件

· 删除虚拟机文件

· 向虚拟机上传文件

· 从虚拟机下载文件

· 在虚拟机中执行命令

0x01 简介

本文将要介绍以下内容:

· 基础知识

· vSphere Automation API开发细节

· 开源代码vSphereAutomationAPI_Manage.py

0x02 基础知识

1.VMware vSphere

VMware vSphere是整个VMware套件的商业名称,而不是特定的产品或软件。

VMware vSphere的两个核心组件是ESXi服务器和vCenter Server。

2.ESXi

ESXi是hypervsior,可以在其中创建和运行虚拟机和虚拟设备。

3.vCenter Server

vCenter Server是用于管理网络中连接的多个ESXi主机和池主机资源的服务。

vCenter Server可安装至Linux系统中,通过安装vCenter Server Appliance(VCSA)实现。

vCenter Server也可安装至Windows系统中,通过安装Vmware Integrated Management(VIM)实现。

0x03 vSphere Automation API开发细节

官方文档:

https://developer.vmware.com/docs/vsphere-automation/latest/

为了能够通过命令行实现vCenter Server同虚拟机的交互,我们需要使用vSphere Automation API中的vSphere REST API部分。

VMware在vSphere 6.0版本中引入了REST API,从vSphere7.0U2开始,VMware宣布弃用旧的REST API,使用新的REST API。

参考资料:

https://core.vmware.com/blog/vsphere-7-update-2-rest-api-modernization

经过对比,发现旧的REST API(低于vSphere7.0U2)不支持以下操作:

· 查看虚拟机文件

· 删除虚拟机文件

· 向虚拟机上传文件

· 从虚拟机下载文件

· 在虚拟机中执行命令

而新的REST API能够满足需求,所以在开发上我们需要先对vCenter的版本进行判断,如果满足要求(不低于vSphere7.0U2),那么才使用vSphere Automation API。

1.已有的开源代码

https://github.com/vmware/vsphere-automation-sdk-python/

vSphere Automation Python SDK示例。

在/samples/vsphere/vcenter/vm文件夹下有可供参考的实现代码。

其中,samples/vsphere/vcenter/vm/guest/guest_ops.py实现了在虚拟机中执行命令。

测试环境1:192.168.1.1(vCenter 6.7.0)

Windows环境加载该脚本的示例命令如下:

微信截图_20210616140835.png

脚本执行失败,提示如下:

微信截图_20210616140911.png

测试环境2:192.168.1.2(vCenter 7.0.2)

Windows环境加载该脚本的示例命令如下:

微信截图_20210616140945.png

脚本执行成功。

经过更多的测试后,印证结论:vSphere Automation API在低版本(低于vSphere7.0U2)无法实现以下操作:

· 查看虚拟机文件

· 删除虚拟机文件

· 向虚拟机上传文件

· 从虚拟机下载文件

· 在虚拟机中执行命令

2.参考文档用原始数据包实现

参考文档:

https://developer.vmware.com/docs/vsphere-automation/latest/vcenter/

在实现上,首先需要发送用户名和明文口令获得Session,使用Session作为登录凭据,进行后续的操作。

具体实现细节如下:

(1)判断vCenter的版本

获得粗略版本的方法:

浏览器访问: https://< server_hostname >/sdk/vimServiceVersions.xml

返回结果为xml数据,无法获得具体的版本。

获得详细号版本的方法:

访问:https://< server_hostname>/sdk/

正文内容如下:

image.png

注:

vSphere 7.0U2对应对build属性为17630552

(2)Create_Session

添加Header:

微信截图_20210616141106.png

其中,dXNlcm5hbWU6cGFzc3dvcmQ为username:password作Base64编码后的结果。

返回结果格式:响应码201,格式为application/json类型。

(3)List_Guest_Processes

请求正文需要json格式的数据作为凭据,用来登录虚拟机。

格式示例:

微信截图_20210616141132.png

(4)vCenter同虚拟机传输文件

参考文档:

https://developer.vmware.com/docs/vsphere-automation/latest/vcenter/api/vcenter/vm/vm/guest/filesystemactioncreate/post/

官方文档描述的不够详细

这里给出我经过测试得出的结论:

1.将文件从本地发送至虚拟机,即向虚拟机发送该文件,先调用Create_Temporary_Guest_Filesystem_Files创建指定文件对应的uri

发送的内容格式如下;

微信截图_20210616141204.png

不带有size属性。

发送成功后返回该文件对应的uri,使用PUT方法访问uri,data字段为发送的文件内容。

2.将该文件从虚拟机发送至本地,即读取虚拟机中的文件,先调用Create_Temporary_Guest_Filesystem_Files创建指定文件对应的uri。

发送的内容格式如下;

微信截图_20210616141230.png

必须带有size属性。

发送成功后返回该文件对应的uri,使用GET方法访问uri,在获取文件内容时需要区分文本格式和二进制格式,文本格式可以使用r.text读取,二进制格式可以使用r.content读取。

0x04 开源代码

完整的开源代码已上传至github,地址如下:

https://github.com/3gstudent/Homework-of-Python/blob/master/vSphereAutomationAPI_Manage.py

代码适用版本:vSphere 7.0U1+

支持以下功能:

· 读取虚拟机的配置

· 查看虚拟机文件

· 删除虚拟机文件

· 向虚拟机上传文件

· 从虚拟机下载文件

· 在虚拟机中执行命令

具体命令如下:

· ListVM

· GetVMConfig

· ListHost

· ListVMProcess

· CreateVMProcess

· KillVMProcess

· ListVMFolder

· DeleteVMFile

· DownloadFileFromVM

· UploadFileToVM

其中,对于虚拟机的操作,支持Windows和Linux系统

0x05 小结

本文介绍了通过vSphere Automation API实现vCenter Server同虚拟机交互的方法,开源实现代码vSphereAutomationAPI_Manage.py,记录开发细节。

对于vSphere Automation API,有些操作不支持低版本的vCenter(<vSphere7.0U2),导致通用性不够,所以下篇文章将要介绍更为通用的实现方法。


Edge浏览器bug可引发UXSS攻击,窃取网站私密信息。

image.png

上周,微软发布了Edge浏览器的更新修复了2个安全漏洞,其中有一个安全绕过漏洞,可以被利用来对任意网站进行注入和执行任意代码。

其中CVE-2021-34506漏洞CVSS评分5.4分,属于UXSS安全问题,在通过Microsoft Translator使用浏览器的内置功能翻译web页面时会自动触发该漏洞。

CyberXplore研究人员分析称,与常见的XSS漏洞不同,UXSS是利用浏览器或浏览器扩展中的客户端安全漏洞来生成XSS条件和执行恶意代码的一类攻击。

下面是受漏洞影响的startPageTranslation函数代码:

image.png

研究人员制作了一个PoC文件,代码如下:

image.png

漏洞复现步骤如下:

1、下载PoC文件(POC.html)或复制PoC文件中的内容并本地保存; file from 2、在PoC文件所在的文件夹启动Python服务器,使用的命令如下:

python3 -m http.server 80

3、打开Microsoft Edge浏览器(v 91.0.864.48版本),访问http://localhost/POC.html

4、翻译器将在显示页面是另外一种语言,是否需要翻译?点击翻译按钮

5、页面弹出alert(1)

远程漏洞利用需要满足2个条件:

1、远程利用的攻击者需要使用Edge浏览器;

2、Edge浏览器需要开启自动翻译功能。

PoC视频参见:https://youtu.be/XfTN7fPtB1s

研究人员利用该漏洞在谷歌、Facebook、Youtube等网站上进行了测试:

Facebook

研究人员创建了一个含有外国语言名字和xss payload的介绍,并发送给受害者一个好友请求(受害者需要使用有漏洞的Edge浏览器),一旦受害者查看简介,就会因为自动翻译而出现XSS弹窗。

Facebook的PoC视频参见:https://youtu.be/tTEethBKkRc

Youtube

研究人员创建了一个youotube视频,输入含有xss payload的评论,任何不同语言的用户查看该网页被使用自动翻译功能,就会被攻击。Youtube的PoC视频参见:https://youtu.be/2ogwUdszDsY

Windows应用商店

研究人员发现Windows商店中基于web的应用也会受到该漏洞的影响,因为Windows应用商店中也有使用相同Microsoft Edge Translator的应用,会触发UXSS攻击。Windows应用商店的PoC视频参见:https://youtu.be/DoMfQD_ZiLE

更多技术细节参见:https://cyberxplore.medium.com/how-we-are-able-to-hack-any-company-by-sending-message-including-facebook-google-microsoft-b7773626e447

Edge浏览器bug可引发UXSS攻击,窃取网站私密信息。

image.png

上周,微软发布了Edge浏览器的更新修复了2个安全漏洞,其中有一个安全绕过漏洞,可以被利用来对任意网站进行注入和执行任意代码。

其中CVE-2021-34506漏洞CVSS评分5.4分,属于UXSS安全问题,在通过Microsoft Translator使用浏览器的内置功能翻译web页面时会自动触发该漏洞。

CyberXplore研究人员分析称,与常见的XSS漏洞不同,UXSS是利用浏览器或浏览器扩展中的客户端安全漏洞来生成XSS条件和执行恶意代码的一类攻击。

下面是受漏洞影响的startPageTranslation函数代码:

image.png

研究人员制作了一个PoC文件,代码如下:

image.png

漏洞复现步骤如下:

1、下载PoC文件(POC.html)或复制PoC文件中的内容并本地保存; file from 2、在PoC文件所在的文件夹启动Python服务器,使用的命令如下:

python3 -m http.server 80

3、打开Microsoft Edge浏览器(v 91.0.864.48版本),访问http://localhost/POC.html

4、翻译器将在显示页面是另外一种语言,是否需要翻译?点击翻译按钮

5、页面弹出alert(1)

远程漏洞利用需要满足2个条件:

1、远程利用的攻击者需要使用Edge浏览器;

2、Edge浏览器需要开启自动翻译功能。

PoC视频参见:https://youtu.be/XfTN7fPtB1s

研究人员利用该漏洞在谷歌、Facebook、Youtube等网站上进行了测试:

Facebook

研究人员创建了一个含有外国语言名字和xss payload的介绍,并发送给受害者一个好友请求(受害者需要使用有漏洞的Edge浏览器),一旦受害者查看简介,就会因为自动翻译而出现XSS弹窗。

Facebook的PoC视频参见:https://youtu.be/tTEethBKkRc

Youtube

研究人员创建了一个youotube视频,输入含有xss payload的评论,任何不同语言的用户查看该网页被使用自动翻译功能,就会被攻击。Youtube的PoC视频参见:https://youtu.be/2ogwUdszDsY

Windows应用商店

研究人员发现Windows商店中基于web的应用也会受到该漏洞的影响,因为Windows应用商店中也有使用相同Microsoft Edge Translator的应用,会触发UXSS攻击。Windows应用商店的PoC视频参见:https://youtu.be/DoMfQD_ZiLE

更多技术细节参见:https://cyberxplore.medium.com/how-we-are-able-to-hack-any-company-by-sending-message-including-facebook-google-microsoft-b7773626e447