Kerberos Security

2019-05-04 约 2358 字 预计阅读 5 分钟

声明:本文 【Kerberos Security】 由作者 wing 于 2019-05-04 09:10:00 首发 先知社区 曾经 浏览数 100 次

感谢 wing 的辛苦付出!

前言

域方面的安全,回归到本质,大多情况下就是Kerberos协议的安全,只有深入掌握Kerberos,才可以站在不同的角度去进行TTP,抓住对方薄弱之处。

About Active Directory

Active Directory:是微软Windows Server中,负责网络游戏架构中大型网络环境的集中式目录管理Service(Directory Services),在Windows 2000 Server开始内置于Windows Server产品中,主要用于域网络中。

  • 在AD里面,一切皆对象,比如:计算机,用户,用户组,相关策略等
  • 有AD域Service,即Active Directory Domain Services
  • 依赖不同的协议进行用户认证,资源查找,管理,访问控制等等
  • 提供各种Service

Active Directory的实体结构

DNS

活动目录极度依赖DNS,因为DNS可以让AD表现出层次结构化的树状结构,同时也可以和开放的目录标准接轨,因此在搭建域时时,DNSService(或另有架设DNS Server)一定要存在于网络或该网域控制站中,不单单是资源查找需要DNS,客户端请求DC时同样需要它,通过SRV记录识别。

LDAP

Lightweight Directory Access Protocol:轻量级目录访问协议,是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。

有时我们拿到的server可能就是LDAPService器,里面可能有很多我们目标的信息,下面会详细介绍。

Kerberos

Kerberos是一种计算机网络认证协议,它允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份。它也指由麻省理工实现此协议,并发布的一套免费软件。它的设计主要针对客户-Service器模型,并提供了一系列交互认证——用户和Service器都能验证对方的身份。Kerberos协议可以保护网络实体免受窃听和重复攻击。

Kerberos协议基于对称密码学,并需要一个值得信赖的第三方。Kerberos协议的扩展可以为认证的某些阶段提供公钥密码学支持。

NetBIOS

Network Basic Input/Output System,它提供了OSI模型中的会话层Service,让在不同计算机上运行的不同程序,可以在局域网中,互相连线,以及分享数据,相当于一个API

MS-RPC

Microsoft RPC:远程调用,可以更加快速的构造出客户端/Service端模型,像Windows Server的域协议完全是基于MS-RPC,以及DNS管理工具和Microsoft Exchange Server。

NTLM认证

NTLM是NT LAN Manager的缩写,即NT LAN管理器,NTLM 是 Windows NT 早期版本的标准安全协议。

AD协议的应用

DNS

• dig

dig evilwing.me


• nslookup

nslookup evilwing.me

MS-RPC

  • Samba
    Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件。
  • 强大的Impacket网络工具包
    • smbserver.py
      #### LDAP
  • openLDAP
    OpenLDAP 是 LDAP 协议的一个开源实现。LDAP Service器本质上是一个为只读访问而优化的非关系型数据库。它主要用做地址簿查询(如 email 客户端)或对各种Service访问做后台认证以及用户数据权限管控。(例如,访问 Samba 时,LDAP 可以起到域控制器的作用;或者 Linux 系统认证时代替/etc/passwd的作用。)
  • ldapsearch

Kerberos

  • Kerberos由麻省理工学院创建,作为解决这些网络安全问题的解决方案。

通过DNS去发现AD

腾讯云文档相关介绍
SRV记录
SRV记录是Service器资源记录的缩写,记录Service器提供的Service,SRV记录的作用是说明一个Service器能够提供什么样的Service。

  • _gc._tcp – 全局目录
  • _ldap._tcp – ldap Service器
  • _kerberos._tcp – KDC
  • _kpasswd._tcp – Kerberos 密码变更Service

nmap查询:

nmap -Pn --script dns-srv-enum --script-args "dns-srv-enum.domain='pentestlab.com'"


tips:加一个DNS,为DC的IP,这样就可以在MAC本机上查询出来。

端口扫描:
发现53端口和389端口同时开启就有可能是DC。

定位域控的话,其他熟悉的方法有:

  • net time /domain
  • nslookup
  • nltest /dclist:domainname
  • and so on

MS-RPC

MSRPC通信过程

net user /domain

wireshark抓包分析

首先向DC请求SMB连接,然后请求$IPC共享

建立SMBR文件,bind SAMR。

最后执行用户列表请求

基于MS-RPC实现的Tools

个人觉得Kali下面,啊D最好用,不对,Impacket最好用。

工具方面我就不过多介绍,大家都知道怎么用,它是一把windows网络中瑞士军刀。

提权以后,下一步可能就会进行横向渗透

  • DCOM
  • Psexec
  • WMIC
  • Wmiexec
  • Smbexec
  • Powershell remoting
  • AT
    以上手法都是基于MS-RPC协议。

LDAP

  • LDAP是AD中的轻量级的目录访问控制协议
  • DC中一般会开放三个端口
    • 389-LDAP
    • 636-LDAPS
    • LDAP全局目录

LDAP 数据的组织方式:

  • CN:Common name
  • DC:域的组成
  • OU:组织单元
    例如

通过ldap和我们在目标上收集的凭据我们可以进行ldap查询。
这里推荐使用ldapsearch。
使用方法:https://blog.51cto.com/koala003/1663662
查询所有的用户

ldapsearch -LLL -x -H ldap://pentestlab.com -D "wing@pentestlab.com" -w "小Wing最棒"   -b dc=pentestlab,dc=com "(objectClass=user)" sAMAccountName userPrincipalName memberOf | tee domain_users.lst

域内的计算机

ldapsearch -LLL -x -H ldap://pentestlab.com -D "wing@pentestlab.com" -w "小Wing最棒"   -b dc=pentestlab,dc=com "(objectClass=computer)"

想要可视化?

Ldap Admin Tool


连接的对象可以像我们前面使用ldapsearh那样进行过滤。

Windows下有ldapadministrator

LDAP的信息枚举可以作为横向渗透前的一个重要步骤。

Kerberos

Kerberos认证过程

记得上学期期末考试考到过这个,当时刚好看了倾旋老哥的文章,所以还是挂了。

Kerberos除了代表是网络授权协议之外,也代表麻省理工学院为这个协议开发的一套计算机软件。
Kerberos在古希腊神话中被叫做赛伯拉斯,是负责看守冥界入口的恶犬,即地狱犬,在现代的艺术品中,将它描绘成三个头的

关键词:[‘安全技术’, ‘WEB安全’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now