Windows RootKit进程隐藏与检测技术的研究

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
隐 藏 。W i d ws 统 将 所 有 的进 程 对 象E R no 系 P OCE S S
在 内核模式下, n o oKi Wid ws Ro t t 进程隐藏方法主 要有通过挂钩系统服务描述表(S )B S DT  ̄ 直接修改操作 系统用于监控系统资源的数据( K M技术1 D O 。 221通过挂钩系统服务描述表( S ) .. S DT, 实现进程
操作 系统通 过创建相关 内核对象 来登记 和审计 系 统资源, OM则通过修改这些内核对象来隐藏特定资 DK 源, 即主要通过修改活动进程列表实现进程隐藏 。
& E rcs ; p poes ) R mo e nr Is( L S NT Y) P HAR e v E t . t P I TE R ( UC yi ( ( )
p po e s x ); E rc s +0 A0)
N Q e S s mlfr in t u r yt noma 修改其返回数据, 除需要隐 y e o 删 藏的进程 的信息。 22 .2通过直接 内核对 象操作技术( O , . DK M) 实现进
摘 要 : 目前木马制造者趋于利用R oKt oti 技术来 隐藏它们 的进程 ,危害信息与网络安全。重点从用户和 内核两种模式深入 剖析 Wid ws o t t n o oKi R 隐藏进程 技术 ,并提 出基于进程表 的综合检测机制。测试 证明:只有从用户和 内核两种模式下应用
多 种 进 程 表 检 测 技 术 , 才 是 安全 检 测 隐藏 进 程 更 为 有 效 的方 法 。
收 稿 日期 :2 1-11 0 10 —1
h e t he= ra R m t hedh e oe rc R mo T rd Cet e oe ra(R m t oe e e T P
s, s NUL ,,f SaAd r sL b i R moe , L0p n tr d, z iFl e t, NUL ) p e 0 L; 21年5 0 1 月
C e tR moe h ed rae e tT ra 函数在远程进程中创建一个线程,
将其注入其他进程( 地址pn tr d) fSaAd r 的内存空间, 最后 这个d l l 里的代码就成为其他进程的一 部分来实现 了自
身 的 隐藏 。
值就是 当前进程 的F I L NK了( 如图1 所示) 。这个值 因系
p z b i Re t) s LiF l mo e通过Wr e r c sMe r 函数 e i P o e s moy t 载 入 内 存 , 后 通 过 “线 程 注 入 ”技 术 , 使 用 然 即

①定位双向链表, 确定当前进程 。Wid ws n o 具有唯 的 内核处 理器控制块结构( RC ) 总是位于 内 KP B , 它 存地址0 fdf2 处, xffl0 这个地址偏移0 14 x 2 就是指向当前 E HE E D的指针, T R A 从这个E HR A 再往下偏移一个 T E D
K y od : n o s o t i rm t he d net n D o po es i e r sWi w oK t e oe ra jc o ; k m; rc s s w d R ; t i i L t
随着 网络 的普及与发展 , 网络安全 问题 日益突 出,

() 1 用户模式下, 修改程序执行路径。 () 2 内核模式下 , 制和修改操作 系统 内核 结构和 控
代码。
部 分 木 马制 造 者 已将触 角 深 入 系 统底 层 来 隐 藏 木 马,
通 过 修 改 操 作 系 统 内核 来 隐 藏 自己, 骗 用 户 , 就 是 欺 这
R oKi ot t 。Ro t t oKi 的隐藏特性严重影 响系统的安全性
和可靠性, 而Ro t t 程 隐藏 已成 为管 理 员和 安 全 检 oKi 进 测 软件 所 面 临 的 最为 迫 切 的 安全 威胁 。
关键词 :Wid w o t t n o s o ;远程线程注入 ;Dk m:进程表 R Ki o
Re e rh o id ws oKihd e r c s n ee t ntc n lg s ac nW n o Ro t t id np o e s dd tci h oo y a o e
a t o k. i ril o u e n i het o m o e fus ra d k r e, hst ssa ays si dealtehide p o e stc n o y i ndnew r Th satcef c s so usngt d so e e lt i w n n he i n l e n t i h d n r c s e h olg n W id n owsRo t t I lopon u edee to c a im sd npr c s Lit Te t e ul o e h t nl p yngv ro r c s Lit o Ki. t s ito tt t cin me h s ba e o o e s s. s s t pr v dt a ya pli a usp o e s s a h n r s o i d tci e h lg fo t om o e fu e n r e a et s ehide o e sm o es fl n fe tv l. ee t tc noo y r m d so s ra dKe l nw e t d npr c s r a ey a de ci ey ng w n c h t
Wid ws oKi no t t Ro 是一个程序 的集合, 用于实现 自 身及系统中特 定资源和活动 的隐藏, 破坏可信任计算机 的完整性 。攻击者通过在系统 中种植R oKi维护一 ot t ,
个 系 统 后 门, 以管 理 员 权 限控 制 系 统 , 且 通 过 隐 藏 进 并
程 、文件 、端 口、句柄、注 册表项 、键值等来 隐藏攻
击行为。
程线程注入dl l 是该技术中最佳方法, 为进程 隐藏提供了
2 W d w o t 进程隐藏技术分析 o s R o K i n i t
从运行环境和隐藏手段看, 主要可归结为2 : 类
更大的灵活性 。 21 .2远程线程注入dl . 1隐藏进程 , 远程线程注入dl l 其意义是将dl l 文件嵌入到正在运 行的系统进程当中。d l l 文件是 由多个功能函数构成, 它 并不能独立运行, 所以在进程列表 中并不会出现d 。 l 1
Li e h n u Zh ng o g
B in o a o ac l g f lc o i sine n cn lg , e ig 10 7 , hn e igv ct n lol eo eet nc cec d eh oo yB in ,0 16 C ia j i e r a t j
程 隐藏
R mo e nr L s ( L S NT Y ( UC AR e v E t it P I T E R ) P H ) y ( ( p poes 0 8) E rcs x 8 ; + ) 通 过 调用 P L o u Po es y rc sI例 程 得 到 s o k p r csB P o esd 指 向指 定Po es 的E R E S 象 的指 针 , 后 调 用 rc sl d P OC S 对 然 R m v E t Ls 其从 链 表 上摘 下 。 e o e nr i 将 y t
下 来 ,t urS s mlfr t n 数最 终 遍 历 该链 表 返 N Q e yt noma o  ̄ y e i
S DT 是 函 数 地 址 表 , 中 存 放 了 所 有 系 统 服 S 表 其
Hale Waihona Puke Baidu
务 函 数 的 入 口地 址 。系 统服 务 调 度 程序 通 过 查 找 S DT S 来调用 相应的系统服 务。因此, o Ki 以将 Ro t t 可 S DT中的系 统服 务地址 替换 为 自己代 码 的地址 , S 由 Ro t t 码调 用 真正 的系 统服 务 并对 结果 作相 应 o Ki 代
处 理, 过 Ho k 再通 o 劫持 Z wQu r S se nomain ey y tmlfr t 或 o
回进程相 关的信息, 将无法检测到从P A t e ik s ci L n 链表 v 中摘下的当前进程 。部分实现代码是 :
nSau ttts=P L o u P o es y rc sl( r csl, s o k p rc sB P o es Po esd d
隐 藏
链 接 到AC i e r C s Li k , 链 表 由一个 未 导 tv P o e n 上 但 s 出 内核 全 局变 量P Ac i e r c S He d通 过遍 历 s tv P o e s a , Ac v P o es ik t e rc sLn 可以获得所有 的进程信 息, i 如果将一 个 当前进程E R C S 对象从P Acie ik P O E S s t L n 链表上摘 v
主要是通过远程线程注入技术 。 21 远程线程注入技术 .1 . 是指通过在另一个进程 中创建远程线程的方法进 入进程 的内存地址空间。其 核心是产生一个特殊的线 程, 这个线程能够将一段执行代码连接到另一个进程所 处 的内存空间里, 作为另一个进程 的其中一个非核心线
程 来 运 行, 而达 到交 换 数 据 隐藏 自身 的 目的 。其 中远 从
A s a tA r e t e ei es f r a r n s e o t it h i e o ie h i po es n a te ae fno  ̄ o bt c: t e n s n r o o n r p s t d g T j Hos t dt ue h o te nq d e rc s a dh r h f yo fr i h ee o t R K c u t h t r m s t i m n
S SN1 7 . 4 8 6 21 3
CN ' 49 4/ 1 . 9 T
中国 观代欺有 备 装
2 19 总 第期 0年1 12 第 期 1
W o sR K d w o 进程隐藏与检测技术的研究 i n o i t t
刘 正宏
北京 电子科技职业学 院 北京 1 0 7 016
作者简介:刘正宏,硕士,高级讲师 ,系主任 。
2 4
2 1 年第9 01 期
总 1期 第2 1
中 观代 装 国 孝 备
() 2进程 隐藏实现
S 1 24 C 1 —3 S 1 18 N6 4/- N 499 1 7

首 先 把 一 个 实 际 为木 马 主 体 的dl文 件 ( 数 l 参
这两种方式都可 以通过挂钩系统重要 函数模块、 修 改系统中重要数据结构等途径, 对系统进程的相关信 息进行劫持与修改, 以达隐藏进程 的 目的。 21 . 修改程序执行路径, 实现进程隐藏
在 用 户 模 式 下 , 改 程 序 执 行 路 径 , 现 进 程 隐 藏 修 实
1 W d w o t i介 绍 i osRoKt n
统不 同而各不相同, n o 2 0 下是0 A0 n o Wid ws0 0 x , d ws Wi
x 下是 0 8 。 p x 8
2 . 2控制和修改操作系统 内核结构和代码, 实现进
程 隐藏
② 从P Ac i e i k 表上 摘 下 当前进 程, tv L n 链 s 实现
相关文档
最新文档