记一次失败的实战渗透
字数 1381 2025-08-18 17:33:34

SQL注入与内网渗透实战教学

0X01 SQL注入发现与利用

注入点识别

  1. 在网站查询框中输入测试字符:
    • 输入1进行正常查询
    • 输入1'触发SQL错误,表明存在SQL注入漏洞

SQLMAP工具使用

  • 使用SQLMAP确认注入存在并获取DBA权限:
    sqlmap -u "目标URL" --dbs
    
  • 确认数据库用户权限为DBA(数据库管理员)

0X02 网站GetShell方法

常见GetShell途径

  1. 通过SQL注入获取Shell的两种主要方法
    • 方法一:跑数据/目录找到管理后台 → 文件上传GetShell
    • 方法二:通过报错/phpinfo等获取绝对路径 → 直接写入Shell

实际操作步骤

  1. 使用御剑等工具扫描网站目录,发现admin目录存在目录遍历漏洞
  2. 通过目录遍历直接获取网站绝对路径(如C:\wwwroot\...
  3. 使用SQLMAP的--os-shell功能:
    sqlmap -u "目标URL" --os-shell
    
    • SQLMAP会先上传文件上传Shell(tmpxxxx.php)
    • 再通过文件上传Shell上传命令执行Shell
    • 最后利用命令执行Shell执行命令

注意事项

  • 某些函数(如assert)可能被禁用,需要尝试其他类型的一句话木马
  • 通过目录遍历可能发现未授权上传点,可作为替代GetShell方法

0X03 初步信息搜集

系统信息收集

  1. 获取基本信息:
    • 当前用户:system
    • 操作系统:Windows Server 2012
    • 内网环境存在
    • 杀毒软件:ESET NOD32

内网探测方法

  1. 常用工具:
    • Nbtscan
    • ICMP协议扫描
    • arp-scan
    • scanline
  2. 通过Cobalt Strike(CS)上线后使用Ladon插件扫描:
    • 扫描结果显示内网存在大量主机
    • 发现AD等敏感词汇,推测存在多个域环境

0X04 横向渗透与深入信息搜集

内网渗透策略

  1. 首选漏洞利用

    • MS17-010(永恒之蓝)漏洞利用
    • 使用Ladon插件扫描内网MS17-010漏洞主机
  2. 代理设置

    • CS开启socks代理
    • 本地Kali配置代理:
      sudo vim /etc/proxychains.conf
      # 添加CS的IP和端口
      proxychains msfconsole
      
  3. 绕过杀软限制

    • 当交互执行被拦截时,使用单命令加载的EXP
    • 添加用户账号进行权限维持

域渗透思路(当目标处于域环境时)

  1. 基础方法

    • 提权后读取HASH,尝试获取域管账号
    • 检查域管进程进行进程注入
    • HASH传递攻击域控
  2. 备用方法

    • MS14-068域提权
    • MS14-025漏洞利用
    • CVE-2020-1472(Zerologon)漏洞利用
  3. 其他途径

    • 扫描域内WEB或设备漏洞
    • 从边缘设备逐步向域控渗透

关键工具与资源

  1. 主要工具

    • SQLMAP:SQL注入检测与利用
    • 御剑:网站目录扫描
    • Cobalt Strike:远控与内网渗透
    • Ladon插件:内网扫描与漏洞检测
    • Metasploit:漏洞利用框架
  2. 参考资源

经验总结与注意事项

  1. 渗透测试要点

    • 明确目标,避免时间浪费
    • 保持思路灵活,不执着于单一方法
    • 内网渗透前先做好充分信息搜集
  2. 失败经验

    • 内网机器可能已被其他攻击者控制(如勒索软件)
    • 杀毒软件会拦截某些攻击行为
    • 漏洞利用存在不确定性,需准备多种方案
  3. 防御建议

    • 及时修补MS17-010等常见漏洞
    • 限制数据库用户权限(避免使用DBA账号)
    • 禁用目录遍历功能
    • 监控异常账户添加行为
    • 部署杀毒软件和入侵检测系统
SQL注入与内网渗透实战教学 0X01 SQL注入发现与利用 注入点识别 在网站查询框中输入测试字符: 输入 1 进行正常查询 输入 1' 触发SQL错误,表明存在SQL注入漏洞 SQLMAP工具使用 使用SQLMAP确认注入存在并获取DBA权限: 确认数据库用户权限为DBA(数据库管理员) 0X02 网站GetShell方法 常见GetShell途径 通过SQL注入获取Shell的两种主要方法 : 方法一:跑数据/目录找到管理后台 → 文件上传GetShell 方法二:通过报错/phpinfo等获取绝对路径 → 直接写入Shell 实际操作步骤 使用御剑等工具扫描网站目录,发现 admin 目录存在目录遍历漏洞 通过目录遍历直接获取网站绝对路径(如 C:\wwwroot\... ) 使用SQLMAP的 --os-shell 功能: SQLMAP会先上传文件上传Shell(tmpxxxx.php) 再通过文件上传Shell上传命令执行Shell 最后利用命令执行Shell执行命令 注意事项 某些函数(如 assert )可能被禁用,需要尝试其他类型的一句话木马 通过目录遍历可能发现未授权上传点,可作为替代GetShell方法 0X03 初步信息搜集 系统信息收集 获取基本信息: 当前用户: system 操作系统:Windows Server 2012 内网环境存在 杀毒软件:ESET NOD32 内网探测方法 常用工具: Nbtscan ICMP协议扫描 arp-scan scanline 通过Cobalt Strike(CS)上线后使用Ladon插件扫描: 扫描结果显示内网存在大量主机 发现AD等敏感词汇,推测存在多个域环境 0X04 横向渗透与深入信息搜集 内网渗透策略 首选漏洞利用 : MS17-010(永恒之蓝)漏洞利用 使用Ladon插件扫描内网MS17-010漏洞主机 代理设置 : CS开启socks代理 本地Kali配置代理: 绕过杀软限制 : 当交互执行被拦截时,使用单命令加载的EXP 添加用户账号进行权限维持 域渗透思路(当目标处于域环境时) 基础方法 : 提权后读取HASH,尝试获取域管账号 检查域管进程进行进程注入 HASH传递攻击域控 备用方法 : MS14-068域提权 MS14-025漏洞利用 CVE-2020-1472(Zerologon)漏洞利用 其他途径 : 扫描域内WEB或设备漏洞 从边缘设备逐步向域控渗透 关键工具与资源 主要工具 : SQLMAP:SQL注入检测与利用 御剑:网站目录扫描 Cobalt Strike:远控与内网渗透 Ladon插件:内网扫描与漏洞检测 Metasploit:漏洞利用框架 参考资源 : SQLMAP --os-shell原理: 雨九九博客 经验总结与注意事项 渗透测试要点 : 明确目标,避免时间浪费 保持思路灵活,不执着于单一方法 内网渗透前先做好充分信息搜集 失败经验 : 内网机器可能已被其他攻击者控制(如勒索软件) 杀毒软件会拦截某些攻击行为 漏洞利用存在不确定性,需准备多种方案 防御建议 : 及时修补MS17-010等常见漏洞 限制数据库用户权限(避免使用DBA账号) 禁用目录遍历功能 监控异常账户添加行为 部署杀毒软件和入侵检测系统