非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如何做这些操作.也就是说 ...
随机推荐
- UWP 使用Telerik Grid控件
还是老规矩,看一下最终效果. 数据是从SQLite中读取,然后绑定到DataGrid中显示的. 先看一下XAML <grid:RadDataGrid Grid.Row="1" ...
- linux学习之路--(三)文件系统
一.文件系统 rootfs:根文件系统 FHS:linux /boot:系统启动相关的文件,如内核.initrd,grub(bootloader) /dev:设备文件:不存储内容,就是个访问入口 块设 ...
- CXGrid TcxButtonEdit 信息获取 TcxButtonEditProperties取得TcxGridDBTableView
( TcxButtonEdit(Sender).ActiveProperties).Buttons[AButtonIndex].Hint;//取到按钮本身的属性IntToStr( ( TcxGridS ...
- java容器类4:Queue深入解读
Collection的其它两大分支:List和Set在前面已近分析过,这篇来分析一下Queue的底层实现. 前三篇关于Java容器类的文章: java容器类1:Collection,List,Arra ...
- 笔记:Spring Boot 项目构建与解析
构建 Maven 项目 通过官方的 Spring Initializr 工具来产生基础项目,访问 http://start.spring.io/ ,如下图所示,该页面提供了以Maven构建Spring ...
- 笔记:XML-解析文档
要处理XML文档,就要先解析(parse)他,解析器时这样一个程序,读入一个文件,确认整个文件具有正确的格式,然后将其分解成各种元素,使得程序员能够访问这些元素,Java库提供了两种XML解析器: 像 ...
- TCP 详解
计算机网络中比较中要的无非就是 TCP/IP 协议栈,以及应用层的 HTTP 和 HTTPS . 前几天一直炒的的比较火的就是 HTTP/2.0 了,但是其实 HTTP/2.0 早在2015年的时候就 ...
- [活动] 【奖品撩人】部落守卫者集结令·这一回同程SRC的安全由“我”守卫!
i春秋SRC部落联合同程SRC发布首届部落守卫者漏洞提交任务(代号G001)! 你准备好了吗! [部落守卫者集结令]拿巨额奖金?上白帽子排行榜?近距离膜拜大佬?学技术?掌握窍门?又或者你是个责任感爆棚 ...
- HTTP协议----URI,URL,持久连接,管道与Cookie
URI与URL有什么不同呢? URI:Universal Resource Identifier统一资源标志符 URL:Universal Resource Locator统一资源定位器 URI是用来 ...
- (译文)学习ES6非常棒的特性——Async / Await函数
try/catch 在使用Async/Await前,我们可能这样写: const main = (paramsA, paramsB, paramsC, done) => { funcA(para ...