记一次有趣的渗透测试
字数 1435 2025-08-26 22:11:34

渗透测试实战教学:从弱口令到权限提升

1. 渗透测试概述

本次渗透测试案例展示了一个完整的攻击链,从初始访问到权限提升,最终获取系统控制权。整个过程涉及多个关键技术和工具的使用。

2. 初始访问

2.1 弱口令利用

攻击者首先通过弱口令进入系统后台:

  • 发现系统存在弱口令漏洞
  • 使用常见或默认凭证成功登录
  • 进入后台管理系统

防御建议

  • 强制使用复杂密码策略
  • 实施账户锁定机制
  • 启用多因素认证

3. 文件上传漏洞利用

3.1 任意文件上传

  • 发现头像上传功能存在任意文件上传漏洞
  • 上传Webshell(大马)获取初步控制权
  • 验证Webshell功能,执行系统命令

防御建议

  • 严格限制上传文件类型
  • 对上传文件进行内容检查
  • 将上传目录设置为不可执行

4. 权限提升尝试

4.1 初始权限评估

  • 执行whoami命令确认当前权限
  • 发现权限受限,需要提权

4.2 补丁分析

  • 使用systeminfo查看系统补丁情况
  • 识别缺失的安全更新,寻找可利用漏洞

4.3 提权工具尝试

  • 上传多个提权工具(如各种提权exe)
  • 发现大多数被杀毒软件拦截
  • 成功使用pwdump7.exe(未被检测)

5. 数据库提权

5.1 获取数据库凭据

  • 查找SQL Server配置文件获取连接凭据
  • 成功连接到数据库服务器

5.2 启用xp_cmdshell

exec sp_configure 'show advanced options', 1;
reconfigure;
exec sp_configure 'xp_cmdshell',1;
reconfigure;
  • 通过SQL Server的xp_cmdshell执行系统命令
  • 获得更高权限的命令执行能力

5.3 创建管理员账户尝试

exec master..xp_cmdshell 'net user test pinohd123. /add'
exec master..xp_cmdshell 'net localgroup administrators test /add'
  • 尝试创建新管理员账户
  • 被安全软件拦截

6. 绕过安全防护

6.1 隐藏用户创建

net user test$ pinohd123. /add
net localgroup administrators test$ /add
  • 创建隐藏账户(用户名以$结尾)
  • 成功添加到管理员组

6.2 使用合法工具Procdump

exec master..xp_cmdshell 'xxxx\images\button\Procdump.exe -accepteula -ma lsass.exe -o xxx.dmp'
  • 使用微软官方工具Procdump转储lsass进程内存
  • 避免被安全软件检测

6.3 使用Mimikatz提取凭证

mimikatz.exe
sekurlsa::minidump 2.dmp
sekurlsa::logonPasswords full
  • 分析转储文件获取明文密码
  • 成功获取高权限账户凭证

7. 横向移动尝试

  • 检查系统是否属于域环境
  • 发现没有域环境,无法进一步横向移动
  • 清理痕迹后退出

8. 防御措施总结

  1. 账户安全

    • 禁用或重命名默认账户
    • 实施强密码策略
    • 定期审计账户权限
  2. 文件上传防护

    • 实施严格的文件类型检查
    • 使用随机文件名
    • 隔离上传目录
  3. 数据库安全

    • 禁用xp_cmdshell等危险存储过程
    • 使用最小权限原则配置数据库账户
    • 加密存储数据库连接凭据
  4. 系统防护

    • 保持系统和应用及时更新
    • 配置EDR/XDR解决方案
    • 监控异常进程创建和网络活动
  5. 凭证保护

    • 启用LSA保护
    • 限制对lsass进程的访问
    • 监控凭证转储行为

9. 工具清单

工具名称 用途 检测规避
pwdump7 提取密码哈希 部分杀软不检测
Procdump 进程内存转储 微软签名工具
Mimikatz 提取明文凭证 需配合转储文件使用
Webshell 远程命令执行 需定制免杀

10. 攻击链总结

  1. 弱口令 → 后台访问
  2. 文件上传 → Webshell
  3. 权限评估 → 提权尝试
  4. 数据库提权 → xp_cmdshell
  5. 安全绕过 → 隐藏用户/Procdump
  6. 凭证窃取 → Mimikatz
  7. 痕迹清理 → 退出系统

通过这个案例,我们可以清晰看到一个完整的渗透测试流程,以及攻击者如何利用系统弱点逐步提升权限。防御方应针对每个环节部署相应的防护措施。

渗透测试实战教学:从弱口令到权限提升 1. 渗透测试概述 本次渗透测试案例展示了一个完整的攻击链,从初始访问到权限提升,最终获取系统控制权。整个过程涉及多个关键技术和工具的使用。 2. 初始访问 2.1 弱口令利用 攻击者首先通过弱口令进入系统后台: 发现系统存在弱口令漏洞 使用常见或默认凭证成功登录 进入后台管理系统 防御建议 : 强制使用复杂密码策略 实施账户锁定机制 启用多因素认证 3. 文件上传漏洞利用 3.1 任意文件上传 发现头像上传功能存在任意文件上传漏洞 上传Webshell(大马)获取初步控制权 验证Webshell功能,执行系统命令 防御建议 : 严格限制上传文件类型 对上传文件进行内容检查 将上传目录设置为不可执行 4. 权限提升尝试 4.1 初始权限评估 执行 whoami 命令确认当前权限 发现权限受限,需要提权 4.2 补丁分析 使用 systeminfo 查看系统补丁情况 识别缺失的安全更新,寻找可利用漏洞 4.3 提权工具尝试 上传多个提权工具(如各种提权exe) 发现大多数被杀毒软件拦截 成功使用pwdump7.exe(未被检测) 5. 数据库提权 5.1 获取数据库凭据 查找SQL Server配置文件获取连接凭据 成功连接到数据库服务器 5.2 启用xp_ cmdshell 通过SQL Server的xp_ cmdshell执行系统命令 获得更高权限的命令执行能力 5.3 创建管理员账户尝试 尝试创建新管理员账户 被安全软件拦截 6. 绕过安全防护 6.1 隐藏用户创建 创建隐藏账户(用户名以$结尾) 成功添加到管理员组 6.2 使用合法工具Procdump 使用微软官方工具Procdump转储lsass进程内存 避免被安全软件检测 6.3 使用Mimikatz提取凭证 分析转储文件获取明文密码 成功获取高权限账户凭证 7. 横向移动尝试 检查系统是否属于域环境 发现没有域环境,无法进一步横向移动 清理痕迹后退出 8. 防御措施总结 账户安全 : 禁用或重命名默认账户 实施强密码策略 定期审计账户权限 文件上传防护 : 实施严格的文件类型检查 使用随机文件名 隔离上传目录 数据库安全 : 禁用xp_ cmdshell等危险存储过程 使用最小权限原则配置数据库账户 加密存储数据库连接凭据 系统防护 : 保持系统和应用及时更新 配置EDR/XDR解决方案 监控异常进程创建和网络活动 凭证保护 : 启用LSA保护 限制对lsass进程的访问 监控凭证转储行为 9. 工具清单 | 工具名称 | 用途 | 检测规避 | |---------|------|---------| | pwdump7 | 提取密码哈希 | 部分杀软不检测 | | Procdump | 进程内存转储 | 微软签名工具 | | Mimikatz | 提取明文凭证 | 需配合转储文件使用 | | Webshell | 远程命令执行 | 需定制免杀 | 10. 攻击链总结 弱口令 → 后台访问 文件上传 → Webshell 权限评估 → 提权尝试 数据库提权 → xp_ cmdshell 安全绕过 → 隐藏用户/Procdump 凭证窃取 → Mimikatz 痕迹清理 → 退出系统 通过这个案例,我们可以清晰看到一个完整的渗透测试流程,以及攻击者如何利用系统弱点逐步提升权限。防御方应针对每个环节部署相应的防护措施。