标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2025-1149] 作者: ecawen 发表于: [2017-12-02]
本文共 [280] 位读者顶过
0x00 开篇安全技术存在的价值在于对抗的较量,在攻与防中寻求突破一直是技术提升的保障。 首先,在开始介绍之前,我们需要了解一下分解型后门。 分解型后门:分解型后门也称之为分解病毒,这是一种可以寄生在任何文件里的一段数据,它本身不是病毒,不具有危害性,但当它进行代码整合时,就成为了具有危害性的病毒或木马程序,缘由它自我分解和组合能力和云层的拼接类似,所以名为分解型后门。 0x01分解型后门原理当病毒主程序在本地机器上运行时,主程序把病毒核心文件数据分解到任何文件里,然后执行PE头注入,源文件头EIP指向病毒执行代码地址,当任意被感染的文件里存在病毒主程序代码时,开始执行病毒数据组合,促发病毒代码。
感染文件的基本步骤:[出自:jiwo.org] 6.主程序任务完成,删除自身,病毒等待触发。
病毒促发的基本步骤: 1.病毒促发 2.开始组合代码 3.执行病毒 以下为病毒促发后执行流程图:
1.不在磁盘上存在任何文件,以寄生为主。
2.病毒使用dll注入技术。
3.只在内存中执行,不产生文件。
4.接收病毒数据方式多样性。
5.不产生任何进程,依附寄生程序。
6.变种简单,编写灵活。
1.远程利用
(1)病毒主文件负责请求外部服务器数据到本机,并把相关数据存储在变量缓冲区中,当下载完毕后,从内存变量中读取数据,附加到任意文件中,注入病毒loader代码到PE文件,删除自身。
(2)本地连接远程服务器,远程服务器通过发送数据到本地,本地把相关数据存储在变量缓冲区中,当接收完毕后,从内存变量中读取数据,附加到任意文件中,注入病毒loader代码到PE文件,删除自身。
(3)本地连接远程服务器,远程服务器通过发送数据到本地,本地把相关数据进行分段存储,当接收到感染指令的时候,对病毒进行组装并加载进内存,对本地进行感染,对外进行感染,否则进行潜伏。
(4)本地连接远程Web服务器,读取远程Web服务器网页上的数据文本,本地把相关数据进行分段存储,注入病毒loader代码到PE文件,删除自身。
2.本地使用
本地执行病毒主程序时,开始注入PE文件,修改EIP指向,分解病毒程序,删除自身。
3.后门使用
本地执行病毒主程序时,开始注入PE文件,修改EIP指向,分解病毒程序,删除自身。
当病毒被激活时,主动或者被动监听端口,等待接收Shellcode并执行命令。
病毒程序:一个弹MessageBox的病毒演示程序。
感染程序:模拟感染cmd.exe
这里就不演示病毒loader和dll内存注入了,就简单演示病毒促发后怎么组合代码,为了易懂,我们用python来写代码。
我们把病毒程序(MessageBox.exe)以十六进制读取出来,保存为messagebox.txt。
读取代码
然后进行代码分解追加代码到文件中,这里代码少,不做分解。
然后查看数据,病毒数据已全部分解注入到目标程序了,并且程序可正常运行。
分解注入代码
下面就是从文件中读取数据进行代码重组了
首先,我们应该知道病毒写入文件的大小,读取标记(不做演示),组合数据写进内存(不做演示)。
读取病毒数据代码
执行mess.exe程序(实际促发中,存储介子不会产生此程序),可以看到,程序被重新组合出来,并且能成功运行
本篇只简单对分解型后门进行了一个科普,在现实环境中,往往在我们向重要的PE文件里写入数据的时候,会被杀毒软件盯上,所以向不是系统的相关文件里面写入病毒loader能够减少被杀的风险。分解型后门应用可以很广,编写思路灵活,所以变种相当容易,被查杀的风险很低,不过分解型后门用来做后门是相当不错的。
|