某次目的为导向的内网渗透-取开发源码
字数 1679 2025-08-24 07:48:33
内网渗透实战:以获取开发源码为目标的内网渗透技术详解
任务概述
本次渗透测试任务的目标是某地区软件开发公司,主要目的是获取其产品源码或开发/测试环境的访问凭证。任务最终成功获取了目标公司的开发源码,并获得了甲方的认可。
第一阶段:信息收集与初始入侵
1. 资产定位与识别
- 使用FOFA搜索引擎进行目标资产检索
- 根据资产指纹特征,使用扫描工具进行详细探测
- 关注新出现的漏洞利用(exp)可能性
2. 初始入侵
- 通过编码方式将webshell内容上传至目标站点
- 验证webshell是否成功解析并能够连接
- 建立初步的远程控制通道
第二阶段:内网信息收集
1. 基础信息收集
- 执行基本的系统信息收集命令
- 发现内网IP段为10.x.x.x(典型内网地址段)
2. 内网探测
- 上传精简版netspy工具探测其他网段
- 使用fscan等工具进行内网扫描,重点关注:
- 445端口(SMB服务)
- NetBIOS主机名中包含dev、ops、code、git等关键词
- Web标题中包含response、git、code等关键词
3. 目标分析
- 通过前期调研,发现目标单位主要产品为:
- CRM套件
- 云办公产品
- 与猎豹合作使用Oracle数据库
- 判断可能存在基于Java中间件的二次开发产品
第三阶段:内网横向移动
1. 发现关键资产
- 内网扫描发现两个WebLogic服务(端口7001)
- 使用漏洞扫描工具确认存在历史漏洞
- 验证漏洞可利用性(可执行命令)
2. 绕过安全防护
- 执行tasklist查看杀毒软件(发现诺顿)
- 采用迂回战术绕过杀毒软件防护
- 通过命令执行查看硬盘内容
- 检查WebLogic发布的代码包
3. 权限提升与凭证获取
- 确认WebLogic漏洞获得的权限为Administrator
- 上传procdump工具获取lsass进程内存
- 将结果放在WebLogic默认界面的静态目录下
- 下载并解密获取系统密码
第四阶段:敏感数据获取
1. 共享文件访问
- 使用Impacket的smbclient.py连接目标
- 命令示例:
proxychains python3 smbclient.py administrator:passrrrr@10.210.22.3 - 或使用哈希认证:
proxychains python3 smbclient.py administrator@10.133.22.22 -hashs xxxxxx:xxxxx
- 命令示例:
- 发现backup文件夹(推测为开发版本备份)
- 获取开发历史文件和测试文件
2. 关键信息发现
- 从文件中发现软件使用指南和登录方式
- 发现核心软件系统开发项目管理账本
- 通过翻译确认内容价值
3. 远程桌面访问
- 利用WebLogic漏洞尝试访问桌面
- 发现语言设置导致乱码问题
- 在管理员不在线时冒险登录
- 在备注处发现登录凭证
第五阶段:源码获取与任务交付
1. 源码定位与打包
- 搜索桌面和各磁盘内容
- 定位到源码所在位置
- 就地打包源码文件
- 将打包文件放入web静态目录
2. 文件下载
- 直接从web静态目录下载源码包到本地
- 验证源码完整性和可用性
3. 任务交付
- 提交获取的源码
- 获得甲方认可
- 根据要求部署持续控制机制
关键技术与工具总结
-
信息收集工具:
- FOFA搜索引擎
- 内网扫描工具(fscan等)
-
漏洞利用:
- WebLogic历史漏洞利用
- 免杀技术绕过诺顿防护
-
凭证获取:
- procdump获取lsass内存
- 哈希传递攻击
-
横向移动:
- Impacket工具包(smbclient.py)
- 内网代理(proxychains)
-
数据获取:
- SMB共享文件访问
- 远程桌面控制
经验总结与最佳实践
-
目标定位:
- 前期调研对后续渗透方向判断至关重要
- 关注合作方技术栈可推测目标技术架构
-
免杀技术:
- 遇到杀毒软件时采用迂回战术
- 避免使用常见远控工具降低被发现风险
-
敏感数据获取:
- 优先关注备份目录和共享文件夹
- 开发文档和测试文件常包含关键信息
-
风险控制:
- 管理员不在线时进行操作降低风险
- 采用单次命令执行而非长期驻留减少痕迹
-
效率优化:
- 自动化扫描与人工分析结合
- 根据扫描结果快速定位关键系统
防御建议
针对此类攻击,企业可采取以下防御措施:
- 及时修补中间件已知漏洞
- 加强杀毒软件防护能力
- 限制内网共享文件夹权限
- 避免在系统中明文存储凭证
- 实施严格的网络分段策略
- 监控异常进程(如lsass内存dump)
- 定期审计系统配置和权限