打靶日记--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服务发现有一个用户家目录被共享:
- 尝试挂载该目录到本地
- 发现一个模板目录,但为空
- 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权限
- 使用强密码并定期更换