应用 Bifrost 渗入域环境中的 Mac 主机 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

应用 Bifrost 渗入域环境中的 Mac 主机

申博_新闻事件 申博 30次浏览 已收录 0个评论

针对 macOS 的红队

苹果公司每次宣布新版本的 Macintosh 操纵体系时,都邑向前迈进一大步。 每一次变动都邑使一整套进击性东西失效,或许是增加了多个分外的停滞。 正由于如此,由于 Python 和 shell 的稳定性,红队成员和渗入测试职员汗青性地倾向于运用 Python 和 shell 敕令。 然则,跟着苹果公司的新方向的生长,不能保证外部言语如 Python、 Ruby 或 Perl 默许存在于 macOS 端点上。

这将新功用的开发推向操纵体系或苹果专用的编程言语。 毕竟,假如 Python 不在议论范围内,那末像 Empire、 Impacket 或 Responder 如许的通用东西也不不大概在议论范围内。 以至苹果本身的一些脚本言语版本,如 自动化Javascript (JXA) ,也庇护得很差,功用也不完整。

作为红队,假定你能够在 macOS 端点上实行敕令,两个最大的痛点就是证书接见和横向挪动。 然则有一件事人们常常遗忘,那就是证书有很多种情势。 MacOS 端点上有比用户暗码哈希或明文暗码更多的凭据。 具体来讲,就是 Kerberos 的票证。 这在运动目次(AD)衔接的盘算机上更有用,然则这到底有多罕见呢?

从疾速的民意观察结果来看,最少有30%的人在最少25%的时刻里碰到过到场了域环境的 Mac 主机。 为了协助处置惩罚 macOS 端点上的 Kerberos 票证,我宣布了一个新的名为 Bifrost 的开源东西。 Bifrost是一个 Objective C 库,它运用较低级别的 Kerberos API 和手动 Kerberos 收集流量,允许收集、操纵、过滤和发明 macOS 上的 Kerberos 相干信息。

这篇文章的其余部份主要关注 macOS 特定的背景学问、 Kerberos 的滥用以及防备方面的斟酌。

运动目次不仅仅是 Windows

当谈到运动目次(AD)时,大多数人最初想到的是 微软、 Windows,有时刻另有 Kerberos。 正由于如此,有大批的研讨和东西致力于这些进击面的滥用和防备。 像 Bloodhound  如许的东西试图用图论来申明 AD 进击途径,而像 Rubeus 和 Kekeo 如许的东西则旨在强调 Kerberos 在 Windows 上的特定弊病。 这篇文章将从 macOS 的角度来看一些雷同的滥用手艺,如逾越哈希通报进击,kerberoasting和票证通报进击。

然则,跟着企业的生长,除了 Windows 之外,另有更多的体系须要治理、庇护和庇护。 处理这个问题有两种主要的要领: 要么将这些新体系到场到当前的 运动目次环境中,要么找到其他一些集合治理它们的要领。 虽然不肯定是天天都邑发作的状况,但 macOS 端点到场到 Windows 运动目次环境的状况正变得愈来愈罕见。 大多数 macOS 上的终端平安或效劳供应商依然在寻觅 python 实例、歹意敕令行二进制文件或直接的 keychain 接见,这使得对 Kerberos 的 API 接见从进击性的角度来看异常有吸引力。

Kerberos

由于运动目次能够归结为用于组织用户、组、战略和容器的治理东西,因而须要有处置惩罚身份验证和受权的辅佐组件。 当涉及到收集级别的身份验证时,Kerberos 就是行业范例平安协定; 然则,Kerberos 不是微软制造的。

Kerberos  是由 MIT 建立的,用于处理这些收集平安问题 Kerberos 协定运用强加密手艺,以便客户端能够经由历程不平安的收集衔接向效劳器证实本身的身份(反之亦然)

由于 Kerberos 是开源的,而且由 MIT 免费供应,所以如今有一些主要的变体在运用。

· 最实在的情势是种种 *nix 应用程序运用的由 MIT 现实完成的 Kerberos。

· 最罕见的完成是微软改编过的协定,它与 Windows 中的运动目次一同运用——这个版本不是开源的

· Heimdal 是Kerberos 版本 5 范例的另一种免费的开源 完成。 这是 macOS 端点中包含的完成。

一般来讲,基于 Kerberos 版本5范例构建的一切框架都具有肯定水平的互操纵性,然则完成和进击面差别很大。 本博客的其余部份将集合议论 macOS 上的 Heimdal 完成。

关于那些不熟悉 Kerberos 的人来讲,下面的图片是一个很好的高层次概述:

该历程接收用户的暗码,并对其举行哈希,然后运用该暗码猎取所谓的票证授与票证(Ticket Granting Ticket,TGT)——步骤1和2。 此时,不再须要用户的明文暗码。 这个 TGT 是用户的身份。 当尝试接见收集资本(文件同享、 ssh 等)时,用户会运用这个 TGT 取得效劳票证——步骤3和4。这是一个特定于用户和他们想要接见的效劳的票证。 末了一步是向现实的效劳供应这个效劳票证,以检察用户是不是有权接见它,假如有权接见,则供应接见(比方长途挂载同享)——步骤5和6。

这里的症结是,用户的 TGT 或效劳票证也是长途认证该用户的有用要领,而不是须要用户的纯文本暗码或须要用户的哈希来通报哈希。

运动目次设置

从进击者的角度来看,起首要发明的是到场了运动目次的 macOS 端点的设置。 大多数状况下,/etc/krb5.conf 中有一个全局可读的文件。个中包含与运动目次环境交互的设置。 但这并非一个严厉的要求。 一台 macOS 盘算机能够在没有这个文件的状况下到场到运动目次中,这类状况异常罕见。 此文件包含以下信息:

· 支撑票证授与票证(TGTs)和效劳票证(如 AES256、 AES128、 RC4-HMAC 和3DES)的加密范例

· 允许可转发、可代办和可更新的票证标志

· 票证生命限期

· 缺省域和密钥分发中间(KDC)的位置和端口

· 缺省票证存储选项

用户还能够经由历程进入体系参数设置–用户和组–登录选项–收集帐户效劳器来检察他们已到场的域的 NETBIOS 短称号。

macOS 上的票证存储

下一步是肯定 Kerberos 票证存储在那里。 依据所需的操纵体系和平安级别,存储 Kerberos 凭据有很多差别的要领,然则默许状况下,macOS 运用带有 KCM (一种基于历程的凭据缓存)的凭据缓存 (ccache)条目。

Heimdal 完成了一个名为“ KCM”的凭据缓存范例,个中的操纵被传输到一个治理现实缓存内容的保卫历程。 在 OS X 10.7或更高版本中,当地默许凭据缓存范例经由历程 Mach RPC 运用 KCM 协定。 它一般经由历程“ API”缓存范例援用,以便与 Macintosh Kerberos 坚持连续性; API KCM 缓存范例在本机 OS X Kerberos 中具有雷同的称号空间。

检察凭据缓存有限子集的一种要领是翻开 Keychain Access,单击顶部的 Keychain Access 并挑选 Ticket Viewer。 这是唯一一个用于检察当前用户票证信息的 GUI 版本。 然则,这类要领看到的内容是极为有限的。 假如运用 Ticket Viewer 来猎取和存储 Kerberos 凭据,那末该信息将存储在 Keychain 中,而且能够经由历程供应登录密钥链暗码来显现。 下图中显现的 UUID 对应于与单子相干联的凭据缓存称号:

用户一般运用以下内置的二进制文件与单子存储器和 macOS 凭据缓存举行交互,这些文件不会保留任何东西到单子检察器中:

· Kinit ——经由历程输入明文暗码取得用户的初始票证授与票证(TGT)

· Klist —— 列出特定 ccache 中条目的一些元数据,或列出内存中一切可见的 ccache

· Ktutil ——处置惩罚 keytab 条目(稍后将细致引见)

· kcc ——kerberos  凭据缓存操纵

从进击的角度来看,依靠敕令行上的内置敕令是一种轻易被检测到的要领。 默许状况下,macOS 中包含的 Kerberos 框架公开了一些较低级别的 API,用于与键标签(keytab)和缓存举行交互。 要取得与 klist 相似的功用,只需在 Bifrost 中运转 list 操纵:

这将轮回遍历一切可在内存中发明的凭据缓存,并显现有关缓存和内部一切单子的信息(注重: 这不须要提拔的权限)。 上面的示例显现 LAB\lab_admin 的默许缓存(用*示意)具有一种范例的 API,这意味着凭据现实上是位于 KCM 保卫历程中的 KCM 凭据。 该缓存有两个条目: 用户的 TGT 和别的一个条目,该条目形貌了 KCM 怎样接见这些数据的信息(krb5 vs gssapi)。 不过,第一个条目现实上包含用户的 TGT,因而能够运用 -action dump -source tickets 敕令转储它:

应用 Bifrost 渗入域环境中的 Mac 主机

运用 Bifrost 导出凭据

关于上面的这张导出票证的截图中,我们有几件事须要注重。 Bifrost将起首形貌它将要抛弃的票证。 这包含主体、所运用的加密范例、逾期时刻、单子上的标志以及与单子相干的加密密钥等信息。 接下来要注重的是一个标记为 Kirbi 的庞大 base64编码字符串。 为轻易 Bifrost 的操纵,一切转储和导入的票证均采纳 Kirbi 花样。 这与 Mimikatz、 Kekeo 和 Rubeus 等东西运用的花样雷同。 这使得从 Bifrost 抛弃的票证能够马上导入到 windows 机械中,反之亦然。

票证通报

在 macOS 上导入单子相似于在 Windows 上导入单子。 要斟酌的症结问题是,每一个凭据缓存都相似于窗口中的差别登录会话。 单个凭据缓存中的一切凭据都应当具有雷同的客户端主体称号。 这将防备在雷同的凭据缓存中为 Alice 供应 TGT,为 Bob 供应 TGT,然则它们能够各自具有本身的凭据缓存,而不会发作冲突。 假定你有一张来自另一台 macOS 机械或 Windows 机械的 base64编码的 Kirbi 单子,而且愿望将其导入。 下面的屏幕截图显现了将一个 CIFS 效劳票证导入到当前用户的默许凭据缓存中(注重: 这个操纵不须要提拔权限) ,并将其导入到域控制器效劳中。

微软披露加密劫持恶意软件Dexphot,已感染近80000台设备

2018年10月,微软检测到恶意挖矿软件Dexphot的大规模分发行动。Dexphot使用了各种复杂的方法来逃避安全解决方案,包括多层混淆、加密和随机文件名来隐藏安装过程,利用无文件技术在内存中直接运行恶意代码,劫持合法的系统进程来掩盖恶意活动。Dexphot最终目的是在设备上运行加密货币挖掘程序,当用户试图删除恶意软件时,监控服务和预定任务会触发二次感染。 微软表示自2018年10月以来不断有Windows设备受到感染,并在今年6月中旬达到峰值的8万多台,自微软部署提高检测率的相关策略和攻击阻止后,每天感染的设备数量开始逐渐下降。 复杂的攻击链 Dexphot感染的早期阶段涉及许多文件和步骤。在

假如你不肯定 Kirbi 票证的内容,想看看它现实上包含什么,能够经由历程 -action describe 参数检察:

逾越哈希通报

Windows 中一个异常罕见的场景是猎取用户的哈希,然则须要将其扩展到 Kerberos 范畴以猎取完整的 TGT。 相似于 Will (@harmj0y)的 Rubeus 项目和 post,Bifrost 能够手动构建 ASN1所需的 Kerberos 流量来猎取用户哈希并恢复 TGT (注重: 这个操纵不须要高权限)。 假如在 Windows 盘算机上收集 NTLM 哈希,则应挑选 rc4加密范例。

另外,由于 Kerberos 流量是手动组织的,因而另有更多可用的选项。 假如你有用户暗码的 AES256 哈希值,但想要更轻易破解(如 RC4) ,那末运用 -tgtEnctype rc4 标志指定它。

Kerberoasting

如今你能够取得有用的 TGT 并导入它们,下一步是运用这些 TGT 来接见效劳。 威尔在他的博客中异常详实地报导了 Kerberoasting 进击,所以这里不会举行深切的讨论,然则这也是能够经由历程 Bifrost 完成的。 基本原则是,任何有用的 TGT 都能够用于要求到任何效劳的单子。 发生的票证有一部份是用相干效劳的暗码哈希加密的。 因而,假如效劳票证被迫运用较弱的加密算法,那末破解效劳帐户暗码就更轻易了。

由于取得一般效劳票证和 kerberoasting 之间的唯一区别是特地为终究单子要求较弱的加密范例,因而 Bifrost 的 asktgs 敕令只须要一个分外的标志-kerberoast true 来要求效劳票证是 RC4加密即可,而不是要求范例的 AES256。

只需逗号分开 SPN,就能够同时指定多个效劳。 在 macOS 上,盘算机账户上有四个默许的 SPN:

· afpserver/spooky.lab.local

· cifs/spooky.lab.local

· host/spooky.lab.local

· vnc/spooky.lab.local

盘算机中带有$符的帐户

在 macOS 中充任域的当地盘算机帐户与在 Windows 中有点差别。 在 Windows 中,你能够注入 SYSTEM 历程并自动长途作为盘算机 $account ——这就是为何纵然 SYSTEM 不是域帐户,你依然能够查询运动目次。 假如你能够解锁体系钥匙链(一般只须要当地治理员凭据) ,那末你能够读取盘算机带有$符的账户的明文暗码:

Bifrost能够运用这个暗码和 -action askhash 敕令来生成猎取 TGT 和这台盘算机的效劳票证所需的暗码哈希。 这个暗码和其他用户暗码的字符大概会损坏或许致使涌现敕令行剖析问题,所以假如是这类状况,只需运用 -bpassword 参数,并传入 base64版本的暗码即可,如下图所示:

macOS 上应用 Kerberos 票证

在你完成了一些 Kerberos 单子操纵以后,怎样在现实的环境中应用这些手艺来接见环境中的资本?

要运用 kerberos 单子接见长途盘算机的 SMB 同享,只需运用 mount 敕令:

mount -t smbfs "//computer/share" /local/path

这个时刻主要的是要记着,假如挂载了一个同享,当地 root 用户能够接见并遍历它。 该盘算机中的任何其他用户也能够运转 mount 敕令检察一切当前挂载的同享(相似于 windows 上的net use 敕令)。

应用 Bifrost 渗入域环境中的 Mac 主机

Alice 用户看到了 lab_admin  用户挂在了一个同享

运用 mount 敕令大概会碰到完整限制域名的问题,假如是这类状况,只须要盘算机的称号就能够了。 下面的视频显现了一个普通用户——Alice,运用域治理暗码的哈希,然后挂载并遍历域控的 C$ 同享:

运用 over-pass-the-hash 接见一个 C$ 同享的演示视频

假如你将单子导入默许值之外的凭据缓存(用*示意) ,或许愿望在磁盘上运用凭据缓存,则能够指定 KRB5CCNAME= 作为环境参数,并指定要运用的缓存。 假如你正在运用内存中的文件,请确保运用完整的称号,包含主要的API:;假如在磁盘上运用文件,请确保将FILE:增加到途径中。

还能够将 SSH 设置为运用 Kerberos 票证,但这须要为 SSH 客户端和 SSH 效劳器预备更多的设置参数。

键标签和保留的哈希

Keytab  文件相似于 SSH 密钥。 它们存储用于对效劳的用户举行身份验证的加密信息。 更具体地说,keytab 文件包含用于 Kerberos 身份验证的加密密钥,并绑定到特定的效劳主体称号(SPN)。 主要的一点缘由是由于它们能够供应一种跨多种应用程序的单点登录机制,并可用于一切主要的操纵体系。 虽然它们是以纯文本情势存储的,但它们并不完整包含暗码的明文。

每一个 macOS 装备上都有一个默许的 keytab 文件,不管它是不是到场了位于 /etc/krb5.keytab 中的域(稍后将细致引见)。 然则用户能够在任何时刻建立他们本身的 keytab。 处置惩罚 keytab 的主要二进制文件是 ktutil。 这个默许的 keytab 被锁定到 root 用户和 macOS 上具有640个权限的 keytabusers 组。 当用户建立他们本身的 keytab 时,他们能够在上面设置差别的权限。

应用 Bifrost 渗入域环境中的 Mac 主机

建立并转储一个新的 keytab

这里有一些主要的事变须要注重。 由于这是一个 *nix 环境,所以大小写的敏感性很主要。 肯定要把域设置为大写一切字母,不然哈希将不起作用。 另外,每一个条目只要一个密钥和一种加密范例,但大概有反复条目。 假如你从上面注重到,这里保留的哈希与运用明文暗码时生成的 AES256 哈希雷同。 Bifrost 还支撑在从域要求 TGT 时指定 keytab 文件和加密范例。

关于 LKDC 的一个注重事项

自10.5 入手下手的每一个 macOS 装备都包含本身的全部当地 kerberos 客栈——包含唯一的域、 krbtgt 用户和密钥分发中间。 增加当地密钥分发中间(LKDC)是为了支撑两个 Apple 装备端点之间基于 kerberos 的身份验证,而不须要将它们衔接到中心域和 KDC。 当接见长途 macOS 端点上的同享效劳(比方阅读文件体系)时,这就入手下手起作用了。

这个历程与基于 windows 的 Kerberos 有点差别,当你在挂载了一个同享文件夹后运用 Bifrost 转储票证时,这个历程异常显著:

应用 Bifrost 渗入域环境中的 Mac 主机

LKDC 挂载同享文件夹

这篇博文不会细致引见 LKDC 的一切细节以及它是怎样事情的或许是它与其他运动目次的差别之处,然则从这些数据中能够“轻松地取得”一些信息。 顶部凸起显现的地区包含长途盘算机的明文暗码、用户名和主机名。 当用Bifrost转储单子时,你会获得一个用于挂载同享的base64版本的明文暗码。 底部凸起显现的部份显现了同享的挂载位置。

请记着,这是一个完整差别的Kerberos范畴,其生成密钥的要领与本博客的其余部份差别,也与微软的完成差别。 这里的钥匙能够在  /etc/krb5.keytab 文件中当地用户的 Open Directory 属性中的 dsAttrTypeNative: HeimdalSRPKey 和 dsAttrTypeNative: kerberos 属性中找到。 你能够运用 dscl 实用程序或 Orchard  项目来读取这些文件,但必需提拔你的权限才接见个中的任何文件。这里存储的值是ASN1标记,所以假如你想要探究这些值,那末你应当运用ASN1解码器来剖析这些片断。

防备方面的斟酌

macOS 上没有太多原生的机会来深切研讨这些 API,但 Heimdal Kerberos 确切供应了一种要领,最少能够在这些 API 调用上启用调试级日记纪录:

 

sudo defaults write /Library/Preferences/com.apple.Kerberos logging -dict-add krb5 '0-/SYSLOG:'
sudo defaults write /Library/Preferences/com.apple.Kerberos logging -dict-add kcm '0-/SYSLOG:'
sudo defaults write com.apple.MITKerberosShim EnableDebugging -bool true
sudo defaults write /Library/Preferences/com.apple.Kerberos logging -dict-add kcm '1-/ASL:'

默许状况下,/Library/Preferences/com.apple.Kerberos.plist 文件并不存在,这个文件在建立时是一个全局可读的文件。 进击者能够经由历程读取这个文件来肯定潜伏的日记纪录功用,并在权限提拔后禁用日记纪录。

另外,有了新的终端平安和效劳框架(ESF) ,就有大概检测针对 Kerberos 的进击行为。框架被及时加载到历程中。 这将在很大水平上取决于特定的环境以及哪些历程一般应用这个框架。 由于 Kerberos 确切为环境中的单点登录(Single-Sign-On,SSO)供应了一种很好的体式格局,因而大概会有一大堆第三方应用程序运用这些 API。

Bifrost 的一些功用依靠于对一个域控制器举行手动 的 Kerberos 通讯 (带有哈希的asktgt、asktgs、s4u)。 正由于如此,运转 Bifrost 代码的历程将直接衔接到域控制器上的88端口。 依据环境的差别,这多是一个简朴的检测目标。

 


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明应用 Bifrost 渗入域环境中的 Mac 主机
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址