Liang的Rootkit习作-ZION
Liang把Rootkit实现习作晒出来,程序测试运行在Windows XP SP2上。除小部分涉及利用Windows或HIPS商业产品中潜在设计缺陷实现隐藏或者逃避的技巧代码已经隐去之外,完整代码可在下面下载,如有指正、交流可以通过chenliang0817@hotmail.com与他取得联系。Liang对习作的简单介绍如下:Win32平台下的Rootkit习作 Codename: Zion by LiangZion是一套Rootkit攻防函数库,我(Liang)负责全部的攻击部分,检测部分由另一实习生同学完成,能够躲避常见的安全检测工具这是本次练习中的关键任务,针对这些流行的内核级Rootkit隐藏技术,我一一对它们进行了实现。用户可通过命令行输入特定命令,达到特定的隐藏目的,效果图如下: 目前的实现包括:A 挂钩系统服务描述表隐藏进程与文件 用户可在用户模式下自定义挂钩函数,放在缓冲区中传入内核态。进入内核态后,程序分配一段非分页区存放该例程。利用这种方式,即使检测软件发现了SSDT HOOK的存在,也无法得知该HOOK 例程属于哪一驱动模块(因为分配的这段非分页区不在任何模块的地址空间范围中),达到了其隐藏目的。因而是本次练习的一个亮点所在。B DKOM方式隐藏进程、驱动模块 对于DKOM,没有很好的创新思路,唯一的原则便是分析检测工具的原理,然后制定相应的执行体对象修改方案。在隐藏驱动以及注册表部分可以绕过ICESword检测。然而,IceSword检测进程使用了四种不同的方式,其中直接搜索内存的方式无法通过DKOM方式绕过。C 驱动派遣例程挂钩方式隐藏网络连接信息 在《Subverting the Windows Kernel》中给出了隐藏TCP连接的示例代码,本次练习中我在此基础上对其进行了完善,使其能够绕过一些Anti-rootkit如IceSword的检测(原版并不能绕过),并增加了过滤功能(例如用户可自定义需要隐藏的ip信息与端口,操作非常友好)。另外,逆向了tcpip中查询连接信息的代码,分析出UDP的相关查询结构,实现了UDP通信的隐藏。D 文件过滤驱动实现隐藏文件或文件夹 修改自Winodws DDK的Sample Code: Sfilter。 删去了很多功能:例如,动态绑定卷等。 这种方式与驱动派遣例程挂钩原理类似,并没有实际意义,仅仅为了Zion的完整性而加入。E 挂钩注册表储巢查询例程实现注册表隐藏 参考Pediy的《也谈rootkit 注册表信息隐藏》。F 对检测工具的一点总结 无论是Cross-View检测技术还是扫描内核代码检测Hook的技术,要确保检测结果的正确性,就必须保证检测所采用的技术比Rootkit本身更底层。而Zion Rootkit之所以能绕过IceSword对内核模块、端口信息、注册表的检测,正是因为在隐藏手段上,Zion使用了更为底层的技术。 从本质上讲,内核态Rootkit之所以存在,是因为Windows为了提高查询操作的效率,在内核中预留了许多冗余信息,例如:Windows采用遍历EPROCESS链表的方式枚举进程,然而CPU调度的最基本单位是线程,断链EPROCESS并不会影响到CPU对线程的调度。如果检测工具能够找到CPU调度线程的真实链表对其进行枚举,那么得到的结果必将是准确的(这里排除了Shadow Walker这类Rootkit技术),因为一旦Rootkit断链了CPU调度线程列表,那么被断链的线程将永远得不到执行,这种操作应当视为“删除”,而非“隐藏”。 可以这么说,运行于Windows内核级的所有检测技术,永远是不可靠的。必须比内核级Rootkit优先级别高,才能真正实现可靠检测。将操作系统以虚拟化模式运行,在其之上进行实时监测,是一种比较理想的方法(如North Security Labs 推出的Hypersight RD),因为在这种情况下,Rootkit理论上不可能知道运行在其之上的检测程序的存在。(但是,对于目前最新的硬件级Rootkit,这种检测方式也是不可靠的。比如Bluepill Rootkit) - END by Liang
Liang的Rootkit习作-ZION相关推荐
- Linux UserSpace Back-Door、Rootkit SSH/PAM Backdoor Attack And Defensive Tchnology
catalog 0. 引言 1. Pam后门 2. SSH后门 3. Hijacking SSH 4. Hijacking SSH By Setup A Tunnel Which Allows Mul ...
- 把一个人的特点写具体作文_部编版五年级下册语文习作把一个人的特点写具体教案课件+范文...
第一单元 部编版五年级下册语文第1课<古诗词三首>知识点+图文讲解 部编版小学语文五年级下册第2课<祖父的园子>课文讲解 部编版小学语文五年级下册第3课<月是故乡明> ...
- Metasploit 使用后门和Rootkit维持访问
1.内存攻击指的是攻击者利用软件的漏洞,构造恶意的输入导致软件在处理输入数据时出现非预期的错误,将输入数据写入内存中的某些敏感位置,从而劫持软件控制流,转而执行外部的指令代码,造成目标系统获取远程控制 ...
- Percy Liang、李飞飞等百余位学者联名发布:「基础模型」的机遇与挑战
撰文:赵言,秦红川,程晨 校对:贾伟 随着BERT.GPT-3.DALL-e等超大模型的兴起,自监督学习+预训练模型微调适配方案,逐渐成为主流.这种范式会先在超大规模海量数据上进行自监督的模型预训练, ...
- rootkit 检测报告
#!/bin/bash #function: rootkit 检测报告 #author:zhanglejie #date:2014/6/30 # #检查路径 if [ ! -d /tmp/ ...
- linux 安全 ***检测 杀毒 rootkit
文件一致性检查 aptitude install tripwire 初始化 tripwire --init 检查 tripwire --check --interactive -V vi 安装杀毒软件 ...
- linux kprobe rootkit 简介
介绍 <linux二进制分析>中提到了使用kprobe来写内核rootkit,还给出了一个简单的源码实现,这里看一下他的源码 kprobe kprobe的介绍可以看下面这几篇文章 介绍:h ...
- linux 预加载 动态链接库rootkit 简介
目录 一.动态链接库预加载型rootkit概述 二.动态链接库预加载型rootkit所用技术 2.1 linux动态链接库预加载机制 2.2 全局符号介入 2.3 rootkit利用的技术点 三.动态 ...
- linux下基于内存分析的rootkit检测方法
0x00 引言 某Linux服务器发现异常现象如下图,确定被植入Rootkit,但运维人员使用常规Rootkit检测方法无效,对此情况我们还可以做什么? 图1 被植入Rootkit的Linux服务器 ...
最新文章
- Spring Boot 的单元测试和集成测试
- 模块计算机类型x64与目标计算机类型X86冲突
- PMP知识点(九、风险管理)
- 如何优雅的链式取值之 MayBe 函子
- 计算SDWebImage缓存大小以及清除
- Confluence 6 用户目录图例 - 使用 LDAP 授权,在用户第一次登陆时拷贝用户
- CY7C68013 USB接口相机开发记录 - 第一天:资料下载
- 静态方法多次调用内存_JVM内存结构图(1.8之后发生了什么)
- 小刘的编程学习技巧分享
- 汽车百科系列之(十一): 汽车天窗是干嘛用的
- PTA 1075 链表元素分类
- 《MLB棒球创造营》:走近棒球运动·德州游骑兵队
- 笔记本锁定计算机怎么解锁,笔记本电脑键盘怎么解锁呢
- Halcon形状模板匹配
- 算法导论程序24--直接寻址表(Python)
- IDEA驼峰式命名插件CamelCase
- Google浏览器首页被篡改(非常有效的解决方法)
- 虚拟机未关机状态下关闭windows主机导致网络连接不上,虚拟机中无ens33文件的解决办法
- base64字符串和图片相互转换
- trados怎么导出html,[转载]关于Trados的组成和界面
热门文章
- C++11 in Qt-安晓辉-专题视频课程
- c语言编程曹冲称象,《曹冲称象》教学设计
- Win10 + WSL2 (ubuntu18.04 LTS) + vscode开发环境,win上linux图形化界面劝退实录
- sws_scale()
- Android之更换头像
- JavaScript 教程「9」:DOM 元素获取、属性修改
- java十进制转化为二进制
- 蛮力法(Brute Force)
- Vissim与matlab联调环境配置
- hdu 3374 String Proble