邪恶的RING0注射ShellCode脆弱的PE加载机制

[原创]邪恶的RING0注射ShellCode脆弱的PE加载机制
文章标题:[原创]邪恶的RING0注射ShellCode脆弱的PE加载机制顶部 hellfish 发布于:2007-03-3000:13 [楼主][原创]邪恶的RING0注射ShellCode脆弱的PE加载机制
文章作者:HellFish
信息来源:邪恶八进制信息安全团队(https://www.360docs.net/doc/1c12461039.html,)

ZwCreateProcessEx是个非常非常好的东西,虽然他是个UNDOC.但是如果你仔细阅读过WIN2K的SRC,并且非常了解PE的运行机制,你会发现一些很有趣的东西。

这对目前的所有NT内核的系统来说都是致命的
可以用来做什么?

1.制造漏洞
2.提升权限
3.拿来写病毒
4.拿来写各种木马
5.各种ROOTKIT

但是这里我只想很简单的说一下原理。我只希望这样的东西只用来讨论而已,当然这不是纯理论
在后面有个简单的EXAMPLES

其实你阅读过2K的SRC,分析过PE的加载,就会发现所有的进程在创建时都是由一个THREAD开始

而NtCreateThread有个很趣的参数ThreadContext.这就是关键

在任何进程创建时,第一次调用的NtCreateThread中的ThreadContext->Eax都是这个进程被分配的在内存中的基址,然而这个时候进程甚至没有开始加载,但正是这个没有被加载的进程,系统却已经为他分配好了一个正常进程所需要的一切

那么我们就可以利用这个地址用ZwAllocateVirtualMemory为我们的代码分配一段空间,然后把我们的SHELLCODE写进去,我的这个例子仅仅是打开一个MessageBox并显示一句简单的字符串.

但是这并不妨碍你把你的病毒代码又或者是一整个木马写进去...只要你想

也许第一个100%Ring0Virus或者Ring0Housr就诞生了

在这只后,你只需要把ThreadContext->Eax的地址修正,进程就能被顺利的加载。并且首先被运行的就是我的SHELLCODE,并且这个小玩意只有一个SYS,除此之外再没有任何多余的东西了

下面是个例子只是为了证明这个理论可以变成实际,驱动没有做任何的处理。并且可以正常的加载与卸载,也没有从链表中移走,你可以用任何驱动管理工具来终止他

在驱动加载后,你再运行任何的进程都将会被注入我的SHELLCODE..

PS:请原谅我说的非常之模糊,毕竟我不想100%Ring0Virus或者别的什么诞生与这篇文章

命令行loader加载loader-u卸载

如果这时候你用OD附加打开的进程,你会发现我的SHELLCODE就在你附加的进程的头部,仿佛天生就是这个进程的一部分,而实际上你不可能在这个进程的文件中发现他们。是不是很有趣,呵呵

而且可以注进目前的任何可执行文件,包括ICESWORD,卡巴,NOD32..想想某一天突然发现你的杀毒软件或者防火墙本身就是个木马或者毒源吧,那简直太有趣了

Examples:

=800)window.open('https://www.360docs.net/doc/1c12461039.html,/attachment/Mon_0703

/10_97621_a47cb7df3627b0e.png');"onload="if(this.width>'800')this.width='800';if(this.height>'800')this.height='800';">

下载Ring0Msg

Ring0Msg.rar


[此贴被EvilOctal在2007-03-3016:32重新编辑]顶部 hellfish 发布于:2007-03-3000:27 [1楼]
例子还要晚一点,毕竟目前代码是加载一个DLL。我可不想就这么发出来,万一把这DLL一换那我就成罪人了。

这只是想证明100%的Ring0Virus和木马什么的是可以被制造的。打破一些杀毒商的神话而已顶部 xyzreg 发布于:2007-03-3000:33 [2楼]
Ring0Virus和木马什么的当然可以搞出来的~顶部 hellfish 发布于:2007-03-3001:05 [3楼]
Ring0Virus容易,但是100%就不容易了.

我的ASM和C没学好,还要再等等吧,毕竟没用ICE调试过怎么都不放心顶部 hellfish 发布于:2007-03-3003:22 [4楼]
出去了一趟,喝了点小酒,现在补上Examples顶部 asm 发布于:2007-03-3009:44 [5楼]
发觉偶爱上ring0了。哎,可惜只有成品,没有代码..偶对成品不感兴趣





[此贴被asm在2007-04-1719:35重新编辑]顶部 hellfish 发布于:2007-03-3013:42 [6楼]
代码?不敢发

转自己的回复

QUOTE:
原帖由river3moon于2007-3-3010:49发表
楼主的这个想法只要不往某些方向发展
将会是一个新的技术制高点
恩,如果用在杀毒软件,那可以免除很多虚拟机的烦恼,所要做的仅仅在所有进程被加载后进行检查,又或者在注入的代码中阻止一切的恶意操作

用在网络游戏的反外挂,那即使这个外挂用了驱动,也难以逃脱监控

如果用在安全软件,那可以很有效的阻止恶意程序乃至SHELLCODE

---

用在某些方向的话....

说实在的,也许用于某些方向能获得的利益更多...


[此贴被hellfish在2007-03-3013:47重新编辑]顶部 ni7wo3 发布于:2007-03-3013:46 [7楼]
思路真的很不错
但发现NtCreateThread被挂住已经基本知道中着顶部 hellfish 发布于:2007-03-3013:50 [8楼]

Quote:
引用第8楼ni7wo3于2007-03-3013:46发表的 :
思路真的很不错
但发现NtCreateThread被挂住已经基本知道中着

先不说N多办法在Ring0逃脱检测,即使只用自己的SHELLCODE就能让所有的检查软件失效了

你可以看看ICESWORD一样会被注代码。

只要你想,基本上干什么都行

这只是个Examples,如果实际应用,不可能会被发现的顶部 ni7wo3 发布于:2007-03-3014:06 [9楼]

Quote:
引用第9楼hellfish于2007-03-3013:50发表的 :


先不说N多办法在Ring0逃脱检测,即使只用自己的SHELLCODE就能让所有的检查软件失效了

你可以看看ICESWORD一样会被注代码。
.......
既然说N多办法在Ring0逃脱检测,有就有N多种方法去检测,都是在RING0,逃避和被检测都伯仲之间,只有针对性的胜利.就象你不可能在进程创建之前判断这个

DD是不是检测工具,因为不是所有的DD都叫ICESWORD.但这个想法却是很有创意(c)Copyleft2003-2007,EvilOctalSecurityTeam.
ThisfileisdecompiledbyanunregisteredversionofChmDecompiler.
Regsiteredversiondoesnotshowthismessage.
YoucandownloadChmDecompilerat:https://www.360docs.net/doc/1c12461039.html,/


相关主题
相关文档
最新文档