网站大量收购独家精品文档,联系QQ:2885784924

Ring3 NT rootkit 新思路.pdf

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ring3 NT rootkit 新思路

Ring3 NT rootkit 新思路 author : baiyuanfan mail : baiyuanfan@163.com August 7, 2005 内容目录: 一、NT rootkit发展的现状 二、ring3 nt rootkit新思路 三、挂钩异步I/O调用实现端口复用 四、在ring3控制iis6的端口 五、隐藏自己:自删除和复活 六、另外一些思路和讨论 附录 一、NT rootkit发展的现状 随着后门攻击与防御技术 的发展,普通的远程管理 程序式的后门早已不能够 适应复杂的环境:防火 墙,安全策略,IDS等。 防火墙限制了程序随意开 放端口或者反弹连接;各 种监测工具列举可疑的进 程文件启动项来发现和杀 死后门。于是rootkit应运 而生。它们具备自我 隐藏好,能够穿越防火墙 等安全设施的特性。 隐藏自己的自启动 键值或其他手段 隐藏自己新增的或 改写的磁盘文件 隐藏自己的进程 提供一个有效穿越 防火墙的通讯手段 (如端口复用) Rootkit需要做 到的一些事情 一、NT rootkit发展的现状 1. ring3范围: 代表作——黑客守卫者(Hacker Denfender) 隐藏自己新增的磁盘文件和注册表服务键值使用hook ntdll.dll 中的nativeAPI实现 存在的问题:这个方法对付普通的管理员检查很有效,然而 对于来自内核的检测者直接进行的驱动级别的列举,完全无 能为力,因为后者不通过被hook过的执行路径。 端口复用通过挂接win32 API WSARecv / ReadFile实现 存在的问题:对新的IIS6无效 一、NT rootkit发展的现状 2. ring0范围,目前很少有实用的系统公开,本文内,不讨论 ring0的rootkit技术。不过,基本的是,ring0的rootkit更强大,更 复杂,但是面对HIDS的挑战时,ring0的hook的危险级被认为比 ring3更高。 3. 因此我们发现,如何设计稳定有效的端口复用和如何对抗来自 于内核态的anti-rootkit的检查,是目前ring3 nt rootkit急需解决 的重要问题。 二、ring3 nt rootkit新思路 整体思路 1. 通过挂接native API实现同步和异步的端口复用 2. 特别的对不能直接挂接2003的iis6加以处理 3. 用自删除的方法代替以往的文件启动项隐藏技术,“没有”代替 “隐藏”,对抗来自内核的静态检查 4. 多线程协作体系解决部分进程权限不足 5. 自己完成大多数必要的控制任务,不和可能暴露我们自己的其 他后门程序协作 6. 印证我的这些新思路:一个测试中的ring3 nt rootkit: byshell v0.67 beta2 完整rootkit系统 端口复用模块 自删除和复活模块 命令解释模块 挂接网络 native API 判断并处理iis6 自删除 截获关机 消息并复活 多线程协作体系 二、ring3 nt rootkit新思路 ?整体思路模式图 三、挂钩异步I/O调用实现端口复用 目的:在被挂接的tcp接收函数返回给应用程序控制以前比较接收到 的数据,如果是客户端发来的激活后门的信号,就夺走这个 socket,通知原来程序连接已经被关闭,并且在这条socket连接上 实现后门,从而做到不影响原来端口上服务的端口复用。 应用程序提交 网络I/O请求 Winsock层 Native层 本地系统服务 Tcp/Ip 底层驱动 (AFD,TDI,NDIS) ring0 提交请求 返回 结果 Native层 本地系统服务 应用程序得到 I/O结果数据 Winsock层 这里红杠显示的地方,我们在ring3有几次拦截I/O结 果返回的机会,if(!strcmp(buff,”暗号”))(dobackdoor();) SPI SPI 三、挂钩异步I/O调用实现端口复用 挂钩同步的网络I/O的方法很简单,在真正的I/O函数返回之后,自 己返回控制给用户程序之前直接比较接收的数据是不是激活信号就 行了。 而对于异步的I/O调用则有两个难点: 在异步IO调用的api函数返回时,数据并未被更新,而是过一段 时间后通过另外的通知完成机制,因此无法在返回用户程序前直 接比较判断缓冲区内容 winsock库在SDK win32API层次上实现了非常多种类的IO模 型,令人困惑不知道该如何挂接 三、挂钩异步I/O调用实现端口复用 1. nativeAPI层次的I/O模型: 通过挂接nativeAPI层次的网络I/O函数,可避免处理那一大堆 的win32API层次IO模型。 我所知所有的windows native api在实现I/O时都是给用户3种 选择。同步IO,event objec

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档