设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 179|回复: 4
打印 上一主题 下一主题

一个修改NT内核的真实RootKit

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-16 15:29:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
译者注:

    首先要感谢sinister和alert7,没有他们的指点和帮助我也不会这么快接触到Windows的底层内核,在此一并表示感谢。
    如果您对Linux的RootKit很感兴趣,可以访问大鹰的主页< http://e4gle.org >,那有很多精彩的资料。
    由于时间仓促及能力有限,翻译得不妥之处,还望斧正。


绪论
----

    首先,像Back Orifice和NetBus都不属于Rootkit。它们是具有和PC-Anywhere,SMS或其他的商用程序相同功能的业余版本。如果你想远程控制一台工作站,可以向微软购买一套功能强大的SMS系统。一个远程桌面/管理应用程序不是Rootkit。

    什么是Rootkit?Rootkit是修改已经存在于系统内的可执行路径并具有特洛伊功能的程序集。这些进程侵犯信任处理基础(TCB)的完整性。换句话说,Rootkit就是那些插入后门到已经存在的程序,修改或损坏已经存在的安全的系统。

- Rootkit可能会破坏一个用户在登录时的审核;
- Rootkit允许任何人登录进系统,如果他们使用一个后门密码;
- Rootkit可能会修改内核,它会允许任何人执行具有特别文件名的特权代码。

    所有的可能性无法想像,没有边际,但是有一点可以肯定的就是“RootKit”将自己与已经存在的系统结构联系起来,因此它往往是在暗地里运行的。而PC Anywhere那样的远程管理应用程序就仅仅是一个严密的应用程序。另一方面,RootKit在特定目标操作系统里修改已经存在的可执行路径。

    为了解决这点,我在这篇文章里包含了4字节的补丁给NT的内核,它会删除在NT域内的所有的对象安全限制。如果这个补丁被运用到一个活动的主域控制器(PDC)上,那么整个域的完整性将受到侵犯。如果这个补丁在不知不觉中运行了数个星期,甚至是几个月,那时你所受到的损害将是无法确定的!


基于网络的安全与Windows NT信任域
-------------------------------

    如果你对NT内核比较了解,那么你就应该知道其中的一个执行组件叫做安全参考监视器(SRM)。在DoD的红皮书中也已定义了一个“安全参考监视器”。我们现在讨论的是一个相同的话题,在红皮书中,一个安全域被一个单一的实体所管理。

引用:
    “一个单一的信任系统犹如一个单一的实体一样,通过一个单一的信任证据所接受。一个单一信任系统网络执行相关的参考监视器来加强对对象访问时所应遵循的清晰的和良好定义的网络安全政策。[DoD红皮书]”

    在NT中的说法就是主域控制器(PDC)。记住每一个系统都有本地安全和域安全。在这种情况下,我们只讨论域安全。PDC的安全参考监视器负责管理域内的所有对象。与此同时,它创建了一个单一的控制点,和一个单一信任系统网络。


如何侵犯系统的完整性
-------------------

    我知道这些都是书中的理论,但请容忍我再罗嗦一点。DoD红皮书同样定义了“信任处理基础”(TCB)。如果你是一个NT程序员,你可能曾经使用过安全特权SE_TCB_PRIVILEGE。这个特权和“担当操作系统一部分”的用户权利非常相似。你可以通过使用管理员权限来将这个安全特权添加给某一个用户。

    如果你有权担当TCB的一部分,你几乎可以做任何事情。现在在你的进程和剩下系统之间几乎没有安全措施。如果TCB不再被信任了,那么整个网络系统的完整性也已受到攻击。我将要向你展示的就是这样的一个例子,如果它被安装在一个工作站上,就会侵犯一个网络分区。如果它被安装在主域控制器上,将会侵犯整个网络的完整性。

什么是一个分区?

    红皮书将网络分成NTCB(网络信任处理基础)“分区”。在网络中的任一组件或主机可以被认为是一个“分区”,这将会方便我们的分析和讨论。

引用:
    “一个NTCB被分散为与分区相关的一些网络组件,并且NTCB部分所存在的组件也与NTCB分区相关。一个网络主机可能占有一个先前被我们认为是单机系统的TCB。这样的TCB没有必要与在主机内的NTCB分区相一致,它们拥有相同的安全周期[DoD红皮书]。”

    在一个相同的主机里,你可能拥有两个唯一的区域:TCB在传统的红皮书里被评价为受信任处理基础和NTCB。这些分区没有必要相互交迭,但是它们可以这样做。如果任何的一个组件被侵犯了,那么看上去其他的也同样被侵犯了。换句话说,如果一台主机受到了危害,那么NTCB可能也受到了危害。   

    很显然,在TCB上安装一个补丁,你必须是管理员,或拥有安装设备驱动程序的能力。为了使木马或病毒正常的执行,依靠某人的知识来安装这些补丁是很简单的事情。


设想一个exploit
--------------

    在我离题到那些严肃的混淆的技术前,思考一些基于修改NT内核的攻击。所有的一切都是因为我们已经侵犯了TCB:

1. 插入无效的数据。无效的数据可以被插入到任何的网络流中。同样可以插入一些错误数据到固定的存储系统中,可能是敏锐的时间信息等,这样可能会破坏系统的备份。这样将会侵犯系统的可靠性和完整性。


2. 修改进入的ICMP数据报。使用ICMP作为隐藏的渠道,补丁可以读取进入到核心的ICMP数据报内部的命令。

3. 修改进入的以太网数据报。在不使用任何驱动组件的情况下担当嗅探器的角色。如果它已经修改了以太网,那么同样可以发送/接收与外网的数据报。它还可以嗅探秘密的关键字。

4. 修改已经存在的动态链接库,比如wininet.dll,追踪进入的数据。

5. 修改入侵检测系统。它可以修改如Tripwire或RealSecure等程序来破坏它们的完整性,这样这些系统就无法探测到一些“污秽”的行动……

6. 修改审核系统,如系统事件日志来忽略一些事件日志消息。

    现在为了稀有的“牛排”,让我们深入研究一个实际的内核补丁。如果你已经对保护模式和全局描述符表非常了解,你可以跳过下一节。否则,穿上你旅行的靴子,前面还有很多弯曲的路要走呢!


Rings的力量
-----------

    Windows NT不像DOS或Windows 95,而是拥有自己的进程空间安全措施。每个用户模式的进程有一个被安全描述符保护的存储器空间。通常这个SD(安全描述符)由用户启动进程里的访问令牌所决定。所有对对象的访问都是通过“访问控制列表”来实现的。在Windows NT中被称为“任意访问控制”。就个人而言,我发现如果我不能了解它最基本的细节,那是很难理解其他东西的。所以在下一节里将描述使得x86结构安全成为可能的基本信息。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 23:19 , Processed in 0.072771 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表