浅谈root原理以及已知漏洞的分析

本文探讨了Android系统的root原理,分析了如何通过修改su权限实现root。同时,文章详细解析了多个历史上的Android权限提升漏洞,如CVE-2009-2692、adbd setuid、CVE-2011-3874等,展示了攻击者如何利用这些漏洞获取root权限。最后,展望了随着Android系统安全性的增强,未来root面临的挑战。
摘要由CSDN通过智能技术生成

 

 

 

0x1 概述

 

 

Root本身是指linux系统当中的root账户,它对整个linux系统有着最高的权限,可以操作所有的对象.对于Android手机用户来说,Root就是拥有root权限.然而Android本身就是不想让你获取root权限,大部分手机在出厂时,都默认在普通用户权限下,无法操纵系统中的文件和数据.

Linux下su以后,输入正确的密码后就可以root了,但是Android里的su和linux下的su不太一样.Android里的su不是靠密码验证,而是看你原来的权限是什么.如果你本身是root用户,你可以su切换到其他中户,比如shell,camera等等.但是如果你是root或shell以外的用户,就不能切换到root用户,会提示Permission denied.(su只能被root或者shell权限执行)

//摘自AOSP \system\extras\su\su.c
myuid = getuid();
if (myuid != AID_ROOT && myuid != AID_SHELL) 
{
	fprintf(stderr,"su: uid %d not allowed to su\n", myuid);
	return 1;
}

if(argc < 2) 
{
	uid = gid = 0;
} 
else 
{
	int gids_count = sizeof(gids)/sizeof(gids[0]);
	extract_uidgids(argv[1], &uid, &gid, gids, &gids_count);
	if(gids_count) 
	{
		if(setgroups(gids_count, gids)) 
		{
			fprintf(stderr, "su: failed to set groups\n");
			return 1;
		}
	}
}

if(setgid(gid) || setuid(uid)) 
{
	fprintf(stderr,"su: permission denied\n");
	return 1;
}

 

 

 

也就是说在root下执行su才有用,但是我这时候还没有root怎么办?一般我们在linux下查看某文件的权限的是ls –l xxx.

比如-rwxr-xr-x,r代表可读,w代表可写,x代表可执行,-代表没有权限.

第一个rwx代表文件所有者的权限,第二个xr代表文件所有者同属一个用户组的其他用户可读可执行,第三个x代表其他用户组的权限.

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值