打靶日记--MyFileServer_3
字数 1788 2025-08-29 22:41:39
渗透测试实战教学:从信息搜集到提权完整流程
1. 信息搜集阶段
1.1 主机发现与端口扫描
- 初始扫描:使用nmap等工具进行主机发现和基本端口扫描
- 攻击向量优先级排序:
- 共享文件系统(FTP/Samba等)
- Web系统(HTTP/HTTPS服务)
- 未知服务(非常见端口服务)
- SSH服务(作为最后手段)
1.2 详细服务扫描
- FTP服务:发现允许匿名登录,存在pub/log目录
- Samba服务(139/445端口):同样允许匿名访问
- 其他服务:发现一些挂载与文件共享服务
1.3 漏洞扫描
- 使用nmap自带漏洞扫描功能,未发现可直接利用的漏洞
2. 渗透阶段
2.1 FTP匿名登录利用
- 登录FTP服务,发现pub/log目录
- 下载所有可访问文件(共6个日志文件)
- 使用关键字过滤日志文件:
- passwd
- password
- user
- name
- 初步未发现有用凭证
2.2 Samba服务利用
- 扫描Samba共享文件夹,发现:
- 一个可读写共享文件夹
- 疑似功能性用户名(smbuser)
- 访问共享文件夹,下载与FTP不同的文件
- 在secure文件中发现一组用户凭据
- 尝试SSH登录失败
- 尝试Samba登录失败
2.3 文件分析发现关键信息
- 在sshd_config中发现:
- SSH使用默认路径的私钥文件
- 在note.txt中发现提权提示:
- "我出于安全原因移除了查找命令,但不想删除'getcap'。我认为没有人知道'getcap和capsh'"
2.4 Web服务探测
- 访问80端口HTTP服务,仅发现无用外链
- 目录爆破发现:
- smbuser用户的SSH公钥/私钥路径
- 公钥可读,私钥不可读
- 尝试用公钥推导私钥未成功
2.5 关键突破
- 发现Samba下载的文件中包含id_rsa(SSH默认私钥)
- 私钥被加密,使用John the Ripper提取hash并破解
- 成功获取私钥密码
- 使用smbuser用户名和私钥成功SSH登录
3. 提权阶段
3.1 初始立足点
- 发现传统提权方法受限(find命令不可用)
- 检查敏感文件:
- /etc/shadow可读但密码破解失败
- 在家目录发现runme可执行文件
3.2 二进制文件分析
- 使用scp下载runme文件到本地分析
- checksec检查:
- 64位程序
- 无任何保护(NX, PIE, Canary等均未启用)
- IDA逆向分析:
- main函数中存在危险的fgets输入
- 程序逻辑会跳转到v5函数指针指向的函数
- 函数表中存在flag函数,可读取bla用户目录下的user.txt
3.3 漏洞利用尝试
- 构造payload:
- 40字节填充字符串(无\0)
- 追加flag函数地址(0x4006cf)
- 攻击语句:
python -c 'import sys; sys.stdout.write("A"*40 + "\xcf\x06\x40\x00\x00\x00\x00\x00")' | ./runme - 利用未成功
3.4 替代提权方法
- 成功爆破出用户密码
- 切换用户后发现特权:
- 能以root权限执行两个命令
- 使用GTFOBins查找capsh提权方法
- 成功提权
4. 关键技术与工具总结
4.1 信息搜集工具
- nmap(端口扫描、服务识别、漏洞扫描)
- smbclient(Samba服务探测)
4.2 渗透工具
- ftp客户端(匿名登录测试)
- John the Ripper(密码破解)
- scp(文件传输)
4.3 二进制分析工具
- checksec(安全机制检查)
- IDA Pro(逆向分析)
- Python(payload构造)
4.4 提权资源
- GTFOBins(Linux特权执行利用参考)
5. 经验教训
- 文件全面检查:最初忽略了已下载的id_rsa文件,导致浪费时间
- 多角度思考:当一种攻击路径受阻时,及时寻找替代方案
- 信息关联:将不同服务中发现的信息关联起来(如Samba用户名与SSH登录)
- 注意提示:管理员留下的note.txt提供了重要提权线索
6. 防御建议
- 禁用匿名登录:FTP和Samba服务不应允许匿名访问
- 密钥管理:避免使用默认路径的SSH密钥,且应对私钥加密
- 最小权限原则:限制共享文件夹的访问权限
- 安全配置:
- 移除不必要的setuid/setgid程序
- 限制capsh等危险命令的使用
- 日志管理:敏感日志信息应严格控制访问权限
通过本案例,可以学习到从信息搜集到提权的完整渗透测试流程,以及如何利用各种服务配置不当进行系统入侵。同时也强调了防御方应采取的安全措施。