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

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/advantageSystem 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 --upgradableThe list of available updates is more than a week old.
To check for new updates run: sudo apt updateLast 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")'

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


http://www.mrgr.cn/news/7284.html

相关文章:

  • Type-C无线麦克风方案
  • 递归神经网络 (RNN) 简介
  • 在SpringBoot项目中如何集成eureka
  • 代码随想录第六天
  • 四、Centos7-安装Gitlab
  • 饿了么后端登录模块
  • 基于cubemx的STM32的freertos的串口通信
  • 数据结构之 队列入门 队列例程 队列例程分析
  • Vue中的methods方法与computed计算属性的区别
  • RTC碰到LXTAL低频晶振停振怎么办?
  • Java 中的 Tomcat 详解
  • mac苹果电脑搭建Python开发环境
  • StarRocks 存算分离数据回收原理
  • ZooKeeper的8大应用场景解析
  • SLAM学习笔记
  • DNS服务器的起点:根服务器
  • c语言利用if else制作信号灯程序
  • Elementui-Plus动态渲染图标icon
  • SQL Server中如何自动抓取阻塞
  • 分享一个基于python的租房数据分析与可视化系统Hadoop大数据源码(源码、调试、LW、开题、PPT)