免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5013 | 回复: 12
打印 上一主题 下一主题

[内核模块] 内核系统调用劫持检测 [复制链接]

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-02-20 14:15 |只看该作者 |倒序浏览
本帖最后由 瀚海书香 于 2013-02-20 14:15 编辑

hacker在攻击linux系统后,经常会修改系统调用,来实现特殊的目的。比如隐藏文件、隐藏进程、改变可执行程序运行等等。
一起讨论一下,如何判断和检测linux系统调用被劫持?

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
2 [报告]
发表于 2013-02-21 07:57 |只看该作者
回复 1# 瀚海书香
我这里先抛砖一下啊

系统调用劫持的方法有很多种,对于修改sys_call_table的情况,可以通过比对System.map与被检测系统的sys_call_table[__NR_*]进行比较。
对于获取系统调用地址的方法,最好是以内核模块的方式获取。因为通过应用层来获取的话,可能你所使用来获取sys_call_table[__NR_*]的系统调用已经被修改了。


   

论坛徽章:
2
酉鸡
日期:2013-09-26 11:11:15摩羯座
日期:2014-01-08 13:45:19
3 [报告]
发表于 2013-02-22 15:19 |只看该作者
不太懂这个哦,版主说的2种情况是不是对应1.修改sys_call_table的地址 2.中断描述符的中断处理函数system_call的地址?
http://wenku.baidu.com/view/8c1f847831b765ce0508140a.html 这里有篇论文
但是我有个疑问啊,劫持需要编译并insmod一个模块吧?这难道不需要root权限么?反过来说我都有root权限了,还有什么不能干,何必劫持呢

论坛徽章:
0
4 [报告]
发表于 2013-02-23 23:36 |只看该作者
回复 3# hejianet

    在内存里修改了sys_call_table中系统函数的调用地址,当系统调用这些函数的时候就会被劫持。网上有篇关于用gdb检测rootkit的文章  建议楼主看看
http://www.soft6.com/tech/16/165054.html

   

论坛徽章:
0
5 [报告]
发表于 2013-02-23 23:46 |只看该作者
回复 1# 瀚海书香


    我来问个问题啊   我如果将/proc/kcore镜像一份,使用gdb之类的工具可以调试并与System.map中的调用地址进行对比发现劫持。能不能通过程序来自动化这个过程呢 ,对于/proc/kcore的镜像文件我不知道如何来处理。


在网上看到/proc/kcore是一个core文件,内容为内存的全镜像,在kcore中添加了一个大小为52字节的elf文件头,那kcore的容量为物理内存容量+52字节。
但是我测试的时候发现1G内存的机器的/proc/kcore镜像为1020M,求解释。。。

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
6 [报告]
发表于 2013-02-24 12:23 |只看该作者
回复 5# 十年梦生
使用gdb之类的工具可以调试并与System.map中的调用地址进行对比发现劫持。能不能通过程序来自动化这个过程呢 ,对于/proc/kcore的镜像文件我不知道如何来处理。


其实老的内核里面是提供函数获取syscall,query_module。
比对system.map和syscall,可以通过shell脚本实现。
   

论坛徽章:
0
7 [报告]
发表于 2013-02-24 13:36 |只看该作者
回复 6# 瀚海书香


    能不能给说的再详细点

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
8 [报告]
发表于 2013-02-25 07:25 |只看该作者
回复 7# 十年梦生
1. 获取system.map中的系统调用函数地址
2. 通过内核模块获取现有系统调用函数地址
3.比较上面两个值是否相同。


这种方法对于在直接原地地址修改系统调用函数的hack无法检测。(比如jmp等)

   

论坛徽章:
0
9 [报告]
发表于 2013-02-25 11:14 |只看该作者
回复 8# 瀚海书香
soga  明白鸟  多谢


   

论坛徽章:
2
酉鸡
日期:2013-09-26 11:11:15摩羯座
日期:2014-01-08 13:45:19
10 [报告]
发表于 2013-02-27 17:23 |只看该作者
回复 8# 瀚海书香

同样的问题,改内核代码段难道不需要root么?
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP