近日,Google
TAG安全部门披露了一起利用推特等社交媒体针对不同公司和组织从事漏洞研究和开发的安全研究人员的社会工程学攻击事件,经绿盟科技伏影实验室分析,确认此次事件为Lazarus组织针对 *** 安全行业的一次针对性 *** 攻击,并猜测其可能有更深层次的攻击意图和行动。绿盟科技攻击对抗技术研究团队M01N
Team也针对此次事件展开了全面的分析研判,认定本次事件是一个典型的“明修栈道、暗渡陈仓”社会工程学攻击事件,也将在本文中揭秘该事件中Lazarus组织使用的一种新型间接命令执行攻击技术。
Lazarus组织是一支来自朝鲜半岛的APT组织。该组织自2007年就开始活跃,长期对韩国、中国、美国、印度等国家进行攻击活动。据国外安全公司的调查显示,Lazarus组织与2014年索尼影业遭黑客攻击事件,2016
年孟加拉国银行数据泄露事件,2017年美国国防承包商、美国能源部门及英国、韩国等比特币交易所被攻击等事件有关。2017年席卷全球的最臭名昭著的安全事件“Wannacry”勒索病毒也被怀疑是该组织所为。
绿盟科技
https://mp.weixin.qq.com/s/7RwH5_h1rGn3MxGIngal6A
具体的攻击手法是”养号“,然后诱骗安全研究人员下载他们带有恶意代码的POC,在编译的时候会触发的恶意命令和代码。
Lazarus组织的攻击者伪装成安全研究人员建立了一个研究博客和多个Twitter账号,这些伪装账号大都打上了Web开发、浏览器漏洞挖掘、Windows内核安全甚至CTF选手等一些身份标签,并会发布一些安全研究动态,同时相互评论转发来扩大影响力。
另外他们的博客(https://blog.br0vvnn[.]
io)发表了多个已公开披露的漏洞分析文章,还包含一些不知情安全研究人员的来访评论,以图在安全研究人员中建立更高的信任度。
在建立了一定的研究影响力后,攻击者会主动寻找目标安全研究人员进行交流,并表达希望在漏洞研究方面进行更深入合作和交流的想法。此后攻击者便会向安全研究人员分享了一个Visual
Studio的项目工程文件,该项目文件明为一些漏洞的POC代码,暗则是包含了等待目标研究员编译执行来触发的恶意命令和代码。
绿盟科技
https://mp.weixin.qq.com/s/7RwH5_h1rGn3MxGIngal6A
从绿盟科技的文章中我们可以知道事件的背景和一些信息。
我们从公开的报告中可以知道Lazarus组织的利用编译事件(Build Events)的攻击 *** ,接下来我们一起复现一下这个手法吧。
我们先来查看一下在微软文档中关于编译事件(Build Events)的资料
By specifying a custom build event, you can automatically run commands
before a build starts or after it finishes. For example, you can run a
.bat file before a build starts or copy new files to a folder after
the build is complete. Build events run only if the build successfully
reaches those points in the build process.
微软文档中说“通过指定自定义构建事件,我们可以在构建开始之前或构建完成之后自动运行命令,仅当构建成功达到构建过程中的那些点时,构建事件才会运行”,例如:
可以在构建开始之前运行.bat文件,或者在构建完成后将新文件复制到文件夹中。
这个不难理解。
我们继续看微软文档中的资料可以知道Build Events具有3种事件,分别为:
1.Pre-build event command line 预先生成事件;在编译前执行自定义任务
2.Post-build event command line 预链接事件;在链接前执行自定义任务
3.Run the post-build event 后期生成事件;在编译完成后执行自定义任务
其中在微软文档中也给出了对应的XML 元素,有兴趣的同学可以自行看看
在Lazarus组织中是利用Visual Studio进行利用的,那么我们来复现一下利用手法:
1.打开Visual Studio
2.新建一个项目
3.进入项目的属性
就可以看到了,正如上面看到的具有3种事件
我们来利用一下之一种事件看看
之一种可以直接执行命令行也可以执行宏代码:
这里简单复现一下,就不讨论宏代码的一个情况了。
在cobalt strike种直接生成powershell的恶意脚本。
把命令放在visual studio中
应用然后编译
可以看到直接上线。
然后是第2种,电脑比较卡,所以我就不上线cobalt strike了,我们使用弹计算器来证明可利用吧
编译
同理,第3种也是
我们也可以在项目文件中直接添加我们需要执行的命令
打开项目目录可以看到
其中以.vcxproj结尾的文件就是我们需要利用的文件。
这里使用notepad++打开,这个文件其实也是一个xml文件。
ok 我们直接查找PreBuildEvent,PreLinkEvent,PostBuildEvent这3个xml元素
这里以PreBuildEvent进行利用
可以看到在PreBuildEvent 具有参数,这里就是可以执行命令的地方,
保存一下然后导进vs中进行编译
这里再分享一个手法吧 我看到网上的分析文章都是说PreBuildEvent,PreLinkEvent,PostBuildEvent这三个利用点,都是其实还有一个的地方可以给我们利用
我们可以回看到.vcxproj文件,然后全局查找一下Command可以发现具有4个Command参数,
除了3个我们说过的之外,还有一个在中
添加我们需要执行的命令
保存然后编译一下,但是发现并不能成功利用,通过查看微软文档知道我们还需要构建一个输出叁数。
然后编译,弹出计算机
图形化的利用在
理论上所有的IDE都能这样利用,我们可以看一下在Microsoft Visual中的利用过程吧
打开vc然后新建一个工程,在上面的工具栏找到工程然后是设置
在命令中填入我们需要执行的命令
我这里就弹计算机吧 然后编译成exe
在编译的时就会执行我们的命令。
当然这个也有3种:
1.自定义构建
2.pre-link步骤
3.Post-bulid步骤
在自定义步骤中的参数有2个
分别是命令和输出
命令可以放我们的shellcode 输出的话都可以的
同样也是可以执行我们的命令的
同理 post-bulid也是可以执行命令的
在后面翻资料的时候发现了一个有意思的文章
在前面的Visual Studio中我复现了这个APT的手法,我们可以再一次看微软文档发现在Visual Studio存在一个引擎--Microsoft Build Engine
The Microsoft Build Engine is a platform for building applications.
This engine, which is also known as MSBuild, provides an XML schema
for a project file that controls how the build platform processes and
builds software. Visual Studio uses MSBuild, but MSBuild doesn't
depend on Visual Studio. By invoking m *** uild.exe on your project or
solution file, you can orchestrate and build products in environments
where Visual Studio isn't installed.
Visual Studio uses MSBuild to load and build managed projects. The
project files in Visual Studio (.csproj, .vbproj, .vcxproj, and
others) contain MSBuild XML code that executes when you build a
project by using the IDE. Visual Studio projects import all the
necessary settings and build processes to do typical development work,
but you can extend or modify them from within Visual Studio or by
using an XML editor.
不难理解,MSBuild可以在未安装Visual Studio的环境中编排和构建产品(可以简单理解为执行可以代码),而且Visual Studio使用MSBuild加载和生成托管项目。例如:Visual Studio中的项目文件.csproj,.vbproj,.vcxproj等,
在.NET Framework 4.0中支持了一项新功能”Inline Tasks”,被包含在元素UsingTask中,可用来在xml文件中执行c#代码
这里是不是看着很眼熟?哈哈哈
没错,前面我们在复现这个APT组织的手法中知道了我们那个利用点就是.vcxproj文件,那么我们可以脱离VS来进行利用。
我们去微软中下载m *** uild.exe 当然在.net中我们也能查找到
利用起来也不难 在MSF中可以直接生成利用代码
我们使用Microsoft
VisualStudio创建以MSBuild格式保存的、带有*.csproj后缀的C#代码,以便可以使用MSBuild平台将其编译为可执行程序。借助于一个恶意的构建的过程,我们可以获得受害者计算机的反向shell。接下来,我们要生成file.csproj文件,为此,首先需要通过msfvenom生成一个基于C#的shellcode。之后,将该shellcode放入我们的file.csproj中,具体如下所示。
具体的利用手法前辈们总结好了
这里补充一些利用手法吧
执行powershell命令
这里参考3gstudent和Casey的手法,但是Casey给出的POC挂了,所以我们可以使用3gstudent的POC来进行利用
未完。。。。。。。。
在我们的生活当中,无论是支付宝还是微信,都是属于手机里面的必备软件。以前的时候,或许我们没有办法去感受到科技的进步,但是现在随处而来的移动支付,已经让我们切实感觉到互联网真的是在渗透我们的生活。那么这...
蚂蚁庄园小课堂10月4日今日支付宝答案!相信很多玩家都不知道这个答案,答对就可以领取到180g小鸡饲料。以上是支付宝蚂蚁庄园小课堂2020年10月4日的题目,那么你们知道答案是什么吗? 蚂蚁庄园10...
“秦皇岛伴游女-【周访琴】”北京高端伴游女学妹资料信息文章版权声明: 本篇由 高端模特经纪人 原创,转载请保留链接,深圳商务微信号:444北京商务招聘高端模特全国可约“南京商务出台费用价格:内容,由...
有数据信息表明,大约98%的网址以前遭到黑客攻击。换句话说,基本上全部的网址,都被黑客送过“溫暖”,他们时时刻刻都是在关心着大家的网址,有时她们对网址的关心水平,乃至超出了大家。 在这儿,给众多的黑...
哪儿能寻找网络黑客的联系方式-内网渗透运用 跨vlan渗入的一种构思 0x00 序言 伴随着日渐发展趋势的网络科技,互联网路线也变的愈来愈繁杂。网站渗透测试工作人员在web中根据引入,提...
在刚刚长牙齿的时候,人们的牙齿都是非常白,非常好看的,但是由于到了后天,每天都需要摄取各种各样的食物,在这些食物当中含有的黄色素,将牙齿沾染得越来越黄,看起来非常的不好看,有很多人都对于自己的一口黄牙...