20145314郑凯杰《网络对抗技术》多文件捆绑(压缩捆绑)的实现
一、本节摘要
- 简介:压缩捆绑是捆绑技术中最简单的捆绑方式,也是最流行的捆绑技术实现方式之一。简单来说就是两个文件的拼接。
- 目标:
- 用winrar功能实现可执行文件合并,尝试用病毒捆绑正常软件,完成捆绑攻击
- 用DOS命令行的COPY功能实现三类文件(文本文件、音频文件和可执行文件)文件捆绑并分析
- 用DOS命令行的TYPE功能实现三类文件文件捆绑并实现简单信息隐藏
- 工作环境:Windows 7
- 最终成果:已实现所有目标
二、实现过程
1、用经典软件winrar的功能
用winrar的简单功能,创建自解压可执行文件,实现恶意PE的与正常PE的合并。
我们直接实战,将目标程序设定为CS的可执行exe文件,首先可以看到其文件大小是84KB:
右键->添加到压缩文件:
选择创建自解压格式,压缩方式选择存储。这是因为要保证其大小为最小。并打开高级一栏,自解压选项:
在解压目录里选择c:,这样以来在每台Windows系统的计算机下都可以运行。
在很关键的一页,设置中,填写解压前执行这两个文件:首先填写我们已经经过免杀的恶意PE程序的路径,接着填入目标程序cstrike.exe的路径。这样以来首先能保证攻击的实现,其次才是很好的伪装。
这一步是为了在自解压之前自动运行我们的恶意程序,然后再运行原程序。
其他一些设置这里就不说了,主要的原则就是安静地悄悄的干。
接着确定后压出需要的文件,这里可以再包装一手:
将我们解压出的文件隐藏成原图标,看起来就跟真的程序一样了。点击确定,输出压缩包
输出的程序可以以假乱真了。改个名字,开始
成功开始,首先出现一个黑框,完成回连。关闭黑框后,CS自动打开了。
纯绿色的简单手工制作,360也杀不出来
用这种方式实现文件的捆绑,可以实现不止一个的文件进行捆绑,而且其平台可移植性也同样得到证明(在虚拟机下试验过,是一种简单粗暴的方法)
用winhex打开,可以看到:
其文件头是 4D 5A 这是标准的EXE文件文件头。参考各类文件文件头汇总
从简单方法来判断,这个方法还是有一定隐蔽性的,还是挺毒辣的。
2、用DOS命令行实现文件捆绑
用这个功能可以简单实现文件捆绑,主要涉及范围是MP3为代表的音频文件合并,txt为代表的文本文件合并效果很好。但是对于EXE,就比较呵呵,毕竟dos命令行的copy功能还是相对愚蠢的,hhh,
当然我也会在后面试验一下exe的合并。
①实现txt文件捆绑
介绍下我们的目标文件,是一组txt文件:
在haha.txt文件中,文本是空的,接下来实现的效果就是将这么多的文件逐个合并入haha.txt中:
首先进入到我们的根目录下。
输入命令:copy *.txt haha.txt
会询问是否覆盖haha.txt,确认
完成合并后,打开haha.txt,发现文件的内容已经完成了合并。最后还多了一个箭头。试了几次,这种箭头没办法解决。
于是还有一种更优化的方式:
用type命令,type 命令本来是用来在dos命令行下显示文件,但其内核却是可以将文件的内容提取出来。我们只要再进一步,将这提取出来的文件再放回到同一个文件中,就可以实现文本文件内容的提取及捆绑。
输入type *.txt haha
先将所有txt文件的内容提取出来,再注入到haha中去。(为什么不用haha.txt)因为这样会造成haha.txt的文件提取两次,最终的结果就会变成123123。
命令成功后,将haha文件的后缀该改为.txt
打开查看:
文本文件成功合并。而且没有了→
②实现音频文件捆绑
同样用上面比较先进的type方法合并两个音频文件 A和B
可以发现,文件大小是直接相加得到的。
试听效果发现,是直接两个音频的合并。
③实现可执行PE文件捆绑
步骤同上,合并两个EXE文件
大小还是两个源文件的合并,接下来看看效果:
改为.exe后缀后,直接被杀出来了···
尬
添加信任后,改后缀运行,发现这个EXE程序会率先执行先添加的exe文件(就是我们的后门),关闭后也不会进行下一步的运行。
用winhex进行分析:
找到我们的后门程序exe的长度为00007DF0
因此,在合并完的haha.exe文件中找到相应位置:
可以发现,接下来的一堆16进制数,就是第二个exe文件中的。
所以可以推测,type与copy的功能,就是直接将两个文件的二进制流首位相连,形成一个新的文件。这种愚蠢的办法,并不能实现我们的目标。但是它具有什么现实意义呢?
我觉得就是,可以进行部分的信息隐藏
3、利用DOS文件捆绑实现信息隐藏
上面用过了很多其他文件格式,这里就用一个图片的,实现把密码隐藏进图片里:
需要保存的信息为tongliagatong,以文本形式先存在key.txt中。
在命令行中输入命令 copy test.png + key.txta haha.png
其中参数/b指定以二进制格式复制、合并文件;参数/a指定以ASCII格式复制、合并文件。我这样做是为了更好实现隐藏信息
两张图片并无不同,大小也一致
用winhex打开,查看其文本:
就可以发现,我们需要隐藏的信息被隐藏在了最后。
总结:由于DOS命令行功能有限,所以最多只能实现到这个步骤了,只能实现后门程序的普通覆盖式捆绑,没有办法做到阴险的攻击。但是在此基础上也发现了一种网络攻防的重要步骤——信息隐藏!还是具有一定成功意义的文件捆绑。