网络安全学习-9

258 阅读3分钟

一、搭建encrypt-labs靶场,复现AES加密绕过和加签绕过实验

1、搭建靶场

  1. 下载emcrypt-labs
  2. 使用phpstudy搭建靶场,如下:
  3. 启动靶场

2、复现AES加密绕过

  1. 登录靶场使用F12,使用XHR断点功能,观察并分析数据包:

  1. 通过分析数据包得知,该网址使用CryptoJS库,AES加密密钥等信息。
  2. 使用Burp抓取数据包
  3. 配置插件
  4. 重新抓取登录的数据包,并将数据包发送给Repester模块

  1. 将autoDecoder产生的数据包复制到美化模块
  2. 使用Interder模块暴力破解

3、复现加签绕过

抓取数据包

使用断点功能,分析数据包

参数:

  • timestamp:时间戳
  • dataToSign: 主要用于 生成数据签名(Signature)HMAC(密钥散列消息认证码) ,确保数据的完整性和防篡改。
  • signature:使用 CryptoJS 库来计算 HMAC-SHA256 签名,用于数据完整性校验、身份验证或 API 请求防篡改。

安装flask框架,执行下面命令:

pip3 install flask

运行脚本:

配置插件

配置接口加解密时候注意端口要和脚本中的一致:

返回代理,将数据包发送给Interder模块进行暴力破解:

验证:

2、Kerberos协议

  1. 概述

Kerberos 是一种 网络认证协议,由 MIT 开发,用于在 非安全网络(如互联网)中对用户和服务进行安全认证,避免明文传输凭证。Windows Active Directory(AD)默认使用 Kerberos 进行身份认证。

  1. 核心组件
角色作用
客户端(Client)用户或设备,请求访问服务(如文件共享、数据库)。
AS(认证服务器)验证用户身份,签发 TGT(Ticket Granting Ticket)
TGS(票据授权服务器)验证 TGT,签发 服务票据(Service Ticket) 以允许访问特定服务。
服务端(Server)提供实际服务(如 SharePoint、SQL Server),验证服务票据。
  1. 票据类型
  • TGT(Ticket Granting Ticket)
    客户端与 KDC 间认证成功后获得的票据,用于向 TGS 申请具体服务的 Service Ticket。
  • Service Ticket(ST)
    由 TGS 发放,用于访问某个具体应用服务。服务端用此票据验证客户端身份。
  1. 流程:
  • 登录/认证:客户端向 AS 请求认证,成功后得到 TGT
  • 获取服务票据:客户端用 TGT 向 TGS 请求访问某个服务,获得 Service - Ticket
  • 访问服务:客户端携 Service Ticket 向目标服务证明身份,双方建立安全会话。
  1. 黄金票据和白银票据
  • 黄金票据
    • 黄金票据 是指由攻击者自己伪造的 TGT(Ticket Granting Ticket)
    • 作用:
      • 伪造任意用户身份: 冒充成域管理员、任意域内账号
    • 无限有效期访问
      • 黄金票据可以自定义有效期,甚至数百年,长期潜伏
    • 完全绕过 KDC 认证
      • 因为 TGT 是用正确的 KRBTGT 密钥加密的,TGS 会信任它
    • 跨域访问(信任域)
      • 如果两个域存在信任关系,那么黄金票据可跨域获取服务票据
    • 持久化控制
      • 即便原用户密码更改,只要 KRBTGT 主密钥未更换,黄金票据仍然有效
  • 白银票据
    • 白银票据: 控制的密钥是 某个服务账户的密钥(K_s),能直接伪造访问该服务的票据
    • 作用:
      • 直接伪造合法 Service Ticket
      • 跳过 TGS 请求与 KDC交互
      • 冒充特定服务的任何用户
      • 在目标服务范围内持久化访问

3、搭建内网渗透靶场