初探伪装在Office宏里的反弹Shell

0x0 背景

通常的钓鱼邮件场景中office的安全问题一直都受到关注,恶意宏文档制作简单,兼容性强,并且攻击成本较小,所以整体占比较大。但是使用恶意宏进行攻击,往往需要用户进行交互,攻击的隐蔽性不强,结合Powershell的攻击方式二者结合还是可以搞一点大事情的。

前段时间在接触到一些基于鱼叉邮件攻击的案例时针对里面的银行木马与攻击方式进行了简单的分析,对powershell与office的宏巧妙结合的方式产生了一些兴趣。

0x1 主要思路

宏病毒是一种寄存在文档或模板的宏中的计算机病毒。一旦打开这样的文档,其中的宏就会被执行,于是宏病毒就会被激活,转移到计算机上,并驻留在Normal模板上。

我们通过工具生成一个有powershelldownloader功能的一个excel,victim服务器打开此excel之后会从CC服务器下载并执行一个基于powershell的payload到本地的计算机后就可以通过CC服务器当中的Metasploit操控Victim服务器。

0x2 攻击方法

首先在kali下面生成一个powershell的后门,设置好相关的参数。

本地开启http的服务器,kali2集成好了apache的服务,将生成好的后门改名为payload.txt后门复制到网站的根目录。

通过浏览器访问,确认可以访问成功。

之后本地设置好Metasploit的参数,开始监听,这里的payload主要reverse_https可以避开一些基于流量检测的安全设备。

在github下载一个powershell工具用于生成excel后门,这里使用了Generate-Macro一个评价很不错的小工具。

连接如下:https://github.com/enigma0x3/Generate-Macro

本地生成excel的后门excel文档设置好相关的参数选项,比较温馨的是会自动的将宏与文档打包到一起,目前只支持http协议和https协议,在选择后门的自启动方式这里还是有很多选择,设置计划任务也是很多后门常用的手段之一。

victim端打开此文档后启用宏之后,会执行相关的宏代码连接到Metasploit的客户端,使用shell命令可以可以获得一个命令行对应的windows系统此时应该会拉起一个cmd.exe

0x3 进程拉起顺序

在victim端口查看相关进程可以发现依次的启动顺序为:svchost.exe-> WmiPrvSE.exe -> powershell.exe ->powershell.exe ->cmd.exe

待用户执行了宏代码之后,会调用windows系统的当中的wmi拉起powershell进行下载并连接远程CC端。

关键代码如下:

可以在第一个powershell.exe的启动参数找到痕迹

第一个powershell.exe之后拉起第二个powershell.exe执行保存在payload.txt里面的恶意代码,会设置自启动。

之后在执行了shell命令执行,第二个powershell.exe会主动拉起一个cmd.exe 进行远程命令执行。

0x4 其他行为

可以在注册表当中找到已经设置好的自启动项目,主要内容保存在C盘C:\Users\Public\config.vbs目录下并设置隐藏属性。

生成开机启动的恶意文件代码如下:

添加到注册表的恶意代码如下:

通过抓包分析获取到的流量数据基本都是是乱码,流量分析起来有一定的困难。

0x5 总结

1.如果投递特定主题及内容的电子邮件来进行攻击,安全意识薄弱的用户很容易中招。攻击者从远程获取恶意软件或者攻击负载powershell脚本经过混淆之后进行base64编码,对于检测这些攻击行为无论是静态扫描还是动态检测都造成了一定的难度。

2.office本身也有CVE2017-0262、CVE–2017–8759、CVE-2017-0199、CVE-2017-11882等多个安全问题,攻击手法也有了较多的差异性,作为普通用户在日常的工作生活当中还是应该提升自身的安全意识,安装杀毒软件支持国产office,对于陌生的邮件一定要慎点。

*本文原创作者:si1ence,本文属FreeBuf原创奖励计划,未经许可禁止转载

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-11-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏容器云生态

监控利器之nagios原理详解

第一节 Nagios简介 nagios是系统管理人员和运维监控人员必须的工具之一,利用nagios可以监控本地或者远程主机资源, 如磁盘空间,系统负载等情况,...

3707
来自专栏PhpZendo

Jerry Qu 博客 Nginx 配置之性能篇

在介绍完我博客(imququ.com)的 Nginx 配置中与安全有关的一些配置后,这篇文章继续介绍与性能有关的一些配置。WEB 性能优化是一个系统工程,涵盖很...

1072
来自专栏技术博文

34款Firefox渗透测试插件

工欲善必先利其器,firefox一直是各位渗透师必备的利器,小编这里推荐34款firefox渗透测试辅助插件,其中包含渗透测试、信息收集、代理、加密解密等功能。...

40213
来自专栏游戏杂谈

Cocos2d-x V2.x版本对64bit的支持

我所使用的是cocos2d-x V2.0版本,而且源码有部分代码是修改过的。好在cocos2d-x官方已经放出了一个支持64位的2.2.6版本,可以做为参考。

1342
来自专栏贾鹏辉的技术专栏@CrazyCodeBoy

React Native发布APP之签名打包APK

React Native发布APP之签名打包APK ---- 用React Native开发好APP之后,如何将APP发布以供用户使用呢?一款APP的发布流程...

2515
来自专栏北京马哥教育

解决Redis 延迟故障

症状 前一段时间redis客户端在使用php connect 连接redis 的经常报一个redis server went away 等信息。 排查 首先想到...

3298
来自专栏Java架构沉思录

Linux常用Shell脚本知多少

在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运...

1161
来自专栏.Net移动开发

关于发布IOS的方法(本人亲身经历折腾很久终于成功)

前情提要:这位.NET程序员兄弟使用Smobiler开发了一个APP,尽管Smobiler云平台已经最大限度的简化了iOS应用的打包操作,但仍绕不开苹果公司强制...

1431
来自专栏Python专栏

用python来更改小伙伴的windows开机密码,不给10块不给开机

2646
来自专栏皮振伟的专栏

[linux][memory]进程的最大内存使用量的讨论

前言: 一个进程最大能使用多少虚拟内存,能控制的地方还是比想象的多一点。 尤其是IaaS上,一个qemu进程能使用多少虚拟内存,就是对应着虚拟机的物理内存的最大...

1.9K11

扫码关注云+社区

领取腾讯云代金券