非PE病毒介绍
1.宏病毒
1.1 介绍
本文中的宏特指office系列办公软件中的宏,Microsoft Office中对宏的定义为“宏就是能够组织在一起的,可以作为一个独立命令来执行的一系列Word 命令,它能使日常工作变得容易。”当我们打开某些文档时,会遇到“安全警告”,提示我们宏已被禁用,若我们选择“启用内容”,则宏代码就会被执行。
当宏代码包含恶意功能时则为宏病毒,其强大之处是建立在VBA组件的基础上的,与操作系统无关,只要计算机能够运行Microsoft Office办公软件,便有可能感染宏病毒。
1.2 基础
VBA(Visual Basic宏语言)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。
宏代码中常见的Sub和Function都类似于C语言中的函数。sub在VB中被称为过程,function被称为函数;sub没有返回值,function有返回值;一段宏一定是从sub开始执行的,“End Sub”表示这个过程的结束,“End Function”则表示函数的结束。
VB中存在很多对象,如Application对象,Document对象,Adobd.stream对象等。对象实际上是代码和数据的组合,我们在使用对象时,要么使用对象的属性(就是数据),要么使用对象的方法(就是代码)。通过 “对象.属性/方法”的方式使用对象的属性/方法。
1.3 工具
oledump.py用于提取宏代码;
VBA Password Bypasser用于解密VBA工具;
参考网址:https://www.52pojie.cn/thread-706440-1-1.html
2.脚本病毒
2.1 介绍
脚本病毒是主要采用脚本语言设计的计算机病毒。为非PE病毒的主要类型,以往流行的脚本病毒大都是利用Bat、JavaScript和VBScript脚本语言编写,近来PowerShell强势兴起,成为流行的脚本病毒之一。
2.2 攻击技巧
当攻击载荷成功投递到目标,其是否生效还受到系统策略、权限等因素影响 ,当目标拥有Applocker时,攻击方式分两种情况:
2.2.1 脚本执行禁用,cmd、powershell执行未禁用
这种情况下利用方式很多,常见的方式基本有:
(1)直接使用cmd、powershell命令
(2)通过管道
(3)通过regsvr32、rundll32、mshta
2.2.2 脚本执行禁用,powershell执行禁用
对于这种情况,得通过别的方式绕过限制:
(1)利用规则“漏洞”,寻找可执行路径,写入payload脚本;如果只是对于powershell.exe采用了路径限制,而不是哈希限制,那可以将其copy一份到别的路径,然后使用。
(2)使用C#调用powershell的模板代码,将payload替换为可执行代码并编译,然后运行。
(3)使用已经经过签名的Windows组件安装程序InstallUtil.exe。
(4)使用.Net框架程序集注册工具Regasm或Regsvcs,通过csc.exe编译为dll组件,之后通过传入Regasm(或Regsvcs)/U 参数执行卸载例程。
(5)使用msxsl.exemsxsl是windows下用于处理xsl的命令行程序(已签名),通过该程序可以执行JScript代码。
(6)使用msbuild.exemsbuild作为Windows和vs的生成引擎,默认系统自带。
3. 其他病毒
其他较为少见的病毒如inf、lnk文件,还有一些例如Autoit、CAD等软件定义的脚本,又或者swf文件,这种类型的病毒比起宏病毒和脚本病毒,类型上比较模糊,攻击目标也偏小众。
3.1 inf病毒
当我们打开某个盘符的时候,Windows系统会搜索根目录下有没有autorun.inf文件,如果有,则读取该文件中的内容,autorun.inf则会指向一个程序,Windows便会指向该程序,若内容是这样的:“open=C:\virus.exe”,则会执行virus.exe。
3.2 CAD病毒
参考网址:http://mp.weixin.qq.com/s/8wAk-fRXd7HbS_QzsxdNwA