[玩转系统] 使用 PowerShell 进行 LDAP 侦察的基础知识
作者:精品下载站 日期:2024-12-14 06:16:11 浏览:14 分类:玩电脑
使用 PowerShell 进行 LDAP 侦察的基础知识
在本系列的介绍性文章中,我们回顾了 Active Directory (AD) 服务帐户是什么,解释了为什么这些特权帐户存在严重的安全风险,并承诺在未来的文章中详细介绍针对服务帐户的 4 种类型的攻击。这篇文章探讨了其中的第一个攻击:LDAP 侦察,攻击者可以使用它来发现 IT 环境中的服务帐户,同时避免检测。
具体来说,在这篇文章中,我们将探讨没有特殊权限(例如域管理员甚至本地管理员权限)的攻击者如何使用简单的 PowerShell 查询来查找服务帐户,而无需安装或学习 Bloodhound 等专门工具。
查找特权帐户
Active Directory 提供了许多安全和管理优势,但对于好奇的攻击者来说,事情也变得有点太容易了。由于 AD 的架构,一旦攻击者渗透到任何加入域的计算机,他们就能够查询目录及其对象。由于默认情况下 Active Directory 不提供对可疑活动进行审核和发出警报的机制,因此它们通常可以避免检测。
以下是攻击者通过查询 LDAP 发现服务帐户的一些方法。
服务主体名称 (SPN) 发现
服务帐户利用 SPN 来支持 Kerberos 身份验证。虽然这提高了安全性,但也留下了这些帐户的确切使用地点和用途的痕迹。此信息很容易被攻击者利用。 SPN 通常用于运行服务来支持 Microsoft SQL Server 和 SharePoint 等应用程序。
在另一篇博客文章中,我们演示了如何执行高级 AD 侦察;但是,有更简单的方法可以获取我们所需的信息。使用以下简单的 LDAP 查询,攻击者可以获得已注册 SPN 的 AD 帐户列表,以及它们提供访问权限的计算机、应用程序和数据:
#Build LDAP filters to look for users with SPN values registered for current domain
$ldapFilter = "(&(objectclass=user)(objectcategory=user)(servicePrincipalName=*))"
$domain = New-Object System.DirectoryServices.DirectoryEntry
$search = New-Object System.DirectoryServices.DirectorySearcher
$search.SearchRoot = $domain
$search.PageSize = 1000
$search.Filter = $ldapFilter
$search.SearchScope = "Subtree"
#Execute Search
$results = $search.FindAll()
#Display SPN values from the returned objects
foreach ($result in $results)
{
$userEntry = $result.GetDirectoryEntry()
Write-Host "User Name = " $userEntry.name
foreach ($SPN in $userEntry.servicePrincipalName)
{
Write-Host "SPN = " $SPN
}
Write-Host ""
}
结果中的 SPN 值将显示每个帐户的注册位置以及在该系统上注册的服务。例如,以下是 SQL 服务帐户的 SPN 值:
使用通用对象属性发现服务帐户
虽然 SPN 非常可靠且信息丰富,但它们不会生成完整的服务帐户列表,因为许多帐户不通过 SPN 与 Kerberos 集成,并且不会设置 SPN 值。但是,没有域权限的攻击者通常仍然可以通过其他方式发现服务帐户。特别是,大多数组织使用命名约定,例如让所有服务帐户名称以“SVC”或类似名称开头,并且服务帐户通常放置在自己的组织单位 (OU) 或组中。
根据帐户命名约定查找服务帐户
下面是一个 PowerShell 脚本,它将查找名称中包含“svc”的所有帐户:
#Build LDAP filter to find service accounts based on naming conventions
$ldapFilter = "(&(objectclass=Person)(cn=*svc*))"
$domain = New-Object System.DirectoryServices.DirectoryEntry
$search = New-Object System.DirectoryServices.DirectorySearcher
$search.SearchRoot = $domain
$search.PageSize = 1000
$search.Filter = $ldapFilter
$search.SearchScope = "Subtree"
#Add list of properties to search for
$objProperties = "name"
Foreach ($i in $objProperties){$search.PropertiesToLoad.Add($i)}
#Execute Search
$results = $search.FindAll()
#Display values from the returned objects
foreach ($result in $results)
{
$userEntry = $result.GetDirectoryEntry()
Write-Host "User Name = " $userEntry.name
Write-Host ""
}
根据OU查找服务帐户
下面是一个 LDAP 过滤器,可以将其替换到前面的脚本中,以查找名称中包含“Service”或“svc”的任何 OU:
$ldapFilter = "(&(objectClass=organizationalUnit)(|name=*Service*)(name=*svc*)))"
然后,攻击者可以在这些 OU 中搜索所有用户对象,以找到您的服务帐户。此脚本重点关注名称中带有“Service”的 OU:
$search = New-Object System,DirecoryServices.DirectorySearcher
$search.SearchRoot = "LDAP://OU=Service Accounts,OU=JEFFLAB,DC=local"
$search.PageSize = 1000
$search.Filter = $ldapFilter
$search.SearchScope = "Subtree"
通过用户帐户控制发现服务帐户
在 Active Directory 中搜索服务帐户的另一种偷偷摸摸的方法是调查帐户控制设置,因为服务帐户通常具有与常规用户帐户不同的设置。最好的例子是“密码永不过期”设置——服务帐户的密码可能设置为永不过期,因为重置密码的操作可能很乏味,并会导致应用程序或服务中断。
使用 PowerShell,可以使用稍微复杂的 LDAP 过滤器找到启用此值的所有帐户:
$ldapFilter = "(&(objectclass=user)(objectcategory=user)(useraccountcontrol:1.2.840.113556.1.4.803:=65536))"
特权发现
虽然本文仅关注在不利用任何特权的情况下查找服务帐户的方法,但如果攻击者确实找到了对网络内的一个或多个系统具有特权的帐户,则还有许多其他有效的方法来发现服务帐户。他们包括:
- 枚举端点上的服务并提取起始名称帐户
- 在 web.config、脚本和其他可能对服务帐户进行硬编码的位置中搜索连接字符串
- 探索授予“作为服务登录”权限的用户的本地策略
- 提取非交互式登录类型的事件日志
- 查找应用程序池和其他Web应用程序服务帐户
利用发现的帐户
一旦对手获得了服务帐户列表,他们的下一步就是利用它们。在以下帖子中了解他们的一些选项:
- 使用 Kerberoasting 提取服务帐户密码
- 使用银票进行有针对性的服务帐户利用
- 利用 KRBTGT 服务帐户获取黄金门票
在 Netwrix 攻击目录中了解有关 LDAP 侦察和其他攻击技术的更多信息。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag