首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux Rootkit如何避开内核检测的

和杀毒软件打架一样,Rootkit和反Rootkit也是互搏的对象。无论如何互搏,其战场均在内核态。 很显然,我们要做的就是: 第一时间封堵内核模块的加载。...我们知道,Linux内核的text段是在编译时静态确定的,加载时偶尔有重定向,但依然保持着紧凑的布局,所有的内核函数均在一个范围固定的紧凑内存空间内。...反之,如果我们调用Linux内核现成的接口注册一个回调函数来完成我们的任务,那么这就是一种正规的方式,本文中我将使用一种基于 内核通知链(notifier chain) 的正规技术,来封堵内核模块。...来吧,我们写一个简单的内核模块,看看效果: // testmod.c #include noinline int test_module_function...很容易,还记得在文章 “Linux动态为内核添加新的系统调用” 中的方法吗?我们封堵了前门的同时,以新增系统调用的方式留下后门,岂不是很正常的想法? 是的。经理也是这样想的。

1.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

针对Linux Rootkit HCRootkit的分析

Lacework Labs 最近发现了一个新的在野 Rootkit。除了释放的内核模块和用户态样本文件外,还针对 Dropper 进行了深入了解。...值得注意的是,ELF Dropper 和内核 Rootkit 在 VirusTotal 上的检出率很低。 通过 mktemp系统调用生成临时文件后,首先将 Rootkit 写入磁盘。...Rootkit Sutersu 其内核模块基于开源的 Rootkit Sutersu修改而来。该 Rootkit 支持内核版本广泛,支持架构多样(x86、x86_64 和 ARM)。...s_hook_local_ip” $s28 = “nf_hook_pre_routing” condition: uint32(0)==0x464c457f and 10 of them } rule linux_mal_suterusu_rootkit...condition: uint32(0)==0x464c457f and all of them } 参考来源: https://www.lacework.com/blog/hcrootkit-sutersu-linux-rootkit-analysis

86510

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

文章目录 一、下载 Linux 内核源码 二、使用 VSCode 阅读 Linux 内核源码 一、下载 Linux 内核源码 ---- 参考 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的...Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 ) 博客 , 下载 Linux 5.6.18 版本的内核源码 ; 5.x 内核源码下载地址...: https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ Linux 内核 5.6.18 版本 : https://mirrors.edge.kernel.org...参考 【错误记录】解压 Linux 内核报错 ( Can not create symbolic link : 客户端没有所需的特权 | Windows 中配置 7z 命令行执行解压操作 ) 博客 ;...不同版本的 Linux 内核 区别 : 系统调用 : 其系统调用是相同的 , 新的版本可能会增加新的系统调用 ; 设备文件 : 各内核版本的设备文件都是相同的 , 但是 内部接口 可能不同 ; 二、使用

23.3K32

混乱的Linux内核实时线程优先

背景 Linux会把进程分为普通进程和实时进程,普通进程采用CFS之类调度算法,而实时进程则是采用SCHED_FIFO或SCHED_RR。...内核线程的优先 Linux内核会将大量(并且在不断增加中)工作放置在内核线程中,这些线程是在内核地址空间中运行的特殊进程。...因此也会把这些内核线程放到SCHED_FIFO中去。 那么问题来了,某个内核线程的实时优先到底该设为多少呢?...所以一般来说,内核开发人员也就是看心情直接随便选一个实时优先。 现在的一些内核实时线程如下: ?...通过只留下这三个接口可以避免开发者们再不停地去随机选取内核线程优先,因为这样本来毫无意义,当然如果需要的话系统管理员还是可以按需调整不同进/线程的优先

3.5K10

深度解读 Linux 内核通用内存池 —— kmalloc 体系

而在被大规模运用的服务器 Linux 操作系统中,slab allocator 体系采用的是 slub 实现,所以本文我们还是以 slub 实现来讨论。...笔者在 《一步一图带你深入理解 Linux 物理内存管理》一文中的 “4.3 NUMA 节点物理内存区域的划分” 小节中曾介绍到,内核会根据各个物理内存区域的功能不同,将 NUMA 节点内的物理内存划分为以下几个物理内存区域...二维数组中,位于文件:/include/linux/slab.h 中。...关于 alloc_pages 函数的详细内容,感兴趣的同学可以回看下笔者之前的文章 《深入理解 Linux 物理内存分配全链路实现》。...关于伙伴系统回收内存的详细内容,感兴趣的读者可以回看下 《深度剖析 Linux 伙伴系统的设计与实现》 一文中的 “7. 内存释放源码实现” 小节。

69830

Linux内核木马与病毒攻防:基础工具介绍

要想在Linux系统上开发或研究木马病毒等特殊程序,我们需要使用一系列强大的开发和调试攻击。本节先介绍几种在Linux系统上极为强大的工具。...第一个当然是gdb了,在Linux上,它是唯一能用于程序调试的利器。...; } 然后使用gcc编译成可执行文件,命令如下: gcc -Wall -g hello_world.c -o hello_world 注意到gcc也是在Linux上进行程序开发必不可少的编译器...同时文件/proc/kcore对应内核符号表,利用gdb加载该文件就可以对内核进行调试和分析。...文件/proc/iomem对应内核在内存中的布局,例如它包含了内核代码段,内核数据段,内核bss段等重要段数据的加载和分布状况。这些工具和命令的更多用法将在后续相关章节中讲解和使用。

1.5K10

Linux入侵排查时安全工具整理

(图片可放大查看) 2、rkhunter 1)rkhunter简介 rkhunter也叫”Rootkit猎手”, rkhunter是Linux系统平台下的一款开源入侵检测工具,具有非常全面的扫描范围,...rootkitLinux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到入侵和和隐蔽的目的,这种木马比普通木马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现这种木马。...rootkit主要有两种类型:文件级别和内核级别。 1、文件级别的rootkit: 一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。...2、内核rootkit: 是比文件rootkit更高级的一种入侵方式,它可以使攻击者获得对系统底层的完全控制权,此时攻击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到入侵者所选择的程序并运行此程序...内核rootkit主要依附在内核上,它并不对系统文件做任何修改。以防范为主。

3.3K42

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

文章目录 一、下载 Linux 内核源码 二、使用 VSCode 阅读 Linux 内核源码 一、下载 Linux 内核源码 ---- 参考 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的...Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 ) 博客 , 下载 Linux 5.6.18 版本的内核源码 ; 5.x 内核源码下载地址...: https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ Linux 内核 5.6.18 版本 : https://mirrors.edge.kernel.org...不同版本的 Linux 内核 区别 : 系统调用 : 其系统调用是相同的 , 新的版本可能会增加新的系统调用 ; 设备文件 : 各内核版本的设备文件都是相同的 , 但是 内部接口 可能不同 ; 二、使用...按钮 , 此时就可以在 VSCode 中阅读 Linux 内核源码 ;

21.3K30

内核防篡改

防篡改支持将Linux服务器进程加入白名单,可实现进程、目录、文件类型的系统防护。...防篡改技术基于Linux Kernel技术进行的模块开发,相比fanotify、audit、云防护,性能损耗极低(毫秒),效果最优。...流程 image.png 技术实现 系统底层操作劫持 防篡改模块的本质其实和rootkit类似,但不同的是,rootkit最后的目的是隐藏后门以及防止被发现入侵,而防篡改的目的是防护系统的文件操作。.../"这种形式绕过 经过测试,市面上如宝塔的内核防篡改有存在php调用unlink("../../../")绕出网站目录的情况, 经过对unlinkat、openat等函数的参数进行测试, 在系统底层会有一个...#include #include #include #include

1.8K20

恶意软件FontOnLake Rootkit正在威胁Linux系统

近期,网络安全研究人员详细介绍了一项可能针对东南亚实体的新型攻击活动,该活动可能使用以前无法识别的Linux恶意软件,除了收集凭据和充当代理服务器外,还可以远程访问其运营商。...此外,为了隐藏自身的存在,FontOnLak总是伴随着一个 rootkit。这些二进制文件通常在Linux系统上使用,并且还可以作为一种持久性机制。...FontOnLake的工具集包括三个组件,它们由合法 Linux 实用程序的木马化版本组成,用于加载内核模式的rootkits和用户模式的后门,所有这些都使用虚拟文件相互通信。...ESET表示发现了两个不同版本的Linux rootkit,它们基于一个名为Suterusu的开源项目,在功能上有重叠之处,除了能隐藏自身外,还包括隐藏进程、文件、网络连接,同时还能够执行文件操作,提取并执行用户模式的后门...参考来源:https://thehackernews.com/2021/10/researchers-warn-of-fontonlake-rootkit.html

1.2K40

linux内核编程_linux内核是什么

内核——操作系统的内在核心 设备驱动程序 启动引导程序 命令行shell 其他种类的用户界面—-操作系统的外在表象 基本的文件管理工具和系统工具 Linux内核的组成 Linux内核源代码目录结构是什么...Linux内核的有哪些组成部分? 进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC) Linux内核的的组成部分之间有什么关系?...Makefile:分布在Linux 内核源代码中的Makefile,定义Linux 内核的编译规则。 配置文件(Kconfig):给用户提供配置选择的功能。...记录哪些部分被编译入内核、哪些部分被编译为内核模块。 在Linux 内核中增加程序需要完成哪些工作? 将编写的源代码复制到Linux 内核源代码的相应目录。...次引导加载程序加载Linux内核和可选的初始RAM 磁盘,将控制权交给Linux内核源代码。 运行被加载的内核,并启动用户空间应用程序。

18.8K30

LINUX内核

一、Linux内核2.6特点: 1.新的调度器 2.内核抢占 3.改进线程模型 4.虚拟内存 5.文件系统 6.音频:音频体系结构ALSA.支持USB音频和MIDI设备,并支持全双工重放功能。...二、LINUX内核的组成 1.LINUX内核源代码目录结构 1)arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。如i386,arm,powerpc,mips等。...4)Documentation:内核各部分通用解释和注释。...模块 16)sound:ALSA,OSS音频中设备的核心代码和常用设备驱动 17)usr:实现了用于打包和压缩的CPIO等 2.LINUX内核组成部分 2.1 LINUX主要用进程调度,虚拟文件系统,...3.Linux内核空间与用户空间 Linux只能通过系统调用和硬件中断来完成用户空间到内核空间的控制转移

13.9K30

Linux Rootkit系列一:LKM的基础编写及隐藏

免责声明:本文介绍的安全知识方法以及代码仅用于渗透测试及安全教学使用,禁止任何非法用途,后果自负 前言:作者最近在学习有关linux rootkit的原理与防范,在搜索资料中发现,在freebuf上,对...在此我斗胆献丑,总结了下我最近的学习收获,打算发表一系列关于linux rootkit的文章在freebuf上,希望能够帮助到大家。...对于这个系列文章,我的规划如下:这一系列文章的重点集中在介绍linux rootkit中最讨论最多也是最受欢迎的一种:loadable kernel module rootkit(LKM rootkit...LKM(可加载内核模块) LKM的全称为Loadable Kernel Modules,中文名为可加载内核模块,主要作用是用来扩展linux内核功能。...关于proc和sysfs文件系统,可以参考《深入linux内核架构》中的第十章"无持久存储的文件系统"。

4.4K100

Linux】对system V本地通信的内核理解

二、共享内存,消息队列和信号量对应的结构体 2.1、共享内存内核结构体 shm_perm:表示该共享内存的所有权和权限  下面就是ipc_perm结构体的内核  _key:就是我们用ftok函数设置进共享内存中的...2.2、消息队列内核结构体  2.3、信号量内核结构体 2.4、内核间的共性 上面详细地介绍了共享内存的内核结构及其各个字段代表的含义,消息队列和信号量的字段有的含义跟共享内存是一样的,如果大家想了解的更多...这里只是想输出一个结论,共享内存、消息队列和信号量的内核在实现的时候是有很多相似性的,换句话说,就是它们三个是一个体系中的东西,在本地进程间通信这个体系中。 ...其中,在操作系统内核中,会有一个ipc_id_ary数组,类型就为struct ipc_perm*。...System V是一个单独设计的内核模块,其标准的设计不符合Linux下一切皆文件的思想。尽管隶属于文件部分,但已经是一个独立的模块,且shmid与文件描述符之间的兼容性做得并不好。

10310
领券