打靶日记--CONNECT THE DOTS
字数 1354 2025-08-29 08:29:41

打靶日记:CONNECT THE DOTS 渗透测试教学文档

1. 信息收集阶段

1.1 主机发现与端口扫描

首先使用nmap进行主机发现和端口扫描,发现目标系统是Linux,开放的有用端口包括:

  • 21 (FTP)
  • 80 (HTTP)
  • 111 (RPC)
  • 2049 (NFS)
  • 7822 (SSH)
  • 33415 (其他服务)

1.2 服务版本扫描

对各个端口进行版本扫描,发现:

  • 80端口存在SQL注入漏洞
  • NFS服务运行中

1.3 NFS服务检查

检查NFS服务发现有一个用户家目录被共享:

  1. 尝试挂载该目录到本地
  2. 发现一个模板目录,但为空
  3. NFS路径暂时无法利用

2. Web应用渗透

2.1 80端口Web应用分析

  1. 浏览器访问发现无价值内容和两张图片
  2. 查看源代码无有用信息
  3. 进行目录扫描发现以下路径:
    • /backups/ - 包含一个小视频
    • /images/ - 包含首页的两张图片
    • /manual/ - Apache服务器手册
    • /mysite/ - 包含几个文件

2.2 JSFuck解密

在/mysite/bootstrap.min.cs文件中发现JSFuck加密代码:

  1. 下载该文件
  2. 清理非JSFuck字符(保留+、!、[、]、(、))
  3. 使用JSFuck解密网站(https://jsfuck.com/)运行解密
  4. 获得norris用户的密码:TryToGuessThisNorris@2k19

3. 初始访问

  1. 使用获得的凭据通过SSH(7822端口)登录norris用户
  2. 成功获得初始shell

4. 权限提升路径

4.1 信息收集

在norris用户家目录发现ftp文件夹:

  1. 下载所有文件进行检查
  2. 在game.jpg.bak中发现EXIF信息包含摩斯密码

4.2 摩斯密码解密

  1. 提取EXIF中的摩斯密码
  2. 使用在线工具解密得到信息:"Damn!! 去找secretfile这个文件"

4.3 恢复.swp文件

  1. 发现secretfile文件提示断电导致未保存
  2. 查找并下载对应的.swp交换文件
  3. 使用vim -r恢复文件内容获得新密码

4.4 横向移动

  1. 尝试使用新密码登录morris用户成功
  2. 但morris用户无特殊权限

5. 最终提权

5.1 发现SUID提权机会

检查SUID文件发现polkit-agent-helper-1可利用:

  1. 该文件用于处理需要身份验证的高权限命令
  2. 可以触发它来获取root权限

5.2 利用polkit-agent-helper-1

执行以下步骤:

  1. 运行需要身份验证的高权限命令(如systemd-run)
  2. 触发polkit-agent-helper-1
  3. 输入norris用户的密码
  4. 成功获得root shell

6. 总结与学习要点

  1. 信息收集的重要性:全面扫描和检查每个开放服务
  2. JSFuck加密:一种使用6个字符表示完整JS代码的技术
  3. 隐藏信息查找:检查图片EXIF、.swp文件等非常规位置
  4. NFS共享利用:检查可挂载的共享目录
  5. polkit提权:利用SUID程序和身份验证机制获取root权限

7. 防御建议

  1. 限制NFS共享范围和权限
  2. 避免在源代码中存储敏感信息
  3. 定期清理.swp等临时文件
  4. 严格控制SUID权限
  5. 使用强密码并定期更换
打靶日记:CONNECT THE DOTS 渗透测试教学文档 1. 信息收集阶段 1.1 主机发现与端口扫描 首先使用nmap进行主机发现和端口扫描,发现目标系统是Linux,开放的有用端口包括: 21 (FTP) 80 (HTTP) 111 (RPC) 2049 (NFS) 7822 (SSH) 33415 (其他服务) 1.2 服务版本扫描 对各个端口进行版本扫描,发现: 80端口存在SQL注入漏洞 NFS服务运行中 1.3 NFS服务检查 检查NFS服务发现有一个用户家目录被共享: 尝试挂载该目录到本地 发现一个模板目录,但为空 NFS路径暂时无法利用 2. Web应用渗透 2.1 80端口Web应用分析 浏览器访问发现无价值内容和两张图片 查看源代码无有用信息 进行目录扫描发现以下路径: /backups/ - 包含一个小视频 /images/ - 包含首页的两张图片 /manual/ - Apache服务器手册 /mysite/ - 包含几个文件 2.2 JSFuck解密 在/mysite/bootstrap.min.cs文件中发现JSFuck加密代码: 下载该文件 清理非JSFuck字符(保留+、!、[ 、 ]、(、)) 使用JSFuck解密网站(https://jsfuck.com/)运行解密 获得norris用户的密码: TryToGuessThisNorris@2k19 3. 初始访问 使用获得的凭据通过SSH(7822端口)登录norris用户 成功获得初始shell 4. 权限提升路径 4.1 信息收集 在norris用户家目录发现ftp文件夹: 下载所有文件进行检查 在game.jpg.bak中发现EXIF信息包含摩斯密码 4.2 摩斯密码解密 提取EXIF中的摩斯密码 使用在线工具解密得到信息:"Damn! ! 去找secretfile这个文件" 4.3 恢复.swp文件 发现secretfile文件提示断电导致未保存 查找并下载对应的.swp交换文件 使用 vim -r 恢复文件内容获得新密码 4.4 横向移动 尝试使用新密码登录morris用户成功 但morris用户无特殊权限 5. 最终提权 5.1 发现SUID提权机会 检查SUID文件发现 polkit-agent-helper-1 可利用: 该文件用于处理需要身份验证的高权限命令 可以触发它来获取root权限 5.2 利用polkit-agent-helper-1 执行以下步骤: 运行需要身份验证的高权限命令(如systemd-run) 触发polkit-agent-helper-1 输入norris用户的密码 成功获得root shell 6. 总结与学习要点 信息收集的重要性 :全面扫描和检查每个开放服务 JSFuck加密 :一种使用6个字符表示完整JS代码的技术 隐藏信息查找 :检查图片EXIF、.swp文件等非常规位置 NFS共享利用 :检查可挂载的共享目录 polkit提权 :利用SUID程序和身份验证机制获取root权限 7. 防御建议 限制NFS共享范围和权限 避免在源代码中存储敏感信息 定期清理.swp等临时文件 严格控制SUID权限 使用强密码并定期更换