渗透测试之内核安全系列课程:Rootkit技术初探(五)
今天,我们来讲一下内核安全!
本文章仅提供学习,切勿将其用于不法手段!
目前,在渗透测试领域,主要分为了两个发展方向,分别为Web攻防领域和PWN(二进制安全)攻防领域。在PWN的二进制领域,免杀技术,一直是后渗透利用阶段的重要安全技术之一。
想要免杀,需要了解的安全技术知识包括软件加壳、代码混淆(例如,使用花指令)、隐匿技术(例如,Rootkit技术)、动态加密等内容。
接上一篇文章,我们来继续讲述下 Rootkit技术 的相关基础知识点内容!
今天开始,我们来讲一些实战的东西!
实战的东西,最为实用,也更具有干货的价值!
想要进行 Rootkit 软件开发,我们是一定要基础到 操作系统 的 内核编程 的 !
操作系统 和 特权程序,都是在 内核模式 中运行的!
内核模式代码有权访问系统的任何部分,并且不像用户模式代码那样受到限制。 内核模式代码可以访问在用户模式或内核模式下运行的任何其他进程的任何部分。 许多核心操作系统功能和许多硬件设备驱动程序在内核模式下运行。
写 内核 Rootkit 程序,一定要拥有 驱动程序开发 的 能力!
驱动程序开发,涉及到 相关基础知识点,例如 IRP 、I/O堆栈、WDM驱动、用户层 Rootkit 、内核层 Rootkit 、硬件层 Rootkit 等 !
Rootkit 技术,分为 攻击 和 防守 两种技术!
学会攻击技术,是为了能够进行更加有效的安全防御!
如果我们并不知道 刀剑 为何物,那么,我们怎么会懂得躲避与防御 刀剑的锋芒呢?
Rootkit 的 攻击技术,主要是指 驻留内核底层,控制操作系统行为 的 技术!
Rootkit 的 防御技术,主要是指 驻留内核底层,检测 Rootkit 软件的存在,取证 Rootkit 软件的行为!
攻击和防守,并不分家!攻击和防守技术,作为一名白帽子黑客,是必须要学会的!
Rootkit 技术,涉及到多方面的知识,包括 硬件系统 、 软件系统 、 内核驱动 、Rootkit 技巧(例如,如何绕过安全软件的检测、如何检测到工作于内核层面的 Rootkit 软件)等。
在硬件系统层面,涉及到 保护模式 的 相关知识 !
例如,CPU特权级,我们需要知道 WINDOWS 和 LINUX 都仅实现了 R0(内核层)和 R3(用户层)的特权级别 !这样的设计,是存在问题的 !本应工作在 R1(启动层)的东西,操作系统内核一起,共同工作在了 R0 内核 层 !这样的设计,给了 Rootkit技术 的 生存空间 !给了以驱动形式存在的病毒木马,繁殖传播 的土壤 !用户层木马,配合着内核层木马,共同获得了 操作系统的控制权!结合硬件层面的恶意代码,甚至给 安全软件 造成了很大的 清除压力。为什么,我会说,硬件层面的恶意代码?一些硬件的固件,为了保持与优化硬件性能,是对外提供了接口的!它们提供的接口,给了恶意软件侵入的大门!
想要编写 Rootkit 程序,我们必须要熟悉 CPU 的特权级,只有进入系统内核,Rootkit 软件才能发挥出更大的威力!
想要编写 Rootkit 程序,我们必须要熟悉 内存分页机制,只有了解底层的内核实现,我们才能去 读取 或 更改 页目录表( PDT ) 、页表( PTT )、页( P ) 的 数据内容( 比较重要的,包括 访问权限、读写开关、偏移量、物理地址 等)。
我们前几章,为什么要重点去讲硬件环境和操作系统的基础知识内容呢?
如果缺乏对于这些底层基础知识的足够了解,我们是很难有效打开 Rootkit 的 编程大门 的 !
针对内存空间的访问控制体系,我们必须有足够的了解!
关于内存空间的访问控制体系知识,我们会在下一章继续进行讲解!
这一章,主要是给大家换个口味 !
毕竟,过分的去讲底层知识,可能会让初学者们感到疲惫,轻松愉快的学习环境,才是我想给大家去营造的!
学习 Rootkit 技术,我们要了解 硬件系统的体系架构,我们也要了解 操作系统的体系架构 !
操作系统方面,最为主流的派系,莫过于 Windows 、Uinx 、Linux 这三种类型的操作系统 !
Windows 由 美国 微软公司 设计 并 开发,Windows 操作系统 是一个 基于 窗口化和消息机制 的操作系统。Windows 操作系统,是闭源的!这是它对于程序员而言,不太友好的一点!
Uinx 由 美国 贝尔实验室 设计的,它 和 Windows 设计理念有所不同,它被主要应用于服务器领域!而 Windows 系统 则 更多被应用于 个人电脑 !Uinx 也是闭源的 !这意味者,它对于程序员来说,同样不太美好 !美国 苹果公司 的 MacOS 系统 就是基于 Uinx 系统扩展而来的 !
Linux 由 芬兰赫尔辛基大学的二年级学生 Linus Torvalds 设计开发的 !Linux 系统 最大的优点,就是开源且免费,Linux 系统 对于 程序员来说,是非常友好的!程序员可以通过阅读 Linux 的 内核源码 去更加透彻地理解 Linux 系统 的 底层技术实现 !Linux 和 Uinx 在技术实现的体验层面上来看,是非常相似的 ! Linux 被设计开发之初,就借鉴于 Unix 系统 !但是,Linux 系统 的 源代码 是 独立且开放 的 !
研究操作系统,我们要研究它的底层 !
以 Windows 系统 为例,我们要研究它的 内存分页机制 、服务调用机制(例如,中断分发、异常分发、系统服务分发 等)!
研究 Windows 内核驱动程序,我们要研究它的内核技术实现 !
我们要了解,在 Windows 环境下,开发 驱动程序 软件,我们需要了解两种最为经典的却动程序开发设计模型!一种是 WDM( Windows Driver Model )Windows 驱动程序 模型,一种是 WDF( Windows Driver Framework )Windows 驱动程序 框架 !
以前,比较主流的 Windows 环境下的 驱动程序开发模型,就是 WDM ( Windows Driver Model )Windows 驱动程序 模型 !
现在,比较主流的 Windows 环境下的 驱动程序开发模型,为 WDF( Windows Driver Framework )Windows 驱动程序 框架 !
大家可以理解为,WDF( Windows Driver Framework )Windows 驱动程序 框架 是 Windows 系统环境 下进行 驱动程序开发 的 升级优化版本!
WDF 驱动程序框架,主要包括两个类型,一个是 用户级驱动框架 UMDF( User Mode Driver Framework ),它主要的文件表现形式为 DLL 动态链接库 文件。一个是 内核级驱动框架 KMDF( Kernel Mode Driver Framework ),它主要的文件表现形式为 SYS 系统内核 文件。
WDM ( Windows 驱动程序 模型),是基于 面向过程 的 程序设计方法 进行 驱动程序开发 的 !
WDF ( Windows 驱动程序 框架),是基于 面向对象 的 程序设计方法 进行 驱动程序开发 的 !
在开发普通的 Windows 应用程序时,我们一般需要使用 美国 微软公司 的 SDK 包( 软件开发工具包 ) !
在开发特殊的 Windows 驱动程序时,我们一般需要使用 美国 微软公司 的 DDK 包( 驱动开发工具包 ) !
WDK 包( Windows Driver Kit )是基于 WDF Windows 驱动程序 框架 模式的 驱动开发工具包 !
WDK 包,是 采用 WDF 模式,基于 面向对象的编程方法 进行 驱动程序开发的 编程工具包 !
在 WDK 包 流行之前,人们普遍采用 DDK 包( Driver Developer Kit )驱动程序 开发 工具包 进行 驱动程序 开发工作 ! DDK 包,是基于 WDM Windows 驱动程序 模型 模式 的 驱动开发工具包 !DDK 包,是 基于 面向过程 的 编程方法 进行 驱动程序开发 的 编程工具包 !
在以后的章节中,我们将逐步讲述 Windows 驱动程序 的 开发过程 和 学习方法 !
请关注下一篇,渗透测试之内核安全系列课程:Rootkit技术初探(六)
相关文章:
渗透测试之内核安全系列课程:Rootkit技术初探(五)
今天,我们来讲一下内核安全! 本文章仅提供学习,切勿将其用于不法手段! 目前,在渗透测试领域,主要分为了两个发展方向,分别为Web攻防领域和PWN(二进制安全)攻防领域。在…...
探索C嘎嘎的奇妙世界:第三关---缺省参数与函数重载
在c语言中,我们常常在对有参函数进行传参,这样的繁琐过程,C祖师爷对此进行了相关改进,多说无益,上干货: 1 缺省参数: 缺省参数是指在声明或定义函数时为函数的形参指定一个默认值(默认参数)。在调用该函数时,如果没有指定实参,则…...
docker拉取镜像太慢解决方案
前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 创建daemon.json文件,输入以下信息 vim /etc/docker/daemon.json{"registry-mirrors": ["https://9cpn8tt6.mirror…...
仅凭一图,即刻定位,AI图像定位技术
AI图像定位技术,解锁空间密码!仅凭一图,即刻定位,精准至经纬度坐标,让世界无处不晓。 试试看能否猜中这张自拍照的背景所在?可别低估了A的眼力,答案说不定会让你大吃一惊呢。 近期,…...
跟着刘二大人学pytorch(第---12---节课之RNN基础篇)
文章目录 0 前言0.1 课程视频链接:0.2 课件下载地址: 1 Basic RNN1.1 复习DNN和CNN1.2 直观认识RNN1.3 RNN Cell的内部计算方式 2 具体什么是一个RNN?3 使用pytorch构造一个RNN3.1 手动构造一个RNN Cell来实现RNN3.2 直接使用torch中现有的RN…...
父亲节 | 10位名家笔下的父亲,读懂那份孤独而深沉的父爱
Fathers Day 母爱如水,父爱如山。 相对于母爱的温柔,父亲的爱多了几分静默和深沉。 读完10位名家笔下的父亲,我们就会明白,到底亏欠了父亲多少。 不要让自己有“子欲养而亲不待”的后悔和遗憾, 多给父亲一些爱的表示&a…...
股市中的牛市和熊市是什么?它们是怎么来的?
中文版 股市中的牛市和熊市 定义 牛市: 牛市指的是金融市场中证券价格普遍上升或预期上升的时期。这个术语最常用于股票市场,但也可以适用于交易的其他资产,如债券、货币和商品。特征: 投资者信心增加。交易量上升。积极的经济指…...
基于51单片机万年历设计—显示温度农历
基于51单片机万年历设计 (仿真+程序+原理图+设计报告) 功能介绍 具体功能: 本系统采用单片机DS1302时钟芯片LCD1602液晶18b20温度传感器按键蜂鸣器设计而成。 1.可以显示年月日、时分秒、星期、温度值。…...
springboot-自定义properties文件
在springboot中,如果我们想加载外部的配置文件,但是又不想与其他的配置文件产生明显的耦合,那么我们可以把这些配置文件,单独弄成一个独立的配置文件,比如下面的配置文件,我们想把这些配置移动到user.prope…...
java类的访问权限
在java中,针对类,成员方法和属性,java提供了4种访问控制权限,分别是private,default,protected和public。 这四种访问控制权限按级别由低到高的次序排列分别是privae,default,protected,public private:私有访问权限,…...
【SpringBoot + Vue 尚庭公寓实战】标签和配套管理接口实现接口实现(六)
【SpringBoot Vue 尚庭公寓实战】标签和配套管理接口实现接口实现(六) 文章目录 【SpringBoot Vue 尚庭公寓实战】标签和配套管理接口实现接口实现(六)1、保存或更新标签信息2、根据id删除标签信息3、根据类型查询配套列表4、新…...
Web前端中横线:深入探索与实际应用
Web前端中横线:深入探索与实际应用 在Web前端开发的广袤领域中,中横线这一看似简单的元素,实则蕴含着丰富的设计哲学和技术实现。本文将从四个方面、五个方面、六个方面和七个方面,对中横线在Web前端中的应用进行深入剖析&#x…...
鸿蒙 游戏来了 鸿蒙版 五子棋来了 我不允许你不会
团队介绍 作者:徐庆 团队:坚果派 公众号:“大前端之旅” 润开鸿生态技术专家,华为HDE,CSDN博客专家,CSDN超级个体,CSDN特邀嘉宾,InfoQ签约作者,OpenHarmony布道师,电子发烧友专家博客,51CTO博客专家,擅长HarmonyOS/OpenHarmony应用开发、熟悉服务卡片开发。欢迎合…...
国产MCU芯片(2):东软MCU概览及触控MCU
前言: 国产芯片替代的一个主战场之一就是mcu,可以说很多国内芯片设计公司都打算或者已经在设计甚至有了一款或多款的量产产品了,这也是国际大背景决定的。过去的家电市场、过去的汽车电子市场,的确国产芯片的身影不是很常见,如今不同了,很多fabless投身这个行业,一种是…...
气膜馆的保温措施—轻空间
气膜馆是一种新型的建筑形式,广泛应用于体育场馆、仓储、展览等多个领域。其主要特点是通过气体压力支撑膜结构,实现大跨度无柱空间。为了保证气膜馆在不同气候条件下的使用舒适性和能源效率,保温措施至关重要。以下是气膜馆常见的保温措施及…...
UniVue更新日志:使用Carousel组件实现轮播图效果
github仓库 稳定版本仓库:https://github.com/Avalon712/UniVue 开发版本仓库:https://github.com/Avalon712/UniVue-Develop UniVue扩展框架-UniVue源生成器仓库:https://github.com/Avalon712/UniVue-SourceGenerator 更新说明 今天的更…...
docker和docker compose 部署
一. 将微服务运行在docker上: 1.新建一个空文件夹docker-demo,在里面再新建文件夹app,在app目录下新建一个名为Dockerfile的文件。 2.编写Dockerfile文件 3.构建镜像 4.启动镜像 5.可以访问了。 二使用Dockerfile构建微服务镜像 1.将j…...
鸿蒙轻内核A核源码分析系列六 MMU协处理器(2)
3、MMU汇编代码 在arch\arm\arm\include\arm.h文件中,封装了CP15协处理器相关的寄存器操作汇编函数。我们主要看下MMU相关的部分。 3.1 CP15 C2 TTBR转换表基地址寄存器 代码比较简单,结合下图,自行查看即可。该图来自《ARM Cortex-A9 Tec…...
C# 集合(一) —— Array类
总目录 C# 语法总目录 集合一 Array 集合1. Array 类1.1 搜索1.2 排序1.3 翻转1.4 转换 集合 1. Array 类 //创建方式 //方式一 Array arr Array.CreateInstance(typeof(string), 3); arr.SetValue("lisi", 0); arr.SetValue("zhangsan", 1); arr.SetVa…...
World Map Globe Edition 2
只需点击几下,World Political Map - Globe Edition 2就会在场景添加一个美丽且交互式的3D世界地图。将地球预制件拖动到场景中并自定义外观。 完整的资产,具有强大的可视化功能、示例和丰富的API,适用于构建VR、桌面和移动游戏和应用程序。 主要功能: - 在不访问互联网的情…...
人类重启计划---19500630
一、引言 随着人类社会的发展,我们面临着诸多全球性挑战,如气候变化、资源匮乏、疾病爆发等。为了应对这些挑战,确保人类的生存和发展,我们提出人类重启计划。该计划旨在建立一个可持续、安全和繁荣的新世界。 二、目标 建立可持续发展的社会经济模式,确保资源的有效利用…...
苹果WWDC 2024 带来的 AI 风暴:从生产力工具到个人助理,AI 将如何融入我们的生活?
2024年6月5日,苹果WWDC 2024全球开发者大会如约而至,带来了众多令人兴奋的新功能和新产品。其中,AI 技术的全面融入无疑是最引人注目的亮点。从 iOS、iPadOS 到 macOS,再到 Siri 和开发者工具,苹果正在将 AI 融入到其生…...
SE语法总结博文(附思维导图)
Java中的规范 注释 //单行注释 /*多行注释 */ /**文档注释 */命名规范 命名时可以包含:字母、数字以及 下划线和 $ 符号等等。 但是不能以数字开头,也不能是关键字,且严格区分大小写。 类名:每个单词的首字母大写(大驼峰)&…...
STM32面试题
STM32面试题通常涉及STM32微控制器的特性、功能、应用以及编程知识。以下是一些可能的面试问题: STM32微控制器的基本介绍: STM32微控制器是由哪家公司生产的?STM32微控制器主要应用于哪些领域?STM32的特性和功能: STM32微控制器有哪些主要特性?请描述STM32的GPIO(通用输…...
【单片机】DS2431芯片,读写128个字节,程序
ds2431pt&r stm32读写程序: 部分程序: #include "sys.h" #include "delay.h" #include "usart.h"#include <stdio.h> #include <stdlib.h> #include <string.h>#include "sys.h" #incl…...
[DDR4] DDR 简史
依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解DDR4》 存和硬盘,这对电脑的左膀右臂,共同扛起了存储的重任。内存以其超凡的存取速度闻名,但一旦断电,内存中的数据也会消失。它就像我们的工作桌面&…...
前端 CSS 经典:在 Vue3 中使用渐进式图片
1. 什么是渐进式图片 当我们网站会加载很多图片的时候,有些图片尺寸很大,加载就会很慢,会导致页面长时间陷入白屏状态,用户体验很不好。所以可以使用渐进式图片,先给用户展示模糊图,这些图尺寸小ÿ…...
毕业了校园卡怎么改套餐?
毕业了校园卡怎么改套餐? 毕业生校园卡99元套餐变更8元保号套餐教程 学弟学妹们恭喜毕业呀🎓 校园卡绑定了好多东西注销不掉又不想交高额月租的看过来。 今天一招教你更改校园卡套餐。 中国移动/电信/联通App 打开App,在首页右上角点击人工…...
每一个男人都曾有一个机器人的梦想
每一个男人都曾有一个机器人的梦想 我也有 每一个男人都曾有一个机器人的梦想。对于我来说,这个梦想始于童年时代,那时变形金刚风靡一时,几乎所有80后的孩子都为之疯狂。我是80后中的一员,那时候的科技还远没有如今这般发达&#…...
中望CAD 2025 (ZW3D2025) 简体中文修改版
名称:中望CAD 2025 (ZW3D2025) 简体中文修改版 描述:一款三维CAD设计工具,运行破解补丁ZW3D2025-2024-Patch执行修补。 链接:夸克网盘分享 📁 大小:3.2GB 🏷 标签:#PC软件 #CAD #设…...
公司做网站比较好/360社区app
这里写自定义目录标题一、实验目的二、实验内容三、实验要求四、实验代码实验结果一、实验目的 理解操作系统的进程调度方法,并通过一个简单的进程调度模拟程序的实现,加深对进程调度算法,进程切换的理解。 二、实验内容 1、采用动态优先数…...
河北邢台做移动网站/seo排名赚app官网
前言二叉树遍历是非常经典的算法题,也是二叉树的一道基础算法题。但是在平常的笔试面试中,其出现的频率其实并不是特别的高,我推测是这种题目相对来说比较基础,算是一个基础知识点。比如剑指offer中出现的后序遍历题目,…...
四合一做网站/西安seo招聘
1.如何计算一个函数运行的时间 import time #导入time模块starttime.time() #返回从unix诞生到现在为止的时间,单位是秒 print(start) def haha():print("希望你开心")endtime.time() print(end)print(end-start)输出: RESTART: C:/Users/d…...
建一网站要多少钱/百度收录时间
1.图形化界面启动 右击“计算机”,在快捷菜单中选择“管理”命令,如图所示,打开“计算机管理”对话框。也可以执行“开始”|“控制面板”|“管理工具”|“服务”来启动服务。 改成手动模式,每次电脑开机都需要点击启动服务 2. 命令行启动…...
如何做网站跳转页面/长春网站建设模板
Echarts是一款声明式的可视化图表库,相比于其他图表库,其主要的优势在于易用性、内置丰富的交互以及高性能。本文在Echarts5发布之际,笔者重新学习echarts,主要结合18年Echarts的一篇文章,来对Echarts有一个更深入的了…...
梅花手表网站/百度网盘官网入口
1. 运算符优先级与括号 #define Cube(a) a*a*a 无法解决 Cube(11) ⇒ 11*11*11 ⇒ 4,期待的应当是 8,故将其改造为 #define Cube(a) (a)*(a)*(a) 如此,自身运算的优先级是能解决了,和其他表达式结合时便又存在先运算和后运算的算…...