hackthebox-Queue

admin 2026-08-18 06:25:19 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文基于授权红队实战演练,详细展示了从SSRF绕过(利用十进制IP进制欺骗)到内网信息泄露,再到利用WebSocket无认证漏洞获取低权限Shell,最终通过PackageKit的TOCTOU竞争条件漏洞(CVE-2026-41651)实现本地提权至Root的完整攻击链。核心启示是逻辑漏洞的降维打击,强调不能仅依赖字符串黑名单,需正确解析IP并防范权限检查的时间差。 综合评分: 90 文章分类: 渗透测试,红队,漏洞分析,应急响应,WEB安全


cover_image

hackthebox-Queue

网安之家-CyberHomestead

2026年8月4日 19:18 上海

在小说阅读器读本章

去阅读

温馨提示: 本文基于授权环境下的红队实战演练。为遵守网络安全社区规范,文中所有 IP、Hash、Flag、密码均已进行脱敏处理。本文重在思路剖析与防御启示,谢绝任何形式的”抄作业”行为。

🔥 序章:最坚固的堡垒,往往从内部崩塌

各位安全圈的看官,今天吃个硬瓜。

假设有这么一台服务器:SSH 密码是随机生成的,字典爆破完全无效;系统加固得像铁桶,没有任何多余的 SUID 二进制,定时任务干干净净。

看起来无懈可击对吧?

但最终,它被拿下了。没靠运气,没靠蛮力。靠的是**”欺骗时间”“进制戏法”**。

今天,我把这场降维打击的思维链路扒开给你看。内行看门道,外行看热闹。


第一幕:禁区里的”外卖员”(SSRF 绕过)

红队第一步,永远是侦察。

扫描端口,发现目标跑着一个 Web 服务,里面藏着一个有意思的功能:URL 合法性校验接口(/api/v1/validate)。

这个接口的逻辑很简单:用户提交一个网址,服务器替你去访问一下,看看能不能通。 为了防止内网滥用,开发者写了段代码:

if hostname in ["localhost", "127.0.0.1", "::1"]: return "禁止访问内网"

很多年前,这招管用。但在今天,这叫”纸糊的门”。

🔴 红队知识点:进制欺骗 程序员用字符串比对来拦 127.0.0.1。但网络底层解析 IP 时,支持多种格式。 把 127.0.0.1 转换成十进制整数 2130706433(或者八进制 0177.0.0.1),底层网络库会自动还原。 但你的黑名单代码看到的只是数字 2130706433!

实战复现命令(已脱敏):

# 利用十进制 IP 绕过字符串黑名单,让服务器替我们访问它的内网
curl -sk -X POST "https://target.htb/api/v1/validate" \
  -H "Content-Type: application/json" \
  -d '{"url":"http://2130706433:5000/"}'

结果: 绕过成功。服务器乖乖把内网 5000 端口的响应返回给了我们。


第二幕:瞒天过海,扒出隐藏的”自首信”

既然能骗服务器替我们访问内网,那能不能用它来当跳板,把整个内网摸一遍?

能。这就是经典的 SSRF(服务器端请求伪造)

我们用这个接口把内网扫了一圈,结果在目标的 /status 端点,挖到了一份**”自首信”**——系统的架构配置图。

{
  "service": "cohort-edge",
  "upstreams": [
    {"name": "marketing", "host": "target.htb", "root": "/var/www/target"},
    {"name": "insights-api", "path": "/api/", "target": "127.0.0.1:5000"},
    {"name": "notebooks", "host": "nb-1be3782a8afd3ad5.target.htb", "target": "127.0.0.1:8888",
     "note": "internal analyst workspace, not for external use"}
  ]
}

注意最后一条:“internal analyst workspace, not for external use”(内部分析师工作区,严禁外用)。 这句话,直接把隐藏的子域名 nb-1be3782a8afd3ad5.target.htb 给暴露了。

🛡️ 防御启示录: 永远不要相信用户的输入。校验 IP,必须先用 socket.getaddrinfo() 解析成真实的 IP 格式,再比对私网网段(10.x, 172.16.x, 192.168.x),绝不能只做字符串匹配。


第三幕:无认证的终端(WebSocket RCE)

顺着那个泄露的子域名,我们直接访问到了那个”严禁外用”的内部服务。 原来它是一个叫 marimo 的 Python 反应式笔记本,跑在 8888 端口。

这个笔记本带有一个终端功能。正常情况下,你得输入密码才能用。 但是,开发者在写 WebSocket 端点(/terminal/ws)的时候,漏写了鉴权校验函数

也就是说,只要你连上这个 WebSocket,连密码都不用输,系统直接给你分配一个真实的 Linux 交互终端。

# 伪造 WebSocket 握手,骗过服务器
curl -ski -o /dev/null -w '%{http_code}\n' \
  -H 'Connection: Upgrade' \
  -H 'Upgrade: websocket' \
  -H 'Sec-WebSocket-Version: 13' \
  -H 'Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==' \
  https://nb-xxx.target.htb/terminal/ws
# 返回 101 = 握手成功,没有任何认证拦截!

利用这个漏洞,我们通过一段 Python 脚本,让服务器主动把一个反弹 Shell 送到我们的监听器上。

拿到 Shell 后,第一件事当然是拿下第一个证明:cat /home/marimo/user.txt(内容已脱敏)。


第四幕:欺骗时间的人(TOCTOU 竞争条件提权)

拿到普通用户权限后,才是真正的考验开始。

这台机器的系统加固做得极好:

  • • sudo -l 需要密码。
  • • 没有异常的 SUID 二进制。
  • • /etc/passwd 不可写。
  • • 所有关键配置文件全都是 root:root 755
  • • 连 Python 的各种劫持路径(sitecustomize、.pth)全部锁死。

难道要靠内核漏洞?不,有个更优雅的”逻辑降维打击”。

这就要提到 Linux 系统里一个默默无闻的守护进程:PackageKit(packagekitd)。几乎所有主流 Linux 都自带它,负责跨发行版的包管理,以 root 权限运行。

它最近爆出了一个惊天大洞:CVE-2026-41651(TOCTOU 竞争条件本地提权)

💡 吃瓜群众秒懂版: TOCTOU(Time of Check to Time of Use)。 就像你去银行取钱。你先递一张单子说”我查查余额”,柜员把保险柜打开了。下一秒你立马说”取一千万”。因为柜员的大脑还在刚才”已打开保险柜”的状态里没反应过来,直接把钱给你了!

在代码里也是一样:检查权限的时候是一个状态,使用的时候因为时间差,变成了另一个状态。

漏洞原理剖析: PackageKit 在处理 D-Bus 发来的 InstallFiles 请求时:

  1. 1. 攻击者瞬间发送两条异步请求。
  2. 2. 第一条带 SIMULATE(模拟)标志,系统一看是模拟,不需要认证,状态置为”准备就绪”。
  3. 3. 第二条不带标志(真实安装恶意包),覆盖了第一条的参数,但此时系统状态转换出 Bug,停在了”准备就绪”。
  4. 4. 结果: 系统直接跳过了密码认证,以 root 权限执行了恶意包的安装!

在不到 1.2 秒的时间里,我们让系统亲手交出了 Root 权限:

# 运行 PoC(利用竞争条件,让系统以 root 安装带 SUID bash 的恶意 deb 包)
./cve-2026-41651
# [+] SUCCESS — SUID bash at t+1200ms

# 拿取终极权限
/tmp/.suid_bash -p
cat /root/root.txt (内容已脱敏)

📊 渗透测试网络拓扑图(脱敏)

(以下为公众号适配的 ASCII 拓扑图,展示完整的攻击链路)

┌─────────────────────────────────────────────────────────────────┐
│                   🏹 攻击者 (Kali Linux)                          │
│               IP: 10.10.x.x (已脱敏)                             │
└──────────┬──────────────────────────────────┬───────────────────┘
           │ 1. HTTPS 侦察                     │ 5. WebSocket 直连
           ▼                                  ▼
┌─────────────────────────┐          ┌─────────────────────────┐
│ 🛡️ NGINX 反向代理       │          │ 🛡️ NGINX 反向代理       │
│ (443/80)               │          │ (443/80)               │
└──────────┬──────────────┘          └──────────┬──────────────┘
           │                                  │
           │ 2. 十进制 IP 绕过 SSRF           │ 6. 代理 WS 流量
           ▼                                  ▼
┌─────────────────────────┐          ┌─────────────────────────┐
│ ⚙️ Insights API         │          │ 📓 Marimo Notebook      │
│ (127.0.0.1:5000)       │          │ (127.0.0.1:8888)       │
│                         │          │ CVE-2026-39987 (无认证) │
│ 3. 泄露内网架构图        │          │ 7. 获取低权限 Shell      │
└─────────────────────────┘          └──────────┬──────────────┘
           └────────────────────────────────────┘
                                               │ 8. 发送 TOCTOU 竞争包
                                               ▼
                                   ┌─────────────────────────┐
                                   │ ☠️ PackageKit 守护进程  │
                                   │ (Root 权限运行)         │
                                   │ CVE-2026-41651 (TOCTOU) │
                                   │                         │
                                   │ 9. 赐予 Root Shell      │
                                   └─────────────────────────┘

结语:降维打击的艺术

这次红队实战,没有一次暴力爆破。从头到尾,全是”逻辑的降维打击”:

  1. 1. 绕过黑名单: 用进制转换欺骗前端校验。
  2. 2. 信息收集: 用 SSRF 挖出隐藏资产。
  3. 3. 权限提升: 用 TOCTOU 漏洞欺骗系统时间线,让 Root 权限”自动”掉落。

🔥 核心启示: 永远不要相信任何默认的”信任边界”。检查权限不仅要看”是什么”,还要防住”时间差”。


互动时间: 如果你是那个写黑名单的开发者,你会怎么修补那个 127.0.0.1 的漏洞?欢迎在评论区留下你的绝妙思路! (点赞最高的留言,博主有神秘网安资料包相送哦~🎁)


⚠️ 免责声明与合规说明

本文所有内容均在授权的靶场环境下进行。为维护网络安全社区生态,文章涉及的所有 IP、Hash 值、Flag 内容及敏感配置均已脱敏处理。请勿尝试将文中技术用于未经授权的真实系统。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:网安之家-CyberHomestead 《hackthebox-Queue》

    hackthebox-Queue 网络安全文章

    hackthebox-Queue

    文章总结: 本文基于授权红队实战演练,详细展示了从SSRF绕过(利用十进制IP进制欺骗)到内网信息泄露,再到利用WebSocket无认证漏洞获取低权限Shell
    评论:0   参与:  0