记一次C/S架构客户端配置文件泄露导致的内网沦陷
字数 1330 2025-08-06 18:07:42
C/S架构客户端配置文件泄露导致内网沦陷实战分析
漏洞背景
本文记录了一次通过C/S架构客户端配置文件泄露导致内网沦陷的完整攻击过程。攻击者利用客户端程序中硬编码的数据库凭据获取初始访问权限,进而通过内网横向移动最终控制域控服务器。
攻击流程
1. 信息收集与初始访问
-
发现客户端程序:目标系统使用C/S架构的客户端程序
-
逆向分析客户端:
- 使用工具如IDA Pro或dnSpy反编译客户端程序
- 发现程序硬编码了数据库连接字符串
- 提取到明文数据库凭据:
server=192.168.1.100;uid=sa;pwd=Admin@123;database=test
-
数据库连接测试:
- 使用Navicat等工具尝试连接内网数据库服务器
- 成功连接并发现敏感数据表
2. 权限提升与横向移动
-
获取数据库服务器权限:
- 发现数据库服务器同时运行Web服务
- 通过数据库写入webshell到Web目录
- 使用蚁剑等工具获取Web服务器交互式shell
-
内网信息收集:
- 执行
ipconfig /all获取网络配置 - 执行
net user /domain查看域用户 - 执行
net group "domain admins" /domain确认域管理员
- 执行
-
使用pr.exe进行提权:
- 上传免杀处理的pr.exe提权工具
- 执行提权操作获取系统权限
- 注意:需确保工具行为免杀,避免触发安全防护
3. 域控攻陷
-
定位域控服务器:
- 执行
nltest /dsgetdc:域名或查看DNS记录 - 确认域控IP地址
- 执行
-
获取域控凭证:
- 方法一:读取域控服务器内存中的密码
- 方法二:导出NTDS.dit文件获取域控hash
-
Pass the Hash攻击:
- 使用获取的域控hash尝试登录域内其他主机
- 使用工具如mimikatz或impacket套件中的psexec.py
关键技术与工具
-
逆向分析工具:
- IDA Pro
- dnSpy (.NET程序反编译)
- Ghidra
-
数据库连接工具:
- Navicat
- SQLCMD
-
内网渗透工具:
- pr.exe (免杀处理)
- mimikatz
- impacket套件
- Cobalt Strike
-
免杀技术:
- 代码混淆
- 分阶段加载
- 白名单程序劫持
- 行为混淆
防御建议
-
客户端安全:
- 避免在客户端硬编码敏感凭据
- 使用加密存储必要配置
- 实施代码混淆保护
-
数据库安全:
- 使用最小权限原则
- 定期轮换凭据
- 启用数据库审计日志
-
内网防护:
- 部署网络分段
- 启用主机防火墙
- 监控异常网络连接
-
域控安全:
- 限制域管理员登录范围
- 启用LSA保护
- 监控NTDS.dit访问
攻击技巧与注意事项
-
HW行动中的得分要点:
- 控制域控后应立即收集域内所有主机凭证
- 快速横向移动到尽可能多的主机
- 保持持久化访问
-
免杀处理关键点:
- 静态免杀:修改特征码,加壳/混淆
- 行为免杀:避免敏感API直接调用
- 网络通信免杀:使用合法协议隧道
-
内网横向移动技巧:
- 优先攻击管理类系统(如运维平台、监控系统)
- 利用域信任关系跨域攻击
- 收集并利用内网中的备用凭据
通过此案例可以看出,一个简单的客户端配置泄露可能导致整个内网沦陷,强调了纵深防御和安全开发实践的重要性。