当前位置: 首页 > news >正文

HackTheBox Cap 靶机:从 IDOR 到 PCAP 凭据提取再到 Capabilities 提权

file-20260423101950012

一、题目信息

file-20260423102346966

二、信息搜集

TCP 全端口扫描 + 指纹识别 + 操作系统识别:

sudo rustscan -a 10.129.35.25 -r 1-65535 -- -sV -O -Pn -n

输出(关键部分):

PORT   STATE SERVICE REASON         VERSION
21/tcp open  ftp     syn-ack ttl 63 vsftpd 3.0.3
22/tcp open  ssh     syn-ack ttl 63 OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    syn-ack ttl 63 Gunicorn
  • 目标 OS:Ubuntu
  • 80 指纹:Gunicorn,这是 Python 的 WSGI HTTP 服务器,通常作为 Web 应用与反向代理(如 Nginx)之间的中间层运行(但是在本题中是直接作为后端服务器存在)
  • 21 端口可以尝试 ftp 匿名登入

补一波 UDP 高价值(top 20)端口扫描 + 指纹识别:

sudo nmap -sU -sV -Pn -n 10.129.35.25 -vvv --top-ports 20

输出:

PORT      STATE         SERVICE      REASON              VERSION
53/udp    open|filtered domain       no-response
67/udp    closed        dhcps        port-unreach ttl 63
68/udp    open|filtered dhcpc        no-response
69/udp    closed        tftp         port-unreach ttl 63
123/udp   closed        ntp          port-unreach ttl 63
135/udp   open|filtered msrpc        no-response
137/udp   closed        netbios-ns   port-unreach ttl 63
138/udp   closed        netbios-dgm  port-unreach ttl 63
139/udp   closed        netbios-ssn  port-unreach ttl 63
161/udp   closed        snmp         port-unreach ttl 63
162/udp   closed        snmptrap     port-unreach ttl 63
445/udp   closed        microsoft-ds port-unreach ttl 63
500/udp   closed        isakmp       port-unreach ttl 63
514/udp   closed        syslog       port-unreach ttl 63
520/udp   closed        route        port-unreach ttl 63
631/udp   closed        ipp          port-unreach ttl 63
1434/udp  closed        ms-sql-m     port-unreach ttl 63
1900/udp  closed        upnp         port-unreach ttl 63
4500/udp  closed        nat-t-ike    port-unreach ttl 63
49152/udp closed        unknown      port-unreach ttl 63

目前来看,UDP 这块并没有高价值的信息,优先考虑打 TCP 端口,如果 TCP 那边没有思路,可以回到 UDP 端口用专门的工具进行验证。

三、验证 FTP 匿名登入

尝试:

  • 用户名:anonymous
  • 密码:空,直接回车
ftp anonymous@10.129.35.25
Connected to 10.129.35.25.
220 (vsFTPd 3.0.3)
331 Please specify the password.
Password: 
530 Login incorrect.
ftp: Login failed
ftp> quit
221 Goodbye.

失败了,服务器应该开启了禁止匿名登入。

再次验证,这次将密码输入成合法邮箱格式,但是依旧失败了。

极少数非标准场景,密码可能会要求“邮箱格式”。

将目标转移到 80 端口。

四、80 端口突破

1、功能一览

浏览器访问 80 端口,可以看到一个仪表盘界面:

file-20260423104519705

用户栏和搜索功能是没有作用的:

file-20260423104614694

file-20260423104626137

点了没反应,burp 也没有显示出对应的请求,说明这并不是我们需要关注的点。

左侧汉堡菜单,点开后:

file-20260423104805262

这里的几个功能都是可以正常使用的,对于:

  • IP Config
  • Network Status

就是一个指定命令执行的接口,后端将指定命令执行的结果返回给用户。

file-20260423105124773

file-20260423105111164

观察 URL 可以发现:

/ip
/netstat

这虽然不是准确的命令,但是也可能存在隐藏接口去执行隐藏命令,现在还看不出来有什么特别的。

重头戏在:

Security Snapshot (5 Second PCAP + Analysis)

点开后可以看到:

file-20260423105111164

下面有个下载按钮,点击下载后,得到一个流量包,用 wireshark 打开:

file-20260423105745025

并没有有用的信息。

2、IDOR

观察 URL:

http://10.129.35.25/data/2

可能存在 IDOR

IDOR(Insecure Direct Object Reference,不安全的直接对象引用)是一种访问控制漏洞。应用系统通过用户可控的标识符(如数字 ID、文件名、UUID)来定位资源,但没有验证当前用户是否有权访问该资源,导致攻击者通过篡改标识符就能越权查看或操作他人的数据。

而且经过几个的测试后,发现:

file-20260423110224643

Value 的值应该就是代表流量包中是否存在信息。

最终发现:

http://10.129.35.25/data/0

这个页面下载得到的流量包是有内容的:

file-20260423110305414

五、流量分析

流量不多,简单查看后,不难发现登入 ftp 的明文用户名和密码就在里面:

file-20260423110417486

FTP 是明文协议,这意味着任何能嗅探到流量的中间人,都能直接看到你的凭据和传输的文件,我们在 .pcap 抓包中提取出 nathan:Buck3tH4TF0RM3!,就是 FTP 明文特性的直接后果。

现在有一个直接思路就是用账户密码直接登入 ftp。

但是转念一想,账号密码复用的概率非常大,而且本靶机开放了 22 端口。

因此,最高的优先级是“账密复用 + ssh 尝试登入”。

六、ssh 登入

经过检验,果然存在账密复用的现象,直接获得了用户 nathan 的 shell:

file-20260423110849906

在家目录下有 user.txt 文件,查看其中的内容,得到的就是 user flag:

file-20260423111306349

接下来的 root flag 就需要提权获得了。

七、提权

本题的题名为 Cap,很可能提示的就是 Capabilities 提权思路。

查找设置了 Capabilities 的文件:

getcap -r / 2>/dev/null

输出:

nathan@cap:~$ getcap -r / 2>/dev/null
/usr/bin/python3.8 = cap_setuid,cap_net_bind_service+eip
/usr/bin/ping = cap_net_raw+ep
/usr/bin/traceroute6.iputils = cap_net_raw+ep
/usr/bin/mtr-packet = cap_net_raw+ep
/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper = cap_net_bind_service,cap_net_admin+ep

发现 Python3.8cap_setuid(允许进程更改自身的 UID),这是可以直接提权的。

去网站(https://gtfobins.org/)查找 payload:

file-20260423111705261

应用:

file-20260423111825891

成功,并且获取了 root flag。

http://www.jsqmd.com/news/686986/

相关文章:

  • QKeyMapper:Windows平台全能输入设备映射与自动化工具
  • 2026年热门高温布氏粘度计型号大全,靠谱生产厂家合集 - 品牌推荐大师1
  • 2026年靠谱的烘焙培训机构排名,欧艺教育硬件设施与规模优势探讨 - 工业品网
  • VMware装Win11全流程避坑指南:从ISO选择、TPM模拟到VMware Tools优化
  • 终极Visual C++运行库修复指南:彻底解决Windows程序启动问题
  • 告别手动对齐!用Agisoft Metashape Pro 1.8批处理搞定农田航测(含GCPs完整流程)
  • 惠普600G2 MT加装WiFi/蓝牙全记录:从NGFF转接卡到PCIE转接卡的踩坑与避坑
  • 2026年门窗品牌排名,亚龙铝材安装效果怎么样,哪家性价比高 - mypinpai
  • 佛山金喜金属科技:中高端不锈钢管材全品类智造与一站式解决方案权威服务商 - 新闻快传
  • 2026年天津性价比高的断桥铝门窗厂家,靠谱推荐 - 工业设备
  • RedisDesktopManager-Windows:Windows平台终极Redis数据库管理工具完整指南
  • Elasticsearch性能深度优化:近实时搜索速度极致提升实战指南
  • MySQL 查询缓存机制优化经验
  • 茉莉花插件完整教程:如何让Zotero中文文献管理效率提升90%
  • 聊聊保定、太原等地断桥铝门窗,好用的厂家有哪些推荐? - 工业品网
  • 避坑指南:PyTorch 1.7.1 与 CUDA 11.0 版本匹配的那些事儿(conda vs pip 实测对比)
  • 3分钟掌握番茄小说下载器:打造你的专属离线图书馆
  • 从YOLOv5到YOLOv8,我亲手部署测试了C2f和Anchor-Free带来的性能提升(附详细对比数据)
  • 别再只会重启了!Android安全模式(Safe Mode)的5个隐藏用法与救砖实战
  • 2026年北京地区断桥铝门窗内销厂家排名,哪家性价比高? - 工业品牌热点
  • 如何按优先级控制 Flex 容器内子元素的截断顺序
  • 终极Visual C++运行库解决方案:一键修复Windows程序依赖问题
  • 有专利技术的植筋胶生产企业靠谱吗,深圳地区有推荐的吗 - 工业设备
  • 别再乱接TVS了!手把手教你电源输入端TVS防烧毁的正确接法(附PESD5V0S1BA实测)
  • 告别OpenCV依赖:用stb_image.h这个单文件库,5分钟搞定C++图片加载与缩放
  • 基于深度学习的YOLOv11平面图识别 楼层平面图自动化识别 AI图像分割检测
  • 暗黑破坏神2存档编辑器完整指南:5分钟快速上手终极教程
  • 无刺鼻异味的植筋胶怎么选,有哪些品牌值得推荐? - 工业品牌热点
  • 思源宋体TTF:7种字重免费商用的中文排版解决方案
  • ComfyUI-Impact-Pack:模块化架构驱动的AI图像处理性能优化解决方案