跳至主要内容

NT内核简介——HIPS与现代木马

NT内核简介——HIPS与现代木马 时至今日,Rootkit技术已经广泛应用于木马、安全软件、流氓软件中。现代木马几乎全部是Rootkit木马,而安全软件也几乎都应用了Rootkit技术,臭名昭著的某"XX上网"中也大量应用了Rootkit技术。 以下的"现代木马"均指Rootkit木马.

简介NT内核:

拿我们常用的下载工具迅雷来说.如果没有接口,当迅雷储存文件的时候,就要先把文件转成2进制,然后计算当前可用的空间开始于磁盘的第几柱面...第几扇 区之类的详细信息,然后检查分区的文件系统是什么,检查完以后,针对相应的文件系统采用不同的记录方式,甚至需要检查硬盘的品牌,然后使用对应的控制电流 来让硬盘将指定区域的小磁块磁化成"1"或者"0" 现在来看一幅Windows NT内核的示意图: (细节部分并没有详细画出,这幅图画出了Windows NT内核操作系统中,应用程序执行某些操作时的基本流程图)。
当有了接口,迅雷只需要调用相应的Win32 API,告诉系统,文件的位置和内容,然后Win32 API会被Windows系统继续解释成Native API,经过内核调用KiSystemService处理程序,在SSDT里找到NtWriteFile函数的位置,然后继续调用,进一步被解释成驱动程序指令,传递给文件系统驱动(FSD), 在这之前,如果有过滤驱动,那么先通过过滤驱动,由过滤驱动一层层解释给下一层,最后达到FSD层,之后被进一步解释,直至解释成控制硬盘读写的电流.每 个接口要做的都只是把上一层命令解释给下一层接口,最终难以直接使用的电流控制可以用一条简单易记的接口调用来实现.因而编写软件才显得如此容易. 再介绍一个概念:运行级别(ring).在x86的处理器上(主要是IntelAMD的主流处理器),可以存在四个运行级别ring0-3,Windows NT系列系统(XP/2003......)使用其中的两个,就是ring3和ring0两个级别,用户程序运行于ring3级别,而ring3级别的程序不被允许直接访问硬件,这样一方面也是为了防止程序错误的操作导致系统崩溃或者硬件故障.对应的,系统内核运行于ring0级别,拥有对全部内存区域的访问特权,也可以直接访问硬件. 现在加入运行级别的概念,再重新看一下这幅图: 可能有些乱,我们来整理一下.(以下的"函数",通通替换为"功能",以方便理解.) 1.首先,应用程序产生一个请求,比如他要修改注册表,那么他调用Win32 API接口中的注册表操作相关功能.(RegOpenKey等等),实质是调用advapi32.dll中的相应功能. (Win32 API的功能主要位于kernel32.dll advapi32.dll user32.dll gdi32.dll等库中) 2.advapi32.dll中的功能受到调用,于是他继续解释而调用ntdll.dll中的功能(Native API接口). (Native API的所有功能封装于ntdll.dll,但是ntdll.dll并不是真正的执行者,他的任务只是将调用传到内核.) 3.ntdll.dll中的功能受到调用(NtCreateKey等等),于是他把对应的功能编号存入eax寄存器,然后使用SYSENTER指令,导 致"自陷"(早期使用触发Int 2e中断的方式,不过他们的效果是一样的),KiSystemService处理程序将运行. (这个就像你在银行里取钱,你把存单放到玻璃下面的凹槽里去,然后叫柜员,他会把存单取走,然后给你钱,看起来是你取出了钱,但事实上是银行内部提出的 钱.ntdll.dll就是取钱人,他把功能代号(存单)放到eax寄存器里(玻璃下方的凹槽),然后引发自陷以触发KiSystemService(叫 柜员),柜员就会去实际处理交易(执行对应功能).) 4.KiSystemService从eax寄存器里取出功能代号,在一种叫做SDT的结构中查找对应的Native API函数,这种结构在系统中一共有4个,其中一个叫做SSDT,位于ntoskrnl.exe(或者ntkrnlpa.exe)中,记录了系统关键功能的位置,涉及文件操作,注册表操作,进程操作等.还有一个叫做Shadow SSDT,位于win32k.sys中,记录了和用户与图形界面有关的功能,虽然都不是非常关键的功能,但也包括设置系统钩子等比较"特殊"的功能,另外两个SDT的位置则预留,也就是说,有人工创造SDT的可能.(不过这基本上是没有意义的) 5.找到位置后调用该功能,也就是内核中关于该功能的实际操作被执行,当然,之后还是一层又一层的接口,但通常情况下,这里已经是易于控制的最后一层接口.(某些高级木马使用了Object Hook,也就是说存在更底层的接口被控制的可能)对于注册表操作,他们会被解释成Cm****系列功能,当然最后还是要变成文件操作. 6.最后对一类特殊的调用进行解释,那就是调用驱动程序对象,很多功能最后会涉及到硬件操作,比如写文件.写文件的时候,系统会调用文件系统驱动(FSD), 如果之前有文件系统过滤驱动(FSD FilterDriver),那么会先通过文件系统过滤驱动,并经由他们层层解释后,最后传给底层文件系统驱动(FSD),FSD是易于控制文件操作的最 低一层接口.前面那个例子中,注册表修改的操作最终被解释为写文件的操作(因为修改注册表的本质是修改Hive文件),也要经过FSD,并经由FSD进一 步解释,继续传递给下一层接口. 这样就明白了,在这些调用的传递过程中,任何一个环节遭到了阻断都有可能导致失败.而通过"挂钩"这些关键功能,就可以实现对这些功能的控制. 挂钩有很多方式,但是目的只有一个,就是---比原功能更早获得通知,然后自行决定要不要继续把他传递下去,或者自行决定要不要把包含不利信息的结果传递回去. (就相当于你冒充学习委员,班主任让你查作业,你让真正的学习委员去查作业,真正的学习委员给你报了一串名单,里面有你,你把自己的名字去掉,再交给班主任.这样就可以躲过检查.)

现代木马隐藏自身

比如现代木马隐藏自身,他们可以修改SSDT中的文件操作功能的位置(Nt****File系列功能),让他们指向自己,然后自己再调用真正的文件操作功 能,返回信息时,他们只要把其中包含自身的信息抹掉即可.如图,当这样调用结果返回给应用程序时,其中并不包含自己(灰鸽子),应用程序自然也就不知道灰 鸽子的存在了.
设置"钩子"的位置很多,可以选择Win32 API下钩,可以选择挂钩ntdll.dll中的函数,但这是不保险的,因为他们都处于ring3级别(想起来我们的图了么?),也就是说,你设置的钩子可以被一个普通程序轻易绕过,或者消除. 所以大多数人选择在SSDT/Shadow SSDT下挂钩,或者安装文件过滤驱动等等,这些动作受到ring0保护,普通程序无法查知,也无法修改.(更高级的还有Object Hook) 同理,HIPS类软件使用和现代木马一样的手段,实现对于关键动作的监控. PS:SSM监控关机事件的方法是挂钩Native API:NtShutdownSystem.

HIPS VS 现代木马

最后还有一个疑问,一个程序怎么才能获得ring0的运行级别?方法有很多,可以通过安装驱动(动态加载或者静态写注册表服务键),操作 DevicePhysicalMemory以设置调用门,修改 win32k.sys,以及NtVdmControl,ZwSetSystemInformation等等等等,方法层出不穷. 当现代木马和HIPS都具有ring0级别时,他们之间是公平的,现代木马也可以轻易绕过HIPS的监控,或者彻底破坏HIPS.所以,无论是现代木马还 是HIPS,一旦获得ring0级别,就会全力封堵通往ring0的道路,比如SSM安装好之后就会阻止加载驱动,阻止写注册表服务键等等.现代木马也一 样,运行后大多会阻止加载驱动,防止HIPS或者ARK进入ring0,这样也就是说,谁先抢到了ring0,就会阻止别人进来,如果现代木马已经运行 了,差不多就只能通过另一个操作系统来删除他了. 最后,不得不提到的是内核操作的危险性.多种HIPS或者木马并存时,都会下钩,有可能重复,有可能正好碰在一起.由于在内核的操作已经没有人保证其正确 性了,所以一旦因为设计缺陷出错,就会导致BSOD(蓝屏),这就是为什么"XX上网"会导致莫名其妙的蓝屏,也是安装多种HIPS会出现冲突的原因.

评论

此博客中的热门博文

河南省招生办公室2009年普通高等学校招生艺术类专业考试报名工作的通知

各县(市、区)招办、市区各高中学校:   为了做好2009年普通高等学校艺术类招生工作,现就我省普通高等学校招生艺术类专业考试报名工作安排如下:   一、报名时间   2009年参加河南省普通高等学校招生艺术类专业考试(以下简称"省统考")报名时间为2008年12月1-5日,逾期不予补报。   二、报名地点   凡符合普通高等学校年度招生工作规定中报名条件的考生,凭户口簿、身份证、会考证(或学籍学历证明)等证件到户口所在县(市、区)招办确定的报名点报名。   三、报名办法   1、全省艺术类省统考包括美术类、音乐类、播音与主持艺术类、服装模特类、艺术模特类、空乘类、影视表演类、编导制作类、书法类、体育舞蹈类。报考艺术类专业的考生必须至少选择参加其中一类专业省统考,除音乐、美术类之间不可以相互兼报,其余各专业类别之间可同时报考。   艺术类考生报名点代码统一规定为:90。   2、考生在报名时必须如实填写《2009年河南省普通高等学校招生考生基本信息采集表》,他人不得代为填写。各地招办应按照《河南省普通高校招生考生基本信息标准》(另文下发)采集考生信息,并打印出考生基本信息表,由考生本人签字确认。对艺术类考生以此次采集的信息为准建立考生电子档案,这部分考生报名参加文化课统考时将不再重复采集信息。   3、在报名现场统一采集考生头像照片与身份证图像信息,并作为考生参加艺术类专业省统考和文化统考准考证照片及身份证图像。   4、全省艺术类专业省统考信息采集费按豫财办综[2005]9号文件规定执行。艺术类专业省统考报名考务费按豫教财字[2000]59号文件规定执行,每名考生100元。美术类由省辖市招办收取,音乐类由省辖市招办收取50元,另50元在专业个体测试报名时由考生交考点。播音与主持艺术类、服装模特类、艺术模特类、空乘类、影视表演类、编导制作类、书法类、体育舞蹈类由考生在专业考试时将考试费100元交考点。   四、加强报名工作组织管理   我省所有艺术类考生(含报考独立设置艺术院校核经批准使用校考成绩录取院校的考生)均须办理艺术类专业省统考报名手续并领取专业统考准考证,未参加艺术类专业省统考的考生或参加艺术类专业省统考不合格的考生,不得以艺术类考生的身份参加全国文化课统一考试和录取。由于我省艺术...

揭秘中国内地时尚杂志编辑的真实生活

  一个典型的时尚女编辑的外型通常是这样的:她站在交通拥堵的马路旁,穿得像个party女郎东张西望,一边扬手叫车,一边狂打电话。靠近她,高级香水的味道让人晕眩;讲话内容不着边际,让人无从判断电话那边的人和她到底是什么关系;明星名字叫得亲切随意,英文法文不时上阵,过一会儿还要变种声调。如果有人问上一句:"你做什么工作?怎么穿得像模特,长得像明星?"回答多半是:"啊,我是时尚杂志的编辑。"   时尚编辑的做派和生活方式一向披着华丽外衣,让很多普通人迷惑,大批朝九晚五的OL和稚气未脱的年轻女学生更有无数理由羡慕这个职业:时尚编辑们永远了解最新的时尚潮流;随时有机会接触一线国际品牌、最前卫的设计师和最红的模特;时不时有机会出国采风,短短两年走遍欧洲玩转美国并不新鲜;一年几次季尾,还有机会以低折扣买到名牌……在电影《时尚女魔头》热播之后,读者调查显示,很少有人被"女魔头"的苛刻吓倒,反而是有更多的人疯狂地羡慕时尚行业 ――老板是"魔头"有什么要紧,叫我看门扛包擦地板都没关系,只要让我穿着MarcJacobs的牛仔裤和JimmyChoo的靴子上班――这个时代的物质主义如此直白,毫不掩饰。   时尚编辑们自己却有一肚子苦水:放眼未来,时尚是碗青春饭,大把年轻人在身后奋起直追,前方主编的位子能有几个空缺?静观当下,老板永远不满意;明星永远耍大牌;出国永远没时间在工作之余逛街扫货;据说确实存在一种叫做季尾折扣的东西,只是折扣之后的价格,还是和微薄的薪水之间有好大距离……光鲜靓丽去参加各类时尚酒会,晚上总要回到寒酸的小屋――为什么没钱买房?钱都拿去买去酒会的行头了啊!   初入行的时尚编辑,时时被那些货真价实自己却买不起的大牌围绕。据智联网近期数据统计:目前,中国时尚类媒体助理编辑平均年收入在2~3万元左右;中高级编辑则达到5~12万元,这个数字与国外同事根本无法相比。一个普通时尚编辑,一个月不吃不喝,也未必买得起一件大牌,有限的工资能买得起出席各种派对宴会可以不失礼的行头都属勉强。郁闷之下,不知有多少人暗骂这个奢侈又残酷的世界――可惜这些话说出来没人相信,多半还会被人说成轻狂。   当大众的羡慕和时尚编辑的抱怨都像时尚行业本身一样被"光环化"的时候,...

12月1日:世界艾滋病日

2008年12月1日是第21个世界艾滋病日。本届艾滋病日的主题依然是:"遏制艾滋,履行承诺(Stop AIDS, Keep the Promise)"。 自1981美国研究人员发现世界首例艾滋病病例后,艾滋病在全球范围内迅速蔓延,逐渐成为全球关注的重要公共卫生和社会热点问题。为提高人们对艾滋 病危害的认识,世界卫生组织于1988年1月将每年的12月1日定为世界艾滋病日(World Aids Day),号召世界各国在这一天举办各种活动,宣传和普及预防艾滋病的知识。 链接: 世界艾滋病日历年主题 艾滋病 艾滋病的医学全名为"获得性免疫缺陷综合征" (Acquired Immune Deficiency Syndrome -- AIDS) ,是人体感染了人类免疫缺陷病毒(HIV,又称艾滋病病毒)所导致的传染病。通俗地讲,艾滋病就是人体的免疫系统被艾滋病病毒破坏,使人体对威胁生命的各 种病原体丧失了抵抗能力,从而发生多种感染或肿瘤,最后导致死亡的一种严重传染病。这种病毒终生传染,破坏人的免疫系统,使人体丧失抵抗各种疾病的能力。 当艾滋病病毒感染者的免疫功能受到病毒的严重破坏、以至不能维持最低的抗病能力时,感染者便发展为艾滋病病人。随着人体免疫力的降低,人会越来越频繁地感 染上各种致病微生物,而且感染的程度也会变得越来越严重,最终会因各种复合感染而导致死亡。艾滋病病毒的传播途径主要包括血液传播、毒品注射、母婴遗传和 性接触等。国际医学界至今尚无防治艾滋病的有效药物和疗法。 艾滋病病毒 1983年,法国巴斯德研究所的Montagnier等首先从一例淋巴瘤患者的淋巴结中分离出一种病毒,被称为淋巴结病相关病毒 (lymphadenopathy associated virus, LAV),1984年初,美国国立卫生研究院国立癌症研究所的Gallo 等从艾滋病患者的外周血单核细胞(PBMC)中分离到称为人嗜T淋巴细胞病毒Ⅲ型(human T-cell lymphotropic virus type Ⅲ, HTLV-Ⅲ)的病毒。同年,美国加州大学的Levy等也从艾滋病患者的外周血淋巴细胞中分离出一种病毒,称艾滋病相关病毒(AIDS related virus, ARV)。1986年,国际病毒分类委员会...