Kerberos协议(AS_REQ&AS_REP)

AS_REQ

用户向KDC发起AS_REQ,请求凭据是用户 hash加密的时间戳。请求凭据放在PA_DATA里面。

下面是字段的介绍:

Pvno  kerberos协议版本号:05(Hex)
5MSG-TYPE 类型 AS_REQ对应(krb-as-req)0a(Hex)
PA-DATA  预认证信息数据 一个列表,包含若干个认证消息用于认证,每个认证消息有type和value。
AS_REQ 阶段主要用到的有两个
  1.ENC_TIMESTAMP
  这个是预认证,就是用用户hash加密时间戳,作为value 发送给AS服务器。然后AS服务器那边有用户hash,使用用户hash进行解密,获得时间戳,如果能解密,且时间戳在一定的范围内,则证明认证通过。
  2.PA_PAC_REQUEST
  这个是启用PAC支持的扩展。PAC(Privilege Attribute Certificate)并不在原生的kerberos里面,是微软引进的扩展。PAC包含在AS_REQ的响应body(AS_REP)。这里的value对应的是include=true或者include=false(KDC根据include的值来判断返回的票据中是否携带PAC)。
REQ_BODY 
  1.cname
  PrincipalName 类型。PrincipalName包含type和value。
  KRB_NT_PRINCIPAL = 1 means just the name of the principal 如daizhibin
  KRB_NT_SRV_INST = 2 service and other unique instance (krbtgt) 如krbtgt,cifs
  KRB_NT_ENTERPRISE_PRINCIPAL = 10 如 user@domain.com
  在AS_REQ里面cname 是请求的用户,这个用户名存在和不存在,返回的包有差异,可以用于枚举域内用户名。
  2.sname
  PrincipalName 类型,在AS_REQ里面sname是krbtgt,类型是KRB_NT_SRV_INST
  3.realm
  域名
  4.from
  发送时间
  5.till
  到期时间,rubeus和kekeo都是20370913024805Z,这个可以作为特征来检测工具。
  6.nonce
  随机生成的一个数kekeo/mimikatz nonce是12381973,rubeus nonce是1818848256,这个也可以用来作为特征检测工具。
  7.etype
  加密类型
这个地方要注意的是如果在配置里面选择用hash(不是plaintext)的话,hash的加密类型,要跟etype一样。因为KDC是按照etype类型选择用户对应加密方式的hash,如果是选择明文(plaintext),那么client 会按照etype里面的加密方式将明文加密成hash

AS_REP

posted @ 2019-12-16 16:18  一只猪蹄  阅读(363)  评论(0编辑  收藏