20145314郑凯杰《网络对抗技术》多文件捆绑(压缩捆绑)的实现
2017-06-16 20:47
323 查看
20145314郑凯杰《网络对抗技术》多文件捆绑(压缩捆绑)的实现
一、本节摘要
简介:压缩捆绑是捆绑技术中最简单的捆绑方式,也是最流行的捆绑技术实现方式之一。简单来说就是两个文件的拼接。目标:
用winrar功能实现可执行文件合并,尝试用病毒捆绑正常软件,完成捆绑攻击
用DOS命令行的COPY功能实现三类文件(文本文件、音频文件和可执行文件)文件捆绑并分析
用DOS命令行的TYPE功能实现三类文件文件捆绑并实现简单信息隐藏
工作环境:Windows 7
最终成果:已实现所有目标
二、实现过程
1、用经典软件winrar的功能
用winrar的简单功能,创建自解压可执行文件,实现恶意PE的与正常PE的合并。我们直接实战,将目标程序设定为CS的可执行exe文件,首先可以看到其文件大小是84KB:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/d563a604bbf7bcdb2be17a675db7f942.png)
右键->添加到压缩文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/60ab3077ce4dad2297033f92742360ad.png)
选择创建自解压格式,压缩方式选择存储。这是因为要保证其大小为最小。并打开高级一栏,自解压选项:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/035a73aed600e24f26b828c2657b58db.png)
在解压目录里选择c:\,这样以来在每台Windows系统的计算机下都可以运行。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/c9c327f0b6af917a5896d89ce22599f5.png)
在很关键的一页,设置中,填写解压前执行这两个文件:首先填写我们已经经过免杀的恶意PE程序的路径,接着填入目标程序cstrike.exe的路径。这样以来首先能保证攻击的实现,其次才是很好的伪装。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/d60d01f3559174103b0eb1f39ce0ac9b.png)
这一步是为了在自解压之前自动运行我们的恶意程序,然后再运行原程序。
其他一些设置这里就不说了,主要的原则就是安静地悄悄的干。
接着确定后压出需要的文件,这里可以再包装一手:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/e9bf99615db59cc0596278ef13e05f9b.png)
将我们解压出的文件隐藏成原图标,看起来就跟真的程序一样了。点击确定,输出压缩包
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/7caa224377d8b14e030d0c2ca2dce9e8.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/f0f77a26e11becd14ef9bfa9752d038c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/6e0aeb01f0ff1e0dac8ebfb137fbdd6e.png)
输出的程序可以以假乱真了。改个名字,开始
成功开始,首先出现一个黑框,完成回连。关闭黑框后,CS自动打开了。
纯绿色的简单手工制作,360也杀不出来
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/30122caf416f40fc9db950ed15f6cb81.png)
用这种方式实现文件的捆绑,可以实现不止一个的文件进行捆绑,而且其平台可移植性也同样得到证明(在虚拟机下试验过,是一种简单粗暴的方法)
用winhex打开,可以看到:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/51ea1b4419fd2a3b9806793285716bc7.png)
其文件头是 4D 5A 这是标准的EXE文件文件头。参考各类文件文件头汇总
从简单方法来判断,这个方法还是有一定隐蔽性的,还是挺毒辣的。
2、用DOS命令行实现文件捆绑
用这个功能可以简单实现文件捆绑,主要涉及范围是MP3为代表的音频文件合并,txt为代表的文本文件合并效果很好。但是对于EXE,就比较呵呵,毕竟dos命令行的copy功能还是相对愚蠢的,hhh,当然我也会在后面试验一下exe的合并。
①实现txt文件捆绑
介绍下我们的目标文件,是一组txt文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/7da785dd77b6ac2ef550dc8f5540cbf1.png)
在haha.txt文件中,文本是空的,接下来实现的效果就是将这么多的文件逐个合并入haha.txt中:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/03eae9bd0f4f7b8196c2440c6a4fa4c6.png)
首先进入到我们的根目录下。
输入命令:
copy *.txt haha.txt
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/661450f964b408df81f406fadb0d5a59.png)
会询问是否覆盖haha.txt,确认
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/25ce5b4cc767e4e424ce9755c6aa2383.png)
完成合并后,打开haha.txt,发现文件的内容已经完成了合并。最后还多了一个箭头。试了几次,这种箭头没办法解决。
于是还有一种更优化的方式:
用type命令,type 命令本来是用来在dos命令行下显示文件,但其内核却是可以将文件的内容提取出来。我们只要再进一步,将这提取出来的文件再放回到同一个文件中,就可以实现文本文件内容的提取及捆绑。
输入
type *.txt haha
先将所有txt文件的内容提取出来,再注入到haha中去。(为什么不用haha.txt)因为这样会造成haha.txt的文件提取两次,最终的结果就会变成123123。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/ca6fab6141f6be749b5901741aea7d3f.png)
命令成功后,将haha文件的后缀该改为.txt
打开查看:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/22e67aff8f2890692438661743879e14.png)
文本文件成功合并。而且没有了→
②实现音频文件捆绑
同样用上面比较先进的type方法合并两个音频文件 A和B
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/c779fbf94e5a347dd28aeb175088b6fd.png)
可以发现,文件大小是直接相加得到的。
试听效果发现,是直接两个音频的合并。
③实现可执行PE文件捆绑
步骤同上,合并两个EXE文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/f53628daf09a7ad44156d08992b74080.png)
大小还是两个源文件的合并,接下来看看效果:
改为.exe后缀后,直接被杀出来了···
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/83ea8b884b90d436516bd00d37cd3593.png)
尬
添加信任后,改后缀运行,发现这个EXE程序会率先执行先添加的exe文件(就是我们的后门),关闭后也不会进行下一步的运行。
用winhex进行分析:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/ef4753efdd36c1400cc17bfaa2206084.png)
找到我们的后门程序exe的长度为00007DF0
因此,在合并完的haha.exe文件中找到相应位置:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/7991f84257f3d39ed4480591c754e53e.png)
可以发现,接下来的一堆16进制数,就是第二个exe文件中的。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/c95fb073e860f0d314e4a597be1f16c4.png)
所以可以推测,type与copy的功能,就是直接将两个文件的二进制流首位相连,形成一个新的文件。这种愚蠢的办法,并不能实现我们的目标。但是它具有什么现实意义呢?
我觉得就是,可以进行部分的信息隐藏
3、利用DOS文件捆绑实现信息隐藏
上面用过了很多其他文件格式,这里就用一个图片的,实现把密码隐藏进图片里:![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/2a45dc5d169931bd2f8822ae3df20d29.png)
需要保存的信息为tongliagatong,以文本形式先存在key.txt中。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/5411484f2d640b9590c9dd0da5d8676c.png)
在命令行中输入命令
copy test.png\b + key.txt\a haha.png
其中参数/b指定以二进制格式复制、合并文件;参数/a指定以ASCII格式复制、合并文件。我这样做是为了更好实现隐藏信息
两张图片并无不同,大小也一致
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/5510d3cdd678e1fc46292332cdb38712.png)
用winhex打开,查看其文本:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/12/0085c4e5be7450091b4738d89a5148a3.png)
就可以发现,我们需要隐藏的信息被隐藏在了最后。
总结:由于DOS命令行功能有限,所以最多只能实现到这个步骤了,只能实现后门程序的普通覆盖式捆绑,没有办法做到阴险的攻击。但是在此基础上也发现了一种网络攻防的重要步骤——信息隐藏!还是具有一定成功意义的文件捆绑。
相关文章推荐
- 20145314郑凯杰《网络对抗技术》漏洞利用捆绑(漏洞捆绑)的实现
- 20145314郑凯杰《网络对抗技术》恶意DLL注入进程(进程捆绑)的实现
- 20145314郑凯杰《网络对抗技术》资源融合捆绑(资源捆绑)的实现
- Docker核心实现技术(命名空间&控制组&联合文件系统&Linux网络虚拟化支持)
- Java 小程序 实现网络下载图片到制定文件夹,压缩和删除文件
- 浅谈文件捆绑技术及实现方式
- 20145314郑凯杰《网络对抗技术》可选实验 shellcode注入与Return-to-libc攻击实验
- 浅谈文件捆绑技术及实现方式 推荐
- 浅谈文件捆绑技术及实现方式
- Docker核心实现技术 (命名空间 & 控制组 & 联合文件系统 & Linux网络虚拟化支持)
- iOS-网络-SSZipArchive实现文件压缩和解压缩
- 20145329 《网络对抗技术》MSF基础应用
- 实现文件的创建、删除、复制、压缩、解压以及目录的创建、删除、复制、压缩解压等功能
- 分布式网络爬虫关键技术分析与实现一网络爬虫相关知识介绍
- java实现文件的压缩解决服务器(亲测windows server 2008)中文乱码
- 腾讯技术分享:社交网络图片的带宽压缩技术演进之路
- 20145321 《网络对抗技术》 恶意代码分析
- 网络编程 基于Socket的多文件传输程序实现(一)
- 用java实现文件下载并压缩
- 20145238-荆玉茗 《网络对抗技术》-Web安全基础实践