Advanced Search
Search Results
137 total results found
UAC绕过
我们可能以为,拿到了管理员权限的 shell 已经大功告成了,实际上并不是这样。帐号与帐号之间有权限的差异,而管理员上下文的会话则有完整度(Integrity)的差异。对于管理员用户,默认完整度是中等,如果要充分利用管理员的权限,所需要的完整度等级是高,而SYSTEM上下文的完整度是 SYSTEM。 举个实际例子的话,攻击者发送了一份带有宏的恶意文件,并且受害者打开了它使得载荷得以成功执行,受害者当前的帐号是本机的本地管理员。但是返回的 beacon 却是中等完整度的,一些敏感操作无法执行,例如添加新的用户、使用...
CVE漏洞提权
我们之前讲到的提权方式,主要以利用不当配置为主,在提权过程中也可以利用 CVE 漏洞的 exp 来实现,例如内核漏洞、应用漏洞、服务漏洞等。 WinPEAS,Watson (https://github.com/rasta-mouse/Watson) 等提权工具/脚本能根据系统的版本、打的补丁历史来判断系统对哪些漏洞仍然脆落 内核漏洞提权:例如 SMBGhost (https://github.com/ZecOps/CVE-2020-0796-LPE-POC) 以及Linux平台的 Dirty Pipe (...
安全控制枚举
如何绕过常见的安全控制不是本章的内容,但是作为进攻方,我们必须知道企业都部署了哪些安全控制措施,知己知彼,做足准备。如今,我们可以使用 SeatBelt、WinPEAS、SharpUp 等工具协助我们枚举主机部署的安全控制,但是我们要知道这些工具又是怎么样帮助我们枚举出这些安全控制措施的存在的 杀毒软件以及 EDR/XDR/MDR 在如今企业里,主机基本都配备了 EDR/XDR/MDR 产品,这类产品的检测能力远比杀毒软件强大。即便是没有额外安装杀毒软件的主机,也自带防护效果良好的 Windows Defe...
计划任务
在我们获得初始会话之后,我们需要考虑如何让我们的访问持久化。原因很简单,如果我们是通过利用漏洞进来的,对方可能察觉到痕迹然后修补漏洞,如果是通过泄漏的密码进来的,对方可能修改密码,如果是利用社会工程学进来的, 对方不太可能再次上当。此外,目标企业的安全团队与产品也在监视异常情况。 持久化访问,可以通过多种方式达成,并且只要对操作系统足够熟悉、想象力足够丰富,往往能诞生出非常规的持久化方式。持久化的表现形式可以有本地后门,即可以瞬间实现提权或对特定目标的访问,例如给一个低权限帐号设置高权限的 ACL 。还可以是远程...
启动与登陆触发
我们还可以通过登陆操作来触发特定任务。与登陆相关的实现方式有数种,但实现效果是相似的。 Startup 文件夹 每个用户都拥有一个文件夹 C:\Users\[用户名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 。如果我们在其中放置一个可执行文件,当前用户会在登陆的时候触发载荷。 如果我们是想让所有用户都执行该载荷,那么我们可以放在 C:\ProgramData\Microsoft\Windows\Start Menu\Pro...
服务
考虑到很多服务也是开机启动的,因此服务也可以用来实现持久化。我们可以通过 SharPersist 工具的命令来实现 SharPersist -t service -c "C:\Windows\Tasks\Beacon.exe" -n "Update Services" -m add 我们也可以手动创建后门服务。 sc.exe create Service2 binPath= "C:\Windows\System32\calc.exe" start=auto sc.exe start Servic...
DLL 劫持与代理
当一个程序启动时,诸多 DLL 文件被加载到改程序的进程内存空间中,Windows 按照特定顺序查看系统文件夹来搜索进程所需的 DLL。 DLL 劫持可以实现持久化,如果我们想方设法让一个自启动的程序载入了我们的恶意 DLL 文件。考虑到应用越多,DLL 劫持的机会越大,因此该章节建议学员在常用主机/VM 上操作。 DLL 劫持 我们举个例子,程序 GameCenter.exe 是自启动的,并且在启动时载入数个 DLL 文件,其中没有明确某个 DLL 的绝对位置。因此 DLL 文件被按照一定的搜索顺序,例如...
历史 CVE 漏洞
在进入域环境后,我们就可以对域进行侦查与枚举了。域是个很庞大的设施,有诸多信息需要我们去提取和枚举,一开始我们可能会觉得有些手足无措,但只要我们梳理好顺序与思路,就不会错过重要的线索。 我一直坚持,枚举和利用总是从最简单的做起,即 low hanging fruit。对于一个保持系统更新的企业域环境来说,想通过 1 个 CVE 漏洞一键接管是较难遇到的事情了,虽然有一些辅助性的漏洞或者默认配置(例如未开启LDAP签名、频道绑定)可以协助我们对单个主机进行执行远程代码或者特权提升。但另一方面,企业并非总是时刻保持域...
用户与组
用户与组是域的重要组成部分,并且组是用户的容器,在同一个组里的用户具有特定的相同属性。对于用户和组的枚举,自然是我们首先要做的,因为很多漏洞和不当配置的利用都是围绕着用户与组、主机、服务等展开的。 准备工作 我们可以使用多种工具对域内的用于和组进行枚举,这里,我们使用 PowerView 脚本。我们可以通过 powershell-import 导入脚本,然后使用 powershell 或者 powerpick 命令进行脚本命令执行。 Web02 在 white-bird.local 域中,我们可以进而...
主机
主机是用户、服务的载体,清晰了解每个主机的作用十分重要。在进入域后,我们可以记下主机的 IP、操作系统、FQDN 等信息。 FQDN FQDN 的形式是 主机名与完整域名的接合,是在域内定位一台域主机的方法之一。在 PowerView 中,dnshostname 属性即主机的 FQDN。 Get-NetComputer | select dnshostname 当前域,有 3 个主机,其中 2 个为 Windows 主机,dev01 为 Linux 主机。 我们再看看其他域的情况: RAVEN-ME...
用户会话与令牌
当我们在一台 Windows 域主机上获得了 SYSTEM 权限,我们可以模仿任何在本机登陆的域用户。如果模仿的对象在域内具有其他特权,我们可以利用此来移动到其他主机甚至域。 在 Windows 本机,我们可以有这些方式来查询 进程的拥有者 我们可以使用程序 tasklist.exe 来查询进程的拥有者: tasklist.exe /v 或者 PowerShell 命令 Get-Process -IncludeUserName Get-Process -IncludeUserName 可惜...
DACL
DACL 揭露了域内对象与对象之间的权限关系,可以是用户对用户的,用户对主机的,主机对主机的,诸如此类。例如,用户 John 对用户 app_security 具有 GenericWrite 的权限,那么 John 可以为其设置一个 SPN。DACL 无疑是域内最值得我们关注的利用之一。 对于 DACL 的枚举,最直观的就是使用 SharpHound 进行信息搜集然后使用 BloodHound 进行查看,虽然 BloodHound 有的时候也会遗漏一些 DACL。 除此之外,我们也可以组合 PowerVie...
内部服务访问
我们在域内可以访问的其他服务也不可忽视,因为企业的域环境同时也是个内部网络。我们在一般内部网络渗透中会遇到的应用以及对应的攻击手法,在企业的域环境中依旧适用。诸如 FTP,SSH,HTTP(S) 等普通内网中就很常见的网络服务不再赘述,我们来讲在 AD 中更应当注意的内部服务,例如 SMB 与 MSSQL。 SMB 如果拿下的的用户可以访问其他主机的 C$ 或 ADMIN$,意味着该用户拥有对该计算机的本地管理员权限。除了 C$ 和 ADMIN$,还要注意任何可读/可写的共享目录,例如某个服务器开放 dev 共...
OU 与 GPO
组织单元,即 OU,可以用来充当具有同样性质的一些对象的容器。例如,同为 SQL 服务器的 SRV01 与 SRV02 可以用 OU SQL_Server 来存放。再比如,一家公司里,职位相同的一些员工如 HR 的帐号,由 OU HR 来盛放。 而 GPO 是一组定义了系统配置的设置, 并可作用于 OU。通过枚举 GPO,我们可以查看当前域对特定 OU 的特殊设置。我们可能不知道 GPO 的详细设置,但我们可以根据 GPO 名称或描述来推断它们的作用。GPO也可能有助于我们移动到其他机器。例如,GPO可以授予某些...
Kerberos 委派
Kerberos 委派是什么,以及怎么利用,也许你们现在会感到有些困惑,这不要紧,因为我们目前只是在枚举阶段,但是我们需要知道 Kerberos 委派对于我们的利用是很关键的,因此对其进行枚举是前期就需要完成的事情。 从结果出发,委派可以让我们在其他主机上执行远程命令,从而接管这些主机。但我们也需要注意,有些用户是不允许被委派的,比如域管理员,因为他们具有很高的权限。 WHITE-BIRD 中的 Administrator 就不可被委派。 我们需要枚举的委派有 3 类: 非约束委派 非约束委派无疑...
ADCS
ADCS 的利用,是这几年里较新的利用手段。因此,我们也需要对 ADCS 进行枚举。ADCS(Active Directory 证书服务)是 Microsoft 的 PKI 实现,可与现有的 Active Directory 森林集成,从而实现数字证书的创建和管理。这些证书具有多种功能,如对用户进行身份验证,对文件和通信进行加密,提供数字签名以及验证电子文档。ADCS 使管理员能够建立并监督他们的证书颁发机构(CA),以向组织内的用户、计算机和其他资源颁发数字证书。与使用外部证书提供商相比,这种方法被认为更安全、更...
域信任
域信任决定了域与域之间对彼此的资源访问权限,尤其是当我们已经获得了当前域的域管理员,想移动到其他的域或森林里,利用域信任尤其必要。即便尚未获得当前域的域管理员,我们也可以枚举外部域的信息从而打开突破口,外部成员也可以给我们带来突破域的途径。 需要强调的是,域信任的方向与资源访问的方向是相反的,域 A 信任 域 B,那么 域 B 中的主体可以访问 域 A 中的资源。如果信任是双向的,则资源访问也是双向的。枚举域的信任是很直接的,我们只需要命令 Get-DomainTrust。接下来,我们讨论一下各种情况下的域信任。...
在 Linux 上的信息搜集
在 Linux 上的信息搜集,这里有两层含义,一是指在Linux域主机上对所在域进行侦查,另一层是指使用 Kali Linux 或其他 Linux 攻击主机对目标域进行侦查。 第二个 Beacon 目前,我们只有一个来自 Web02 的 Beacon,以及 Web01 的 root 权限 Shell,还没有其他 PROD 域中用户的明文凭证。回想 chatjs 应用中出现的用户,我们发现他们都是域用户。 那么就可能存在密码重用,尤其是我们已经破解出 Alice 的密码为 elizabeth (无法还原...
历史漏洞的利用
CVE-2020-1472 ZeroLogon漏洞 因为脆弱的密码学设计,攻击者可以绕过认证并模仿任何域主机,包括域控制器,以实现提权。 Zerologon 的核心问题是 Netlogon 远程协议的加密实现中存在缺陷。该协议使用 AES-CFB8 加密方案的自定义实现,这需要一个初始化向量 (IV)。Microsoft 的实现使用 16 个零字节的固定 IV,使其容易受到攻击。如下图所示,当全 0 的 IV 与全 0 的输入,即便密钥是随机的,有1/256 的概率得到 8 位的全 0 密文。空间为 256 的...
Kerberos认证与利用
Kerberos 深入了解 Kerberos 协议对于 AD 的利用十分重要。Kerberos 是 Active Directory 中一个非常有趣的话题,因为许多利用都是基于 Kerberos 的。自 Windows Server 2003 开始,Kerberos 充当着身份认证的主要角色。NTLM 认证采用了质询响应的机制,而 Kerberos 是基于票据系统的。 因此,在利用 Kerberos 之前,我们应该理解 Kerberos 认证的每一步。在 Kerberos 认证中,有这么几个角色我们需要知道...