论坛风格切换切换到宽版
  • 4271阅读
  • 60回复

rootkit的主要分类:应用级- [复制链接]

上一主题 下一主题
离线system
 
发帖
4294967285
C币
-883
威望
460
贡献值
111
银元
87
铜钱
6796
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-03-11
DELSTARTDELENDrootkit的主要分类:
应用级->内核级->硬件级
早期的rootkit主要为应用级roo.tki.t,应用级rootkit主要通过替换login、ps、ls、netst.at等系统工具,或修改.rhosts等系统配置文件等实现隐藏.及后门;硬件级rootkit主.要指bios rootkit,可以在系统.加载前获.得控制权,通过向磁盘中写入文件,再由引导程序加载该文件重新获得控制权,也可以采用虚拟机技术,使整个操作系统运行在rootkit掌握之中;目前最常见的roo.tkit是内核级rootkit。(广告)
内核级rootkit又可分为lkm r.ootkit、非lkm rootkit。lk.m rootkit主要基于lkm技术,通过系统提供的接口加载到内核空间.,成为内核的一部分,进而通过hook系统调用等技术实现隐藏、后门功能.。非lkm rootkit主要是指在系统不支持l.km.机制时修改内核的一种.方法,主要通过/dev/mem、/dev/kmem设备直接操作内存,从而对内核进行修改。.
非lkm rootkit要实现对内核的修改,首先需要获得内核空间的内存,因此需要调用.kmal.loc分配内存,而km.alloc是内核空间.的调用,无法在用户空间直接调用该函数,因此想到了通过int 0x80调用该函数的方法。先选择一个不常见的系统调用号,在sys_call_table中找到该项,通过写/dev/mem直接将其修改为 kmalloc函数的地址,这样.当我们在用户空间调用该系统调用时,就.能通过int 0x8.0进入内核.空间,执行kmalloc函数分.配内存,并将分配好的内存地址由eax寄存器返回,从而我们得到了一块属于内核地址空间的内存,接着将要 hack的函数写入该内存,并再次修改系统调用表.,就能实现ho.ok系统调用的功能。             汽车
rootkit的常见功能:
隐藏文件:通过strace ls可以发现ls命令其实是..通过sys_getdents6.4获得文.件目录的,因此可以通过.修改sys_getdents64系统调用或者更底层的 readdir实现隐藏文件及目录,还有对ext2文件系统直接进行修改的方法,不过实现起来不够方便,也有一些具体的限制。--------------彩票
隐.藏进程.:隐藏进程的方法和隐藏文件类似,ps命令是通过读取/proc文件系统下的进程目录获得进程信息的,只要能够隐藏/proc文件系统下的进程目录就可以达到隐.藏进程的效果,即hoo.k sys_getdents64和readdir等。(        游戏          )
隐藏连接:netstat命令是通过读取/proc文件系统下的net/tcp和net/ud.p文件获得当前连接.信息,因此可以通过hook sys_read调用实现隐藏连接,也可以修.改tcp4_seq_show和ud.p4_seq_sh.ow等函数实现。          婚庆
隐藏模块:l.smod命令主要是通过sys_query_modul.e系统调用获得模块信息,可以通过hook sys_query_module系统调用隐藏模块.,也可以通过将模块从内核模.块链表中摘除从而达到隐藏效果。           鲜花
嗅探工具:嗅探工.具.可以通过li.bpcap库直接访问链路层,截获数据包,也可以通过linux的netfilter框架在IP层的hook点上截.获数据包。嗅探器要获得网络上的其他数据包需要将网卡设置为混杂模式,这是通过ioctl系统调用的SIOCSIFFLAGS命令实现的,查看网卡的当前模式是通过SIOCGIFF.LAGS命令,因此可以通过hook sy.s_ioctl隐藏网卡的混杂模.式。<性病>
密码记录:密码记录可以通过hook sys_read系统调.用实现,比.如通过判断当前运行的进程名或者当前终端是否关闭回显,可以获取用户的输入密码。hook sys_read.还可以实现login后门.等其它功能。投资
日志擦.除:传统的unix日志主要在/var/log/m.essages,/var/log/la.stlog,/var/run/utmp,/var /log/wtmp下,可以通.过编写相应的工具对日志文件进行修改,还可以将HISTFILE等环境变设为/dev/null.隐藏用户的一些操作信息。           女人
内核后门:可以是本地的提权后门和网络的监听后门,本地的提.权..可以通过对内核模块发送定制命令实现,网络内核后门可以在IP层对进入主机的数据包进行监听,发现匹配的指定数据包.后立刻启动回连进程。电脑
rootkit的主要技术:
lkm注射、模块摘除、拦.截中断.(0x80、0x01)、劫持系统调用、运行时补丁、inline h.ook、端口反弹……(        游戏          )
lkm注射:也是一种隐藏内核模块的方法,通过感染系统的lkm,在不影响原有功能的情况.下将rootki.t模块.链接到系统lkm中,在模块运行时获得控制权,初始化后调用系统lkm的初始化函数,lkm注射涉及到elf文件.格式与模块加载机制。             汽车
模块摘除:主要是指将模块从模块链表中摘除从而隐藏模块的方法,最新加载的模块总是在模块.链表的表头,因此可以在加载完r.ootkit模块后再加载一个清除模.块将rootkit模块信息从链表中删除,再.退出清除模块,新版.本内核中也可以通过判断模块信息后直接list_del。.
拦截中断:主要通过sidt指令获得中断调用表的地址,进而获取中断处理程序的入口地址,修改对应的中断处理程序,如int 0x80,int 0x1等。其中拦截int 0x1是较新的技术,主要利用系统的调试机制,.通过设置DR寄存器在要拦截的内存地址上下.断点,从而在执行到指定指令时转入0x1中.断的处.理程序,通过修改0x1中.断的处理程序即可实现想要的功能。.外贸
劫持系统.调用:和拦截中断类似,但主要是.对系统调用表进行修改,可以直接替换原系统调用表,也可以修改系统.调用表的入口地址。在2.4内核之前,内核的系统调用表地.址是导出的,因此可以直接对其进行修改。但在2.6内核之后,系统调用表的地址已经不再导出,需要对0x80中断处理程序进行分析从.而获.取系统调用表的地址。.
运行时补丁:.字符设备驱动程序和块设备驱动程序在加.载时都会向系统注册一个Stru.ct file_operations.结构实现指定的read、write等操作.,文件系统也是如此,通过修改文件系统的file_operations结构,可以实现新的read、write操作等。外贸
inline hook:主要是指对内存中的内核函数直接修改,.而不影响原先的功能,可以采用跳转的办法,也可以修改.对下层函数的call offse.t实现。电脑
端口反.弹:主要是为了更好的突破.防火墙的限制,可以在客户端上监听80端口,而在服务器端通过对客户端的80端口进行回连.,伪装成一个访问web服务的正常进程从而突破防火墙.的限制。             电子
.                CSUBOY综合社区


本文来自CSUBOY综合社区,如果查看原文请点:http://bbs.csuboy.com/u2/76292/showart_2063728.html(        游戏          )
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个