非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
非PE病毒介绍的更多相关文章
- Windows下非PE方式载荷投递方式研究
0. 引言 0x1:载荷是什么?在整个入侵过程中起到什么作用? 载荷的作用在整个入侵链路的作用起到纽带的作用,它借助于目标系统提供的某些功能:组件:执行环境,将攻击者的传递的恶意payload包裹起来 ...
- PE文件介绍 (1)
PE文件介绍 PE文件主要是windows操作系统下使用的可执行文件格式,PE文件是指32位的可执行文件也叫做PE32,64位可执行文件叫做PE+或者PE32+ PE文件格式 种类 主扩展名 可执行类 ...
- 【黑客免杀攻防】读书笔记2 - 免杀与特征码、其他免杀技术、PE进阶介绍
第3章 免杀与特征码 这一章主要讲了一些操作过程.介绍了MyCCL脚本木马免杀的操作,对于定位特征码在FreeBuf也曾发表过类似工具. VirTest5.0特征码定位器 http://www.fre ...
- PE病毒初探——向exe注入代码
PE文件其实就是Windows可执行文件,关于它的一些简要介绍摘自百度: PE文件被称为可移植的执行体是Portable Execute的全称,常见的EXE.DLL.OCX.SYS.COM都是PE文件 ...
- 制作系统U盘,不用做任何动作直接从U盘启动装系统(非PE的)
用U盘装系统可以用PE方式,进入PE系统,选择镜像文件,然后装,这种比较麻烦. 下面介绍一下从U盘启动,直接装系统的方法,这种方法从U盘启动后,不用做任何动作,就像用光盘装系统一样简单 首先要制作一下 ...
- PE文件介绍 (2)-DOS头,DOS存根,NT头
PE头 PE头由许多结构体组成,现在开始逐一学习各结构体 0X00 DOS头 微软创建PE文件格式时,人们正广泛使用DOS文件,所以微软充分考虑了PE文件对DOS文件的兼容性.其结果是在PE头的最前面 ...
- java并发之非阻塞算法介绍
在并发上下文中,非阻塞算法是一种允许线程在阻塞其他线程的情况下访问共享状态的算法.在绝大多数项目中,在算法中如果一个线程的挂起没有导致其它的线程挂起,我们就说这个算法是非阻塞的. 为了更好的理解阻塞算 ...
- Linux驱动之异步OR同步,阻塞OR非阻塞概念介绍
链接:https://www.zhihu.com/question/19732473/answer/20851256 1.同步与异步同步和异步关注的是消息通信机制 (synchronous commu ...
- c# 托管和非托管的介绍
在.net 编程环境中,系统的资源分为托管资源和非托管资源. 对于托管的资源的回收工作,是不需要人工干预回收的,而且你也无法干预他们的回收,所能够做的 只是了解.net CLR如何做这些操作.也就是说 ...
随机推荐
- Django高级部分
Django高级部分 1.上传图片: 当Django在处理文件上传的时候,文件数据被保存在request.FILES,FILES中的每个键为<input type="file" ...
- Linux 下 vim 编辑文件,解决中文乱码,设置Tab键空格数
vim编辑文件的时候,输入中文就出现乱码 解决办法: 以哪个用户登录的就在哪个用户目录下创建文件 vimrc vim .vimrc (.创建的是隐藏文件) 文件内容: set tabsto ...
- 二分查找的变种(Java实现)
普通二分查找: 先回顾一下普通的二分查找 注意:二分查找有这样一个问题:当数组中数有重复时,比如 {3,3,3,3} 这个数组,二分查找3时,返回的是arr[1],也就是说二分查找并不会返回3第一次出 ...
- IntelliJ Idea常用的快捷键
以下是IntelliJ Idea2017版的,基本上不会有什么变化 IntelliJ Idea这个编译器现在非常流行,他强大的快捷键非常好用,相比于eclipse,IntelliJ Idea界面也比e ...
- Iview的开发之路
采用了Vue-cli的方式. 1.反向代理 devServer: { host: '127.0.0.1', port: 9000, proxy: { '/gonghui/': { target: 'h ...
- form表单里的故事
<form class="m-t" role="form" action='javascript:;'> <div class="f ...
- Python 中列表生成式和生成器
列表生成式 即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1,2,3,4,5,6,7,8,9,10]可以用l ...
- Android实用代码七段(三)
正文 一.获取已经安装APK的路径 PackageManager pm = getPackageManager(); for (ApplicationInfo app : pm.getInstall ...
- Git详细教程(2)---多人协作开发
Git可以完成两件事情: 1. 版本控制 2.多人协作开发 如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发. 如果有多个开发人员共同开发一个项目,如何进行协作的呢. Git提供了一个非 ...
- NEO从入门到开窗(4) - NEO CLI
一.唠叨两句 首先,我们都知道区块链是去中心化的,其中节点都是对等节点,每个节点都几乎有完整的区块链特性,CLI就是NEO的一个命令行对等节点,当然也有GUI这个项目,图形化的NEO节点.节点之间需要 ...