文章作者:hackisle
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
rootkit的主要分类:
应用级->内核级->硬件级
早期的rootkit主要为应用级rootkit,应用级rootkit主要通过替换login、ps、ls、netstat等系统工具,或修改.rhosts等系统配置文件等实现隐藏及后门;硬件级rootkit主要指bios rootkit,可以在系统加载前获得控制权,通过向磁盘中写入文件,再由引导程序加载该文件重新获得控制权,也可以采用虚拟机技术,使整个操作系统运行在rootkit掌握之中;目前最常见的rootkit是内核级rootkit。
内核级rootkit又可分为lkm rootkit、非lkm rootkit。lkm rootkit主要基于lkm技术,通过系统提供的接口加载到内核空间,成为内核的一部分,进而通过hook系统调用等技术实现隐藏、后门功能。非lkm rootkit主要是指在系统不支持lkm机制时修改内核的一种方法,主要通过/dev/mem、/dev/kmem设备直接操作内存,从而对内核进行修改。
非lkm rootkit要实现对内核的修改,首先需要获得内核空间的内存,因此需要调用kmalloc分配内存,而kmalloc是内核空间的调用,无法在用户空间直接调用该函数,因此想到了通过int 0x80调用该函数的方法。先选择一个不常见的系统调用号,在sys_call_table中找到该项,通过写/dev/mem直接将其修改为 kmalloc函数的地址,这样当我们在用户空间调用该系统调用时,就能通过int 0x80进入内核空间,执行kmalloc函数分配内存,并将分配好的内存地址由eax寄存器返回,从而我们得到了一块属于内核地址空间的内存,接着将要 hack的函数写入该内存,并再次修改系统调用表,就能实现hook系统调用的功能。
rootkit的常见功能:
隐藏文件:通过strace ls可以发现ls命令其实是通过sys_getdents64获得文件目录的,因此可以通过修改sys_getdents64系统调用或者更底层的 readdir实现隐藏文件及目录,还有对ext2文件系统直接进行修改的方法,不过实现起来不够方便,也有一些具体的限制。
隐藏进程:隐藏进程的方法和隐藏文件类似,ps命令是通过读取/proc文件系统下的进程目录获得进程信息的,只要能够隐藏/proc文件系统下的进程目录就可以达到隐藏进程的效果,即hook sys_getdents64和readdir等。
隐藏连接:netstat命令是通过读取/proc文件系统下的net/tcp和net/udp文件获得当前连接信息,因此可以通过hook sys_read调用实现隐藏连接,也可以修改tcp4_seq_show和udp4_seq_show等函数实现。
隐藏模块:lsmod命令主要是通过sys_query_module系统调用获得模块信息,可以通过hook sys_query_module系统调用隐藏模块,也可以通过将模块从内核模块链表中摘除从而达到隐藏效果。
嗅探工具:嗅探工具可以通过libpcap库直接访问链路层,截获数据包,也可以通过linux的netfilter框架在IP层的hook点上截获数据包。嗅探器要获得网络上的其他数据包需要将网卡设置为混杂模式,这是通过ioctl系统调用的SIOCSIFFLAGS命令实现的,查看网卡的当前模式是通过SIOCGIFFLAGS命令,因此可以通过hook sys_ioctl隐藏网卡的混杂模式。
密码记录:密码记录可以通过hook sys_read系统调用实现,比如通过判断当前运行的进程名或者当前终端是否关闭回显,可以获取用户的输入密码。hook sys_read还可以实现login后门等其它功能。
日志擦除:传统的unix日志主要在/var/log/messages,/var/log/lastlog,/var/run/utmp,/var /log/wtmp下,可以通过编写相应的工具对日志文件进行修改,还可以将HISTFILE等环境变设为/dev/null隐藏用户的一些操作信息。
内核后门:可以是本地的提权后门和网络的监听后门,本地的提权可以通过对内核模块发送定制命令实现,网络内核后门可以在IP层对进入主机的数据包进行监听,发现匹配的指定数据包后立刻启动回连进程。
rootkit的主要技术:
lkm注射、模块摘除、拦截中断(0x80、0x01)、劫持系统调用、运行时补丁、inline hook、端口反弹……
lkm注射:也是一种隐藏内核模块的方法,通过感染系统的lkm,在不影响原有功能的情况下将rootkit模块链接到系统lkm中,在模块运行时获得控制权,初始化后调用系统lkm的初始化函数,lkm注射涉及到elf文件格式与模块加载机制。
模块摘除:主要是指将模块从模块链表中摘除从而隐藏模块的方法,最新加载的模块总是在模块链表的表头,因此可以在加载完rootkit模块后再加载一个清除模块将rootkit模块信息从链表中删除,再退出清除模块,新版本内核中也可以通过判断模块信息后直接list_del。
拦截中断:主要通过sidt指令获得中断调用表的地址,进而获取中断处理程序的入口地址,修改对应的中断处理程序,如int 0x80,int 0x1等。其中拦截int 0x1是较新的技术,主要利用系统的调试机制,通过设置DR寄存器在要拦截的内存地址上下断点,从而在执行到指定指令时转入0x1中断的处理程序,通过修改0x1中断的处理程序即可实现想要的功能。
劫持系统调用:和拦截中断类似,但主要是对系统调用表进行修改,可以直接替换原系统调用表,也可以修改系统调用表的入口地址。在2.4内核之前,内核的系统调用表地址是导出的,因此可以直接对其进行修改。但在2.6内核之后,系统调用表的地址已经不再导出,需要对0x80中断处理程序进行分析从而获取系统调用表的地址。
运行时补丁:字符设备驱动程序和块设备驱动程序在加载时都会向系统注册一个Struct file_operations结构实现指定的read、write等操作,文件系统也是如此,通过修改文件系统的file_operations结构,可以实现新的read、write操作等。
inline hook:主要是指对内存中的内核函数直接修改,而不影响原先的功能,可以采用跳转的办法,也可以修改对下层函数的call offset实现。
端口反弹:主要是为了更好的突破防火墙的限制,可以在客户端上监听80端口,而在服务器端通过对客户端的80端口进行回连,伪装成一个访问web服务的正常进程从而突破防火墙的限制。
相关推荐
木马病毒深度解析:原理、危害与实战防御指南
在网络安全领域,恶意软件是核心威胁之一,其中特洛伊木马(Trojan Horse)因其隐蔽性和控制性而尤为突出。其运作基于客户端-服务器(C/S)架构,通过社会工程学手段诱导用户执行,进而实现远程控制、信息窃取等目的。从技术原理看,木马常利用进程注入、Rootkit等技术实现隐身,并通过代码混淆对抗检测,其危害从个人隐私泄露到组建僵尸网络发起DDoS攻击,影响深远。理解这些基础概念与原理,对于构建有效的安全防御体系至关重要。本文聚焦于木马病毒,结合键盘记录、僵尸网络等热词,深入剖析其传播途径、核心危害,并提
Rootkit技术的主要原理及防护
2019独角兽企业重金招聘Python工程师标准>>> ...
木马病毒防御实战:从原理剖析到企业级立体防护体系构建
木马病毒作为一种典型的恶意软件,其核心攻击原理借鉴了特洛伊木马的故事,通过伪装诱导用户执行,从而在系统中建立后门。从技术原理上看,现代木马通常由客户端与控制端构成,采用进程注入、Rootkit等技术实现深度隐藏,其破坏性主要体现在信息窃取、远程控制与金融诈骗等方面。在网络安全领域,防御此类威胁具有极高的技术价值,它直接关系到个人隐私与企业数据资产的安全。常见的应用场景包括防范网络钓鱼攻击、阻断软件捆绑传播以及应对利用系统漏洞的“沉默入侵”。本文将深入探讨**远控木马**与**勒索木马**等主流变种的运作机制
从linux内核初窥LKM(抛砖引玉之rootkit隐藏进程 or tcp连接原理)
在前面的文章中我们介绍了如何使用rootkit(那篇文章标题打错了,少了个t)以及简单介绍了什么是rootkit,为了让读者更深入的了解,于是我们开了本专题,来一起探索学习rootkit的原理以及如何手搓一个rootkit,之后会出一系列的文章围绕rootkit原理来写。今天先介绍如何拦截系统调用,修改命令返回结果。上一篇可能对于什么是rootkit解释的不够清楚,这里重新解释一下,不过还是建议读者配合上一篇一起食用参考。
基于C++的Rootkit端口隐藏技术详解
隐蔽性:通过修改系统内核和关键文件,隐藏自身及其活动,逃避安全检测。持久性:一旦安装成功,Rootkit能够在系统重启后继续运行,保持对系统的控制。多功能性:Rootkit不仅能够隐藏自身,还能够隐藏其他恶意软件,实现键盘记录、文件隐藏、网络连接隐藏等功能。钩子技术是一种用于拦截和修改系统API调用的技术,通过插入钩子函数,拦截目标API的调用,并在钩子函数中进行自定义处理后再返回结果。钩子技术广泛应用于调试工具、性能监控和恶意软件中。// 调用原始API// 自定义处理逻辑。
Rootkit攻击技术详解与防御实战
Rootkit 是一种旨在隐蔽地控制系统并维持长期访问权限的恶意技术集合。与传统病毒或蠕虫不同,Rootkit 更注重于“隐身”与“持久化控制”,通常通过修改操作系统内核或关键系统调用,隐藏其存在及关联的恶意行为。其名称源自 UNIX 系统中的“root”权限(最高权限账户)和“kit”(工具包),意味着攻击者利用这些工具获取并维持系统的最高控制权。Rootkit 通常具备以下核心特性:隐蔽性:通过劫持系统调用、修改进程和文件列表等方式,隐藏自身及相关进程、文件、网络连接。持久性。
网络安全笔记(三)
壳出于程序作者想对程序资源压缩、注册保护的目的,软件的壳分为加密壳、压缩壳、伪装壳、多层壳等类,目的都是为了隐藏程序真正的 OEP(入口点,防止被破解)。“加壳”指的是对编译好的 EXE、DLL 等文件采用加壳来进行保护;“脱壳”指的就是。
深入理解rootkit 攻击
这是我学习rootkit攻击时候选的 几篇比较好的资料,有助于深入理解和学习rootkit攻击的原理。
rootkit技术
熬夜写llroot,写的头有些晕了,代码也有点乱,所以停下来歇歇;就又去逆向昨天下的那个rootkit,搞了1个多小时,头又晕了,才搞了不到一半,夜深人静的时候,孤孤单单,没有美女陪,不爽啊.想想好长时间没有在这个blog上写技术文章了,于是就转来下面一篇文章,文章比较老了,针对linux2.2内核的,但是基本的思路是没有失效的.正好这学期的操作系统课程考试也打算让研究生写一些类似的程序,所以贴在
WindowsRootKit技术原理及防御策略
用CajViewer阅读
【架构设计】DDD 到底解决了什么问题
DDD作为架构设计思想帮助微服务控制规模复杂度,那它是怎么做到的呢?第一章提出了架构的根本目是解决系统复杂度,并简要说明系统复杂度的六个来源及通用解法,为我们设计架构提供了清晰可执行的操作思路。
Rootkit基础(1)
1. rootkit的主要分类: 应用级->内核级->硬件级 早期的rootkit主要为应用级rootkit,应用级rootkit主要通过替换login、ps、ls、netstat等系统工具,或修 改.rhosts等系统配置文件等实现隐藏及后门;硬件级rootkit主要指bios rootkit,可以在系统加载前获得控制权,通过向磁盘中写入 文件,再由引导程序加载该文件重新获得控制权,也可
eNSP-抓包解析TCP三次握手和四次挥手的过程
一、环境搭建 1.设备连接 2.服务器配置 3.客服端配置 二、抓包测试 1.打开抓包软件 2.客户端获取数据 三、抓包结果
Windows rootkits of 2005, part one(翻译)
出于学习计算机和英语的目的,尝试翻译一些英文的技术帖,我尽量翻译准确,然而不能保证,感兴趣的请参看原文:http://www.securityfocus.com/infocus/1850阅读基础:保护模式,PE文件格式,设备驱动程序 Windows rootkits of 2005, part o
论文笔记:基于对比学习的半监督分类学习方法
论文阅读笔记_CCSSL
解决创建conda环境时Solving environment: failed 和 ResolvePackageNotFound 的错误
环境配置文件是在别的机器上导出的,文件里的软件包是按照导出文件的机器配置的,因此导出的时候,把这些包的详细信息也导了出来,即第二个等号后面跟着的信息,当我们按照这个文件创建环境时,conda就会根据我们机器的配置信息,按照配置文件里包的详细信息,去找这个包,那当然找不到,结果发现“查无此包”,因此也就会报上面的错误。上面找到了问题的所在之处,解决起来就很简单了,只需要在配置文件 environment.yml 中将包的详细信息删除,也就是第二个等号后面的内容。然而升级超级慢不说,也没有解决我的问题。...
79-Halcon-- visualize_object_model_3d 函数功能(交互式3D可视化)
该算子是连接3D数据与决策者的关键可视化桥梁,通过其独特的交互能力和高质量的渲染效果,将复杂的3D信息转化为直观的可视内容,大幅提升工程决策效率和质量。操作符,不仅能在窗口中渲染3D对象,还支持多种交互操作,适用于调试、展示和交互分析场景。本解析将全面探讨其参数功能及工业级应用方案。+几何类型: PointCloud/ TriMesh/CAD。+法线属性: [NX,NY,NZ]+附加数据: Attributes。是Halcon中功能强大的。+顶点属性: [X,Y,Z]+颜色属性: [R,G,B]
Windows Rootkit 技术分析
现在很多人对rootkit认识不够,可以说空白。而此文的目的就是让大家认识rootkit→了解rootkit。也让一些想研究它的人把这篇文章当作一个参考或是入门级的指导。************************************************************转载请保留文章完整,谢谢! *Date:2005/9/11 祝童童生日快乐。也纪念世贸大厦 *作者:sunwe
基于改进YOLO11的天际线检测算法:复杂光照与恶劣天气适配实战
针对特定任务的YOLO改进,不应追求通用SOTA,而应深入理解任务的物理退化机理。Retinex对应光照模型、FAD对应散射模型、Wise-IoU对应边界不确定性——每个改进都有明确的物理解释,而非盲目的模块堆叠。时序一致性:引入轻量级RNN/Transformer模块利用视频帧间信息补偿单帧退化;多模态融合:结合红外/NIR波段穿透雾霾,与可见光特征在FAD-Neck中交叉注意力融合;自监督预训练:在海量无标注天际线视频上用MAE预训练Backbone,缓解恶劣天气标注稀缺问题。
vue3:html2canvas+jspdf将页面以A4导出为PDF文件,解决内容截断+在分页处截断问题详细排查和解决教程(jsPDF + html2canvas A4分页截断、内容分页时存在截断)
html2canvas + jsPDF 解决内容截断问题,vue3 jspdf-html2canvas生成多页pdf防截断处理(包含代码),vue3解决html2canvas + jsPDF导出pdf分页内容截断问题,jsPDF + html2canvas A4分页截断 完美解决方案(含代码 + 案例),html页面导出pdf截断问题,html2canvas 与 jspdf 相结合生成 pdf 内容被截断的终极解决方案,提供html2canvas+jsPDF将HTML页面以A4纸方式导出为PDF后,内容分页
450



被折叠的 条评论
为什么被折叠?



