当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言:
 

 

 ·三则黑客的google搜索技巧    »显示摘要«
    摘要: 大家都知道,google毫无疑问是当今世界上最强大的搜索引擎。然而,在黑客手中,它也是一个秘密武器,它能搜索到一些你意想不到的信息。赛迪编者把他们进行了简单的总结不是希望您利用他去攻击别人的网站,而是利用这些技巧去在浩如烟海的网络信息中,来个大海捞针,寻找到对您有用的......
 ·四、隐形与反隐形    »显示摘要«
    摘要: 1、隐形 如果你要对某人隐形,让对方的icq看不到你,可以使用以下两种方法:方法一:在icq的联系清单中,用鼠标左击该人名,然后在弹出的菜单中选取“more(rename,delete...)”,再选择“alert/accept modes”,在新出现的窗口中钩选“i......


LoadableKernelModules注射

==phrack inc.== volume 0x0b, issue 0x3d, phile #0x0a of 0x0f |=----------------=[ infecting loadable kernel modules ]=----------------=| 【程序编程相关:HijackThis:自己的病情自己治

【推荐阅读:补丁面面观:深入解析Hotfix与SP

|=-----------------------------------------------------------------------=| 【扩展信息:把自己的文件和文件夹加把锁

|=--------------------=[ truff <truff@projet7.org> ]=-------------------=|

|=-----------------------------------------------------------------------=|

|=------------=[ translator: osmose <osmose@ph4nt0m.net> ]=-------------=|

lkm 注射 --[ 内容 1 - 介绍 2 - elf 基础知识

2.1 - the .symtab section

2.2 - the .strtab section 3 - 玩转 loadable kernel modules

3.1 - 模块加载

3.2 - 修改 .strtab section

3.3 - 插入代码

3.4 - 保持隐蔽性 4 - 实例

4.1 - 最简单的 lkm 感染

4.2 - 我还会回来的 (重启之后) 5 - 关于其他的操作系统

5.1 - solaris

5.2 - *bsd

5.2.1 - freebsd

5.2.2 - netbsd

5.2.3 - openbsd 6 - 结论 7 - 感谢 8 - 参考资料 9 - 源代码

9.1 - elfstrchange

9.2 - lkminject

--[ 1 - 介绍 这些年来,很多 rootkit 使用了 loadable kernel modules.这仅仅是一种短暂的流

行现象吗?不是,lkm 的广泛使用得益于它强大的功能:可以隐藏文件,进程还有其他

一些妙用.对于第一代使用 lkm 的 rootkits,使用lsmod命令就可以轻易的找出它们.

我们见过许许多多隐藏模块的手法,比如在plaguez的文章 [1]里提到的那种,还有更多

的在adore rootkit [2]里面用到的技巧.几年以后,我们还看到一些新技术:通过使用

/dev/kmem [3] 修改kernel内存映射(kernel memory image).最后,参考资料[4]向

我们展示了静态内核补丁(static kernel patching)技术.这个技术解决了一个大问题:

rootkit在机器重启后可以重新加载. (译者注:查找了一下lsmod的运作方式,供大家了解."在kernel 2.0.x 时,指令

lsmod是去开启档案 /proc/modules 来得知系统中,已加载哪些 module.不过

到了kernel 2.1.x以后,系统提供了函式 query_module.因此,此时lsmod的实

作便是透过呼叫 query_module 来取得系统已加载 module的相关资料.") 本文提出了一种新的隐藏lkm rootkits的技术并且保证这些rootkit在机器重启后能够

重新加载.文章会提到如何感染一个系统使用的内核模块.本文针对的是 linux kernel

x86 2.4.x 系列,不过这个技术可以在任何使用elf文件格式的系统中推广.要了解这个

技术需要一些基础知识.内核模块是elf object 文件,我们需要了解一点elf格式,尤其

是关于符号命名部分的知识.此后,我们会接着学习模块加载机制以便了解如何把恶意代

码插入内核模块中.最后,实战操作一下模块的插入. --[ 2 - elf 基础 executable(可执行) & linking(链接) format (elf) 是用于linux操作系统上的

可执行文件格式.我们先要了解部分相关知识,以后用得着(如果想要全面了解elf格式,

请参考[1]). 当链接两个elf object 文件的时候,链接程序需要知道每个object文件

里相关符号的一些情况.每个elf object文件(比如lkm的那些object文件)包含了两个

部分(译者注:就是后文的 .symtab 与 .strtab 两个section ).这两个section 是用

来存储每个符号的信息结构的.我们不但要研究它们,还要总结出一些对感染内核模块有

用的思路.

----[ 2.1 - .symtab section 这部分是一个结构列表.当链接程序使用那些elf object文件里的符号时,就需要这些

数据.在/usr/include/elf.h里可以找到这个结构的定义: /* symbol table entry. */(符号列表入口) typedef struct

{

elf32_word st_name; /* symbol name (string tbl index) */(符号名(字符串列表索引))

elf32_addr st_value; /* symbol value */(符号的值)

elf32_word st_size; /* symbol size */(符号数据占用空间的大小)

unsigned char st_info; /* symbol type and binding */(符号类型与绑定)

unsigned char st_other; /* symbol visibility */(符号的可见性)

elf32_section st_shndx; /* section index */(各section 的索引)

} elf32_sym; 这里我们只对st_name感兴趣.实际上它是 .strtab section 的索引,而那些符号的名称就是

存储在 .strtab 里面的.

----[ 2.2 - .strtab section .strtab section 是一个非空字符串的列表.正如我们上面看见的,elf32_sym里面的st_name

是 .strtab section 的索引.如果我们寻找的符号在某个字符串里,我们可以很方便的得到这个

字符串的偏移地址.下面是我们的计算公式: offset_sym_name = offset_strtab + st_name offset_strtab 是 .strtab section 相对于文件起始处的偏移地址,可以通过section 名称解

析机制获得.这与我们要谈的技术关系不是很大,这里就不深究了.参考资料[5]里面详细探讨了

这个问题,后面章节9.1给出了具体实现的代码. 现在可以说,在elf object 文件里,我们可以很方便的找到符号名并修改它们.不过修改过程

中始终要牢记一点:.strtab section 是由连续的非空字符串组成的,这对修改后新的符号名是一

个限制:新名称的长度不能超过原来的那个长度,否则会殃及 .strtab 中下一个符号.(译者注:

这里与溢出的道理一样,新名称长度超过原先设定值,多出的部分就会写到后面一个符号名区域里,

覆盖后面有用的部分) 遵守了这一点,我们就能做到简单的修改符号名而不影响模块的正常运行,最终实现用一

个模块感染另一个模块.

--[ 3 - 玩转 loadable kernel modules 下面这段给出了动态加载模块程序的源代码.了解了这个,我们就能学会在模块中插入代

码了. ----[ 3.1 - 模块加载 内核模块的加载是通过insmod这个用户空间工具实现的.insmod包含在modutils包里[6].

我们感兴趣的东西是insmod.c文件里的init_module()函数.
...   下一页
 ·三、密码的破解与保护    »显示摘要«
    摘要: 如果你遗忘了icq密码也不必着急,只要你申请时使用的email地址是真实可用的,就可以从icq服务商那里取回已忘记的icq密码,方法是:到http://www.icq.com/password/,在框中输入你的icq号码,按下“send”键,如果操作成功,在返回的信息......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE