首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏安全的矛与盾

    windows10内核态提权方法汇总

    前言 近期由于某些项目的原因,突然激发了我对windows内核提权原理的兴趣。 于是就想研究一下,在拿到一个内核态任意代码执行漏洞后,到底有多少种方法常用的方法还能在windows 10上成功提权,针对这些不同的提权方法到底有没有一个比较通用的拦截方案? ,学习三种还能够在windows 10 上成功提权的方法,并写出相对应的shellcode。 环境的准备 为了进行内核态的shellcode测试,那首先就需要先有一个内核态的任意代码执行漏洞。最简单的思路就是写一个驱动,它能够从用户态读取shellcode过来,然后在内核中当作代码执行。 因为token指针只是内核内存中的数据,对于在内核模式中执行的代码来说,将其更改为指向不同的token以赋予该进程一个不同的权限集,这是非常容易的事情。

    2.3K30编辑于 2023-02-27
  • 来自专栏芋道源码1024

    基于 Nginx 实现 10万+ 并发,Linux 内核优化

    来源:http://t.cn/EyQTMwG 由于默认的Linux内核参数考虑的是最通用场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数,是的Nginx可以拥有更高的性能 ; 在优化内核时,可以做的事情很多,不过,我们通常会根据业务特点来进行调整,当Nginx作为静态web内容服务器、反向代理或者提供压缩服务器的服务器时,期内核参数的调整都是不同的,这里针对最通用的、使Nginx 支持更多并发请求的TCP网络参数做简单的配置; 首先,你需要修改/etc/sysctl.conf来更改内核参数。 TIME_WAIT状态的链接存在; ner.ipv4.tcp_keepalive_time = 600 #当keepalive启动时,TCP发送keepalive消息的频度;默认是2小时,将其设置为10 net.core.rmem_max = 12582912 #表示内核套接字接受缓存区较大大小。 net.core.wmem_max = 12582912 #表示内核套接字发送缓存区较大大小。

    3.5K30发布于 2018-12-25
  • 驱动开发:Win10内核枚举SSDT表基址

    三年前面朝黄土背朝天的我,写了一篇如何在Windows 7系统下枚举内核SSDT表的文章《驱动开发:内核读取SSDT表基址》三年过去了我还是个单身狗,开个玩笑,微软的Windows 10系统已经覆盖了大多数个人 看一款闭源ARK工具的枚举效果:图片直接步入正题,首先SSDT表中文为系统服务描述符表,SSDT表的作用是把应用层与内核层联系起来起到桥梁的作用,枚举SSDT表也是反内核工具最基本的功能,通常在64位系统中要想找到 图片那么如果将这个过程通过代码的方式来实现,我们还需要使用《驱动开发:内核枚举IoTimer定时器》中所使用的特征码定位技术,如下我们查找这段特征。 ,qword ptr ds:[rdi+r10] | 4D:631C82 | movsxd r11,dword ptr ds:[r10+rax*4] ,qword ptr ds:[rdi+r10] |4D:631C82 | movsxd r11,dword ptr ds:[r10+rax*4]

    1K20编辑于 2022-11-18
  • 来自专栏软件技术交流

    安卓10如何循环保存上层及内核日志

    1,安卓10使用logcat不会默认保存内核日志,需要配置属性ro.logd.kernel=true 2,在init.rc中创建启动抓取日志的服务,如下: #add for get aplogs on

    1.3K30编辑于 2023-05-16
  • 来自专栏FreeBuf

    内核漏洞利用:通过WARBIRD在Windows 10上提升权限

    该漏洞还被Microsoft标记为“Wont-Fix”,意思就是32位的Windows 10 Creator版本仍然存在漏洞。 漏洞概览 根据披露出的消息,我们可以了解到这个漏洞影响了32位Windows 10 Creators版本的更新。 这个漏洞的存在是由于一个新的信息类“WARBIRD”被添加到NtQuerySystemInformation中,但是这个类在32位Windows 10上被错误处理了。 搭建实验环境 为了能搭建实验环境,我们需要一些虚拟机: Windows 10 Creators Update x86 - 这是靶机 带有WinDBG的Windows系统 - 这个供调试使用 在靶机上,我们需要使用以下命令启用 重新启动靶机后,在WinDBG中会打开内核调试会话,并且会在利用过程中更容易地探索内核状态: ?

    2.3K80发布于 2018-02-26
  • 来自专栏嵌入式ARM和Linux

    Linux内核10-list_head和hlist_head的理解

    内核为什么设计这么2个双向链表呢?使用它们有什么好处?它们的使用场景分别是什么呢? 让我们一一阐述: 设计目的 内核中大量使用数据表,为了更好的管理这些表,必须满足: 所有操作都是原子的,不能受到并发的影响。 访问时间尽可能短,提高内核查找匹配速度。 适用场景 list_head结构组成的列表适用于对遍历时间要求比较严格的地方,比如进程的管理。 hlist_head和hlist_node主要用于散列表中,因为内核中存在大量的hash表,使用这种方式实现的散列表因为少一个指针,可以节省一半的空间。 static struct net_device *devices; static int hlist_module_init(void) { const int dev_num = 10

    3.5K21编辑于 2022-08-10
  • 来自专栏运维小路

    Linux内核-什么是内核

    让我们了解和熟悉基本的Linux内核相关的信息,Linux内核我们主要从以下几个方面来讲解: Linux内核-什么是内核(本章节) Linux内核-内核参数 Linux内核-proc文件系统 Linux 内核-sys文件系统 Linux内核-tmpfs文件系统 我们都知道安卓手机,但是安卓手机有很多厂商。 什么是Linux内核 Linux 内核是Linux操作系统的核心部分,它是一个自由和开放源代码的类Unix操作系统内核。 升级内核 在智能手机早期,有一个概念叫刷机就是给手机更换操作系统,实际上和升级内核差不多。 Linux内核的官方网址就是https://www.kernel.org/ 本地内核文件 我们在Linux基础-linux目录介绍过/boot目录就是内核相关的的目录,这个是未升级内核之前的目录结构,可以和上面的内核版本进行对应

    5.4K10编辑于 2024-11-01
  • 【Linux内核内核编程】Linux内核的组成

    作为全球应用最广泛的开源操作系统内核,Linux内核不仅支撑着Android系统、云计算平台和超级计算机,更是理解现代操作系统原理的最佳实践样本。 一、源代码目录:打开内核世界的地图​ 典型内核源码目录结构(以Linux 5.15为例): linux-5.15/ ├── arch/ # 硬件架构代码(x86, arm, riscv 完全公平调度(CFS,针对普通进程):​ 给每个进程一个 "虚拟运行时间",优先运行时间短的进程​ 例子:同时开 10 个网页,CFS 让每个网页标签轮流获得 CPU 时间,避免某个标签卡死整个浏览器​ 3)​ 3.2 内存空间划分(以 32 位系统为例)  +------------------+ 4GB(虚拟地址空间) | 内核空间(3-4GB) | 所有进程共享,存放内核代码/数据 +----- 类比:​ 用户空间像普通居民区,内核空间像保护区。

    1.5K11编辑于 2026-01-21
  • 来自专栏韩曙亮的移动开发专栏

    【Linux 内核】编译 Linux 内核 ⑦ ( 安装内核模块 | 安装内核 | 重启系统 | 查看当前内核版本 )

    文章目录 一、安装内核模块 二、安装内核 三、重启系统 四、查看当前内核版本 一、安装内核模块 ---- 确保 Linux 内核编译完成 , 没有任何报错之后 ; 参考 【Linux 内核】编译 Linux 内核 ⑥ ( 安装 OpenSSL | 安装其它依赖库 | 内核编译完成 ) 博客 ; 进入 Linux 内核源码的根目录 , 执行 sudo make modules_install 命令 , 安装编译好的内核模块 x86/crypto/chacha-x86_64.ko INSTALL arch/x86/crypto/crc32-pclmul.ko INSTALL arch/x86/crypto/crct10dif-pclmul.ko ---- 内核模块安装完成后 , 执行 sudo make install 命令 , 安装内核 ; 下面的内核安装过程会持续很长时间 ; 内核安装过程 : root@ubuntu:~# cd ---- 重启之后 , 在命令行终端执行 uname -a 命令 , 查看当前的内核版本 , 发现当前内核版本已经

    20.8K50编辑于 2023-03-30
  • 来自专栏HeaiKun

    内核和微内核

    内核 所有的内核代码都编译成一个二进制文件,所有的内核代码都运行在一个大内核地址空间里,内核代码可以直接调用和访问,效率高且性能好。 微内核 把操作系统分成多个独立的功能模块,每个功能模块之间访问需要通过消息来完成,因此效率没那么高。 宏内核和微内核的架构图如下: ? 宏内核和微内核的架构图 现代的操作系统中 windows 采用的就是微内核的方式,内核保留操作系统最基本的功能,进程调度,内存管理,通信等模块,其他功能放到用户态来实现。 Linus当初在设计Linux操作系统时采用的是宏内核架构。但是Linux在20年来的发展中,不断融入微内核的一些精华设计,如模块化设计,抢占式内核,动态加载内核模块等。 和微内核实现的模块化不一样,它和静态编译的内核函数一样,运行在内核中。

    2.8K20发布于 2020-07-07
  • UCOSIII内核 VS FreeRTOS内核

    UCOSIII内核 VS FreeRTOS内核 UCOS-III和FreeRTOS都是优秀的实时操作系统内核,但它们在设计哲学、性能和适用场景上有显著区别。 就像交警可以为卡车分配10分钟,为轿车分配1分钟,更加公平合理。 特点:调度策略更丰富,在处理多个同等重要但执行时间不同的任务时,控制更精细。 (A的时间片较长,为10ms) 任务B |**|__________________|... (B的时间片较短,为2ms) 任务C |______|******|_______|... 结果:可以裁剪到非常小(ROM ~6-10KB),非常适合资源极其受限的MCU。 UCOS-III: “完整套装” 哲学:功能完整。内核提供了丰富的功能,开箱即用。 内核架构 微内核,模块化 宏内核,集成化 FreeRTOS更灵活,UCOS-III更完整。 任务调度 固定时间片轮转 可定制时间片轮转 UCOS-III在调度上更精细。

    69610编辑于 2026-02-02
  • 来自专栏程序IT圈

    Linux 内核 vs Windows 内核

    操作系统核心的东西就是内核,这次我们就来看看,Linux 内核和 Windows 内核有什么区别? ---- 内核 什么是内核呢? 所以,这个中间人就由内核来负责,让内核作为应用连接硬件设备的桥梁,应用程序只需关心与内核交互,不用关心硬件的细节。 ? 内核 内核有哪些能力呢? 还有一种内核叫混合类型内核,它的架构有点像微内核内核里面会有一个最小版本的内核,然后其他模块会在这个基础上搭建,然后实现的时候会跟宏内核类似,也就是把整个内核做成一个完整的程序,大部分服务都在内核中, ---- Windows 设计 当今 Windows 7、Windows 10 使用的内核叫 Windows NT,NT 全称叫 New Technology。 ,内核中抽象出了微内核的概念,也就是内核中会有一个小型的内核,其他模块就在这个基础上搭建,整个内核是个完整的程序; Linux 的内核设计是采用了宏内核,Windows 的内核设计则是采用了混合内核

    20.7K30发布于 2021-03-07
  • 来自专栏韩曙亮的移动开发专栏

    【Linux 内核】宏内核与微内核架构 ( 操作系统需要满足的要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )

    文章目录 一、操作系统需要满足的要素 二、宏内核 三、微内核 四、Linux 内核动态加载机制 一、操作系统需要满足的要素 ---- 电脑上运行的 操作系统 , 是一个 软件 ; 设备管理 : 操作系统需要 ---- 宏内核 : 内核代码 编译成 二进制文件 , 内核 运行在 一个 大内核 地址空间 中 , 可以 直接 访问 , 调用 内核代码 , 这种内核优点是 效率高 , 性能强 ; 下图中 , 最上层是 " 系统调用 " , 中间是 " 宏内核 " , 最下方是 硬件层 ; 宏内核优点 : 设计简单 , 性能高 ; 三、微内核 ---- 微内核 : 将 操作系统 拆分成 多个 独立功能模块 , 这些 进行通信 , 微内核优点 : 稳定性好 , 实时性好 ; 微内核缺点 : 高度模块化 , 模块之间只能通过消息传递信息 , 效率低 ; 四、Linux 内核动态加载机制 ---- Linux 内核模块动态加载 , 必须 遵守规定的接口 , 来访问内核 , 这样 开发内核模块 , 变得 更加容易 , 方便 ; 与平台无关 : 内核模块 可以 设计成 与 平台无关的 模块 , 如 : 文件系统 ;

    5.8K30编辑于 2023-03-30
  • 来自专栏用户画像

    1.4.1 大内核和微内核

    有关这个 问题的回答,形成了两种主要的体系结构:大内核与微内核。 大内核系统将操作系统的主要内容模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能的系统服务。 将 操作系统内核分为基本进程管理、 虚存、I/O与设备管理、IPC、文件系统等几个层次,继而定义层次之间的服务结构,提高操作系统内核设计上的模块化。 为解决操作系统的内核代码难以维护的问题,于是提高了微内核的体系结构。它将内核中最基本的功能(如进程管理)保留在内核,而将那些不需要再核心态执行的功能移到用户态执行,从而降低了内核的设计复杂性。 而那些移 除内核的操作系统代码根据分层的原则被划分为若干服务程序,他们的执行相互独立,交互则都借助于微内核进行通信。 微内核有效地分离了内核与服务、服务与服务,使它们之间的接口更加清晰,维护的代价大大降低,各部分可以独立地优化和演进,从而保证了操作系统的可靠性。

    2K40发布于 2018-08-24
  • 来自专栏运维小路

    Linux内核-内核模块&参数

    让我们了解和熟悉基本的Linux内核相关的信息,Linux内核我们主要从以下几个方面来讲解: Linux内核-什么是内核 Linux内核-内核模块&参数(本章节) Linux内核-proc文件系统 Linux 内核-sys文件系统 Linux内核-tmpfs文件系统 Linux内核升级,在运维生涯中,其实并不常见。 内核模块 内核模块是一种可以在运行时动态加载到操作系统内核中的软件组件。 二、常用命令 1.查看内核模块 #查看当前系统加载的内核模块 lsmod #这个目录下就是Linux服务器有的内核模块 /lib/modules/内核版本/kernel 2.添加新的内核模块 [root 内核参数 我们刚刚介绍的内核模块,主要是为了从系统层面支持某个功能,而内核参数,则可以理解为在实现某个具体功能的参数,只是这个参数是内核层面的。

    2.2K10编辑于 2024-11-01
  • 来自专栏韩曙亮的移动开发专栏

    【Linux 内核】Linux 内核源码结构 ( 下载 Linux 内核源码 | 使用 VSCode 阅读 Linux 内核源码 )

    文章目录 一、下载 Linux 内核源码 二、使用 VSCode 阅读 Linux 内核源码 一、下载 Linux 内核源码 ---- 参考 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的 Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 ) 博客 , 下载 Linux 5.6.18 版本的内核源码 ; 5.x 内核源码下载地址 .x/linux-5.6.18.tar.gz 下载完 Linux 源码后 , 如果在 Windows 系统中解压 , 需要使用管理员权限在 命令行终端 中解压 , 参考 【错误记录】解压 Linux 内核报错 : 其系统调用是相同的 , 新的版本可能会增加新的系统调用 ; 设备文件 : 各内核版本的设备文件都是相同的 , 但是 内部接口 可能不同 ; 二、使用 VSCode 阅读 Linux 内核源码 -- , 点击 " 选择文件夹 " 按钮 , 此时就可以在 VSCode 中阅读 Linux 内核源码 ;

    29.1K30编辑于 2023-03-30
  • 来自专栏Windows技术交流

    win10内核代系从NT6.4到NT10.0

    Win10在2014年问世,刚问世的3版内核是NT6.4 分别是 v6.4.9841 v6.4.9860 v6.4.9879 从9888开始,大版本从NT6.4改名为NT10.0了 NT 版本市场名称版本发行日期RTM Build NT6.4Windows 10Technical Preview (v6.4.9841)2014年10月1日9841 Technical Preview (v6.4.9860)2014年10月21日9860 Technical Preview (v6.4.9879)2014年11月13日9879 NT 10.0Windows 10Technical 家庭版 Windows10专业版 Windows10企业版 Windows10教育版2015年7月29日10240 NT6.4的最后一个版本是Technical Preview (v6.4.9879 镜像里的setup.exe升级到Windows 10 Technical Preview (v6.4.9879)就可以了。

    4.5K80发布于 2020-03-23
  • 10 万 TPS 支撑:Linux 电商架构内核优化与运维方案

    10 万 TPS 支撑:Linux 电商架构内核优化与运维方案 一、引言:为什么 10 万 TPS 是分水岭? 这种流量特性对系统的底层支撑能力提出了极致要求——10 万 TPS 不仅是业务层面的性能指标,更是系统从应用层到内核层全链路能力的“分水岭”。 而云原生架构基于 Kubernetes 的弹性伸缩、容器化的资源隔离特性,为支撑高并发提供了基础,但仅靠架构转型不足以突破 10 万 TPS 阈值——核心瓶颈往往隐藏在 Linux 内核的默认配置中,这也是本文的核心聚焦点 :通过 Linux 内核级参数优化,结合容器运行时调优与全链路运维闭环,构建稳定支撑 10 万 TPS 的电商底座。 示例流水线流程:GitLab CI/CD 触发 → 部署测试环境 → Chaos Mesh 注入故障 → k6 执行 10 万 TPS 压测 → 收集内核与应用指标 → 生成测试报告。

    65610编辑于 2025-12-24
  • 来自专栏Sorrower的专栏

    内核必须懂(四): 撰写内核驱动

    首先是源码部分, 这里由于是内核, 所以c库的函数就不能用了, 比如printf这样的, 要用printk替代, 这里的k就是指kernel. CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel", 很明显这是一个内核编译的参数没生效 dmesg ---- 最后 目前来看, 内核驱动模块好像比用户态程序难不了多少, 但是当程序复杂下去, 调试就会越发困难了, 不比用户态.

    1.8K20发布于 2019-04-01
  • 【Linux内核内核编程】Linux2.6 后的内核特点

    1.2 内核抢占:让内核 “灵活刹车” 2.6 之前的内核只有在用户态才能抢占,内核态代码一旦运行就必须完成,这在实时场景中很危险(比如打印机卡纸时内核可能无法及时响应)。 2.6 实现了完全内核抢占: 即使在内核处理复杂操作(如文件系统读写)时,也能被高优先级任务打断,就像开车时随时能踩刹车。 ZRAM 直接在内存中压缩不常用数据,速度比 swap 快 10 倍以上: 比如手机同时开 10 个 APP 时,后台 APP 的数据会被压缩存储,前台 APP 依然流畅。 设备树用 DTS 文件描述硬件,就像给内核一份 “硬件说明书”: 开发新板子时只需修改 DTS 文件,无需改动内核代码,大大加快嵌入式设备开发速度。 2.6 之后内核进化史:

    48310编辑于 2026-01-21
领券