详述一次拿shell后的单机信息搜集和贯穿整个内网的大型横向渗透
字数 1328 2025-08-25 22:58:41
内网渗透实战:从单机信息搜集到横向渗透
1. 初始渗透阶段
1.1 目标发现与初步测试
- 目标为基于Vuex开发的APP,参数全加密
- 测试账号无数据,常规功能测试无果
- 发现客服机器人功能,通过交互触发文件上传功能
1.2 文件上传漏洞利用
- 上传文件后系统返回编号而非直接地址
- 通过抓包分析发现绝对路径引用漏洞:
- 系统在响应中直接暴露了文件服务器内网地址
- 开发未使用相对路径或API参数,直接引用文件服务器绝对路径
1.3 突破不出网限制
- 文件存储服务器不出网,常规webshell无法回连
- 使用JSP文件管理器(2007年工具)实现不出网环境下的文件管理
- 通过.bash_history文件查看历史命令记录(因history命令被限制)
2. 单机信息搜集
2.1 系统信息搜集
- 执行
ps -ef发现进程中的明文密码 - 对比.bash_history中脚本密码,确认密码复用情况
- 检查/etc/passwd、/etc/shadow等关键文件
2.2 文件系统分析
- 按修改时间排序目录,重点关注近期修改的目录
- 网站目录分析:
- 发现开发习惯:直接在旧版中间件上部署新代码
- 早期版本保留在旧中间件中
- 关键目录发现:
- dashuju文件夹
- druid(阿里开源数据连接池)目录
- ZooKeeper目录
2.3 网络架构分析
- 通过hosts文件确定机器处于DMZ网络
- 主机名命名规则反映机器功能(db=数据库等)
- 确认站库分离架构
3. 横向渗透技术
3.1 密码复用利用
- 发现多系统使用相同密码
- 通过hosts文件中的主机列表进行横向移动
3.2 中间件管理界面利用
- 发现Druid、ZooKeeper等管理界面
- 通过管理界面获取200+个URL、cookie等信息
- 发现备用服务器存在相同配置问题
3.3 关键文件发现
- 使用JSP脚本获取网站目录下所有路径
- 发现包含内网IP列表的ip.xls文件(6w+条数据)
- 通过文件时间戳和命名规则推断网络架构
4. 渗透技巧总结
-
信息搜集优先原则:
- 历史命令记录(.bash_history)
- 进程信息(ps -ef)中的密码泄露
- hosts文件分析
- 目录时间排序分析
-
开发习惯利用:
- 绝对路径引用漏洞
- 密码复用模式
- 版本迭代方式
-
不出网环境突破:
- JSP文件管理器使用
- 绝对路径漏洞利用
- 内网服务发现
-
横向移动技巧:
- 密码喷洒攻击
- 管理界面未授权访问
- 网络拓扑推断
5. 防御建议
-
开发层面:
- 避免绝对路径引用
- 不同系统使用不同密码
- 敏感信息不应出现在进程参数中
-
运维层面:
- 限制history命令记录
- 定期清理.bash_history
- 管理界面应做访问控制
-
架构层面:
- 严格区分DMZ与内网
- 避免内网IP列表外泄
- 实施网络分段隔离
-
安全监控:
- 监控异常文件上传行为
- 检测异常进程创建
- 审计管理界面访问日志
6. 工具与命令参考
-
关键命令:
ps -ef # 查看进程及参数 cat ~/.bash_history # 查看历史命令 ls -lt # 按时间排序查看目录 -
利用工具:
- JSP文件管理器(不出网环境使用)
- Burp Suite(抓包分析)
- 自定义JSP脚本(目录遍历)
通过此案例可以看出,内网渗透的核心在于细致的信息搜集和对开发、运维习惯的深入分析,往往简单的配置错误或开发疏忽就能导致整个内网沦陷。