xscott
驱动牛犊
驱动牛犊
  • 注册日期2007-06-26
  • 最后登录2010-05-17
  • 粉丝0
  • 关注0
  • 积分151分
  • 威望17点
  • 贡献值0点
  • 好评度15点
  • 原创分1分
  • 专家分0分
阅读:2951回复:17

关于RootKit设计思考

楼主#
更多 发布于:2007-06-26 23:23
这是一篇几个月前写的文章了。今天又修改了一下,加了“2:高强度对抗:”“三:实际的工作:”两个部分。

原文地址如下:
http://www.phpfav.com/?p=64

文章如下:

以下只讨论windows OS 下的纯内核级别rootkit


一:设计的思想:其实从设计的角度来看 rootkit 个人认为应该分为两种:

1:POC(概念展望)
2:Utility(UTI)(应用实战)

POC:应该体现其 1-思想的前卫,2-技术的深度,3-对抗的强度,4-具体的有针对性的效果。
例如:1.Futo  2.unreal

UTI :应该做到 1-通用,2-稳定,3-有针对性的对抗。
例如:1.HE4Hook  2.Hacker Defender


二:现实的矛盾:看了一些 rootkit 技术发现。

我们做一个假设:写一个实用的rootkit(高强度对抗+有实用功能)。这时不可避免的问题就要发生。
问题体现:
1:实用功能:

   网络通信为根基:稳定简单的选择,封装TDI建立一个KSOCK。(此方法在2K/XP/2K3/VISTA下通用/稳定)rootkit.com上面有一个不过不好用。我个人不喜欢用NDIS来做,难度较大,开发周期长。
                  为了隐蔽可以选择 两个种升级方法:
                  1:TDI复用端口
                  2:KSCOK + HTTP  (收发数据时在数据前面加些HTTP结构)

   KSHELL:这个不用怎么说了吧。怎么也得给人一个命令行执行环境吧:)  
            实现方法APC队列插如命令然后执行(此方法在2K/XP/2K3/VISTA下通用/稳定)。
            需要注意的一点是选择什么进程的APC队列的问提。(2k/xp/2k3比较好选择,VISTA下需要精心挑选一个)

   文件传输:这个没什么好说的了:用zwcreatefile zwreadfile zwwritefile 等等函数封装一下就好了。但是在用的时候需要注意一下IRQL的环境,有些环境是不允许文件操作的。
             这里也给出一种升级方法利用 IOXXXX 系列的内核文件函数封装。你要问为什么?绕过SSDT监视被:)

   进程管理:列进程/杀进程。列进程一般用 ZwQuerySystemInformation 标准的选择。
                          再给出一种升级的选择:获得EPROCESS,然后找进程的双向链表遍历一下OK了。你又要问为什么?还是绕过SSDT监视被:)

   其他功能:遇到再说吧!

我们可以看到以上的这些功能在不做SSDT,不做HOOK DISPATH,不修改 KernelObject,的时候已经具备了一定的隐蔽效果。但是更大的好处再在于,先看下面一段话:

“rootkit的对抗隐藏与ANTIRK必然会在内核里面有接触。当接触出现后没人知道会发生什么。rootkit胜利系统安然无恙?BSOD?ANTI胜利rootkit被发现?谁都说不好。也许有人说可以靠高质量高可靠性的rootkit编码来避免。但是,你能保证你的对手(ANTI-rootkit)也是一样?既然是对抗就存在偶然因素。还有许多的复杂环境的因素。”

这段话是我好久以前写的了。现在回到刚刚上面写的那些技术上来,上面的技术一般不会与ANTIRK接触,所以很好的避免了,一些不稳定的对抗因素。



2:高强度对抗:
(6月26日追加)

这部分需要大致分为两类吧!

第一类:是对抗KIS 6/7,macfee 8/8.5,ZA pro等等。(baiyuanfan的《实用级反主动防御rootkit设计思路》已经说的很多了。)

第二类:是对抗 ANTI-rootkit 程序的检测,IceSword 1.20 ,DarkSky 1.05,RKUnHooker 3.xx,GMER等等。

两种对抗的侧重点不一样,所以实现起来比较个性化,很多技术都不是标准的,可能是灵感,可能是需要。没办法把这种对抗技术来具体的说。不过,可以归整到几个分类里面吧:

SSDT/INLINE_HOOK,HOOK DISPATCH,修改内核结构/内核对象,INLINE_HOOK 非导出函数,固化修改文件等等。



三:实际的工作:
(6月26日追加)

baiyuanfan在《实用级反主动防御rootkit设计思路》已经放出“第一类对抗”的rootkit了。

我下面放一个针对“第二类对抗”的 rootkit 视频。

rootkit Goblin 的技术介绍:
http://www.phpfav.com/?p=78

演示视频:
http://www.phpfav.com/uploads/scott/rk_goblin.zip


四:结尾

以上观点不求他人接受。只是本人主观的一点想法。欢迎讨论。

我的个人信箱:  xscott@126.com
BLOG:         http://www.phpfav.com

最新喜欢:

linshierlinshi... haifengjlhaifen...
cardmagic
驱动中牛
驱动中牛
  • 注册日期2005-03-15
  • 最后登录2010-01-14
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望317点
  • 贡献值0点
  • 好评度312点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-06-27 13:54
如果 用darkspy检测你的注册表。
用icesword1.2里的filereg检查你的文件呢

为什么rkunhooker没有报出darkspy的钩子,记得好像是可以报的,难道被patch了?
呵呵
牌术千术IT cardmagic.bokee.com
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2007-06-27 14:33
如果根本没有注册表,FileReg等等也查不到文件呢(用XXX)

关注楼主~学习
驱动开发者 呵呵
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
地板#
发布于:2007-06-27 14:40
看了视频,楼主的机器那么快啊,RKU的hidden file detect和code hook detect一下子就过去了~
hidden driver detect呢?
驱动开发者 呵呵
xscott
驱动牛犊
驱动牛犊
  • 注册日期2007-06-26
  • 最后登录2010-05-17
  • 粉丝0
  • 关注0
  • 积分151分
  • 威望17点
  • 贡献值0点
  • 好评度15点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2007-06-27 15:15
cardmagic
我用的是 DARKSKY 1.05 和 RKU 3.0.80.295 ,刚刚我又测试了一下。
先开DARKSKY 后开RUK
在RUK的SSDT HOOK 和 CODE HOOK 里面确实没发现DARKSKY的钩子。
cardmagic
驱动中牛
驱动中牛
  • 注册日期2005-03-15
  • 最后登录2010-01-14
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望317点
  • 贡献值0点
  • 好评度312点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-06-27 16:12
引用第2楼WQXNETQIQI于2007-06-27 14:33发表的  :
如果根本没有注册表,FileReg等等也查不到文件呢(用XXX)

关注楼主~学习


没有注册表 这样的backdoor不实用。
如果对最新的is , 查不到文件,可以拿来show一下你的做法。
赫赫
牌术千术IT cardmagic.bokee.com
cardmagic
驱动中牛
驱动中牛
  • 注册日期2005-03-15
  • 最后登录2010-01-14
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望317点
  • 贡献值0点
  • 好评度312点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-06-27 16:14
引用第4楼xscott于2007-06-27 15:15发表的  :
cardmagic
我用的是 DARKSKY 1.05 和 RKU 3.0.80.295 ,刚刚我又测试了一下。
先开DARKSKY 后开RUK
在RUK的SSDT HOOK 和 CODE HOOK 里面确实没发现DARKSKY的钩子。

版本我没注意。
不过我手上的版本,确实可以逮到一个。
牌术千术IT cardmagic.bokee.com
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
7楼#
发布于:2007-06-27 16:23
注册表隐藏极度困难,离线分析该如何对抗——在linux上分析windows的注册表,完全可以的说~~~
没有战争就没有进步 X3工作组 为您提供最好的军火
xscott
驱动牛犊
驱动牛犊
  • 注册日期2007-06-26
  • 最后登录2010-05-17
  • 粉丝0
  • 关注0
  • 积分151分
  • 威望17点
  • 贡献值0点
  • 好评度15点
  • 原创分1分
  • 专家分0分
8楼#
发布于:2007-06-27 16:29
呵呵。我没做HIDE REG。我用的LOADSYS就是普通的服务起驱动。用LOADSYS是为了演示方便。
如果做自启动的话,我会用别的方法起驱动,不会用REG的。
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
9楼#
发布于:2007-06-27 16:34
不用REG的为什么不实用,嘿嘿
驱动开发者 呵呵
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
10楼#
发布于:2007-06-28 12:04
引用第9楼WQXNETQIQI于2007-06-27 16:34发表的  :
不用REG的为什么不实用,嘿嘿



没有reg和文件,也没有进程和独立的驱动——一切尽在固化修改~
没有战争就没有进步 X3工作组 为您提供最好的军火
xscott
驱动牛犊
驱动牛犊
  • 注册日期2007-06-26
  • 最后登录2010-05-17
  • 粉丝0
  • 关注0
  • 积分151分
  • 威望17点
  • 贡献值0点
  • 好评度15点
  • 原创分1分
  • 专家分0分
11楼#
发布于:2007-06-28 12:08
呵呵。VXK的 WIN32K 固化修改。。。。。。。
cardmagic
驱动中牛
驱动中牛
  • 注册日期2005-03-15
  • 最后登录2010-01-14
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望317点
  • 贡献值0点
  • 好评度312点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-06-28 12:14
引用第9楼WQXNETQIQI于2007-06-27 16:34发表的  :
不用REG的为什么不实用,嘿嘿


很多事情做不了, 做了也比较难稳定和通用。
牌术千术IT cardmagic.bokee.com
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
13楼#
发布于:2007-06-29 10:38
稳定和通用而又不垃圾,难啊。。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
14楼#
发布于:2007-06-29 10:41
引用第10楼killvxk于2007-06-28 12:04发表的  :



没有reg和文件,也没有进程和独立的驱动——一切尽在固化修改~

现在MS什么都做签名,想固化也不容易啊。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
15楼#
发布于:2007-06-29 11:34
实现签名的验证功能 好像也是一段二进制代码,这段代码不可以固化修改么?

嘿嘿~~
没有战争就没有进步 X3工作组 为您提供最好的军火
xscott
驱动牛犊
驱动牛犊
  • 注册日期2007-06-26
  • 最后登录2010-05-17
  • 粉丝0
  • 关注0
  • 积分151分
  • 威望17点
  • 贡献值0点
  • 好评度15点
  • 原创分1分
  • 专家分0分
16楼#
发布于:2007-06-29 16:12
呵呵。看来VXK在 固化修改 方面已经有所突破了。。
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
17楼#
发布于:2007-06-29 17:15
呵呵...
没有战争就没有进步 X3工作组 为您提供最好的军火
游客

返回顶部