linux读取文件漏洞,Linux不可读文件被跟踪漏洞

受影响系统:

Linux kernel 2.2.17

Linux kernel 2.2.16

Linux kernel 2.2.15

Linux kernel 2.2.14

Linux kernel 2.2.13

Linux kernel 2.2.12

Linux kernel 2.2.10

不受影响系统:

Linux kernel 2.4

描述:

ptrace是一个Unix系统调用,通常在断点调试中用于分析运行中的进程,gdb、strace等调试工具都使用了这个系统调用。Linux 2.2.x内核(甚至更早版本的内核)的ptrace实现存在一个漏洞,允许攻击者获取本来无权获取的的敏感信息。

出于安全考虑,普通用户不能使用ptrace()系统调用跟踪分析setuid程序,不能使用上述调试工具关联其他用户启动的运行中的进程。如果二进制文件bar对于用户foo来说不可读(r权限去掉了),foo用户无权使用ptrace()系统调用跟踪bar程序的执行。

所有这些限制都在ptrace( PT_ATTACH, ... )实现中得到检查。但是,当ptrace()用于跟踪子进程时,未能正确检查安全限制,bar程序对于foo用户可执行,即使不可读,也可按子进程方式跟踪bar程序的执行过程,此时可以观察bar程序的内存映像。恶意用户可能利用这种技术获取敏感信息,本来这些敏感信息通过chmod go-r后防止诸如strings bar一类的窥探。可以利用该漏洞为进一步损害系统安全性做准备。

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

下例是采用ptrace( PT_ATTACH, ... )企图跟踪一个不可执行文件:

$ ls -l testfile

-rwx--x--x 1 root root 216916 Dec 4 11:59 testfile

$ ./testfile

waiting...

从另外一个shell上执行跟踪命令:

$ strace -p 11535

attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted

因为testfile不可读,跟踪失败,这是正确的安全限制。

--------------------------------------------------------------------------

下例采用子进程方式成功跟踪了一个不可读文件:

$ strace testfile

SYS_197(0x3, 0xbffff650, 0x40197d40, 0x80cca38, 0x3) = -1 ENOSYS (Function not implemented)

fstat(3, {st_mode=S_IFREG|0644, st_size=1744, ...}) = 0

mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40015000

...

建议:

升级内核到2.4

本文转自 ☆★ 包罗万象网★☆ - 转载请注明出处,侵权必究!

原文链接:

阅读(448) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值