KoreanHackerTeam
Moderator
PTH(Pass The Hash) 攻击
1 概述
获取一台主机的本地管理员组成员账号的口令NTLM
后,不需破解获取口令明文,使用 PTH
方式,将管理员账号及 NTLM
注入当前会话作为凭据,利用该凭证可以渗透获取周围主机的管理权限对方主机需存在相同的账号,且是管理员组成员
在
Windows NT 5.x
系统中,管理员组账号的网络登录均能获取系统管理权在
Windows NT 6.x
系统及更高的版本中,管理员组(SID
非500
)账号的网络登录不能获取系统管理权限,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 攻击
mimikatz
的 pth
功能需要本地管理员权限,这是由它的实现机制决定的,需要先获得高权限进程 lsass.exe
的信息对于
8.1/2012r2
,安装补丁KB2871997
的 Win 7/2008r2/8/2012
,可以使用 AES keys
代替 NT hash
使用
mimikatz
先获取 hash
:
코드:
|
코드:
|
3.1 工作组
코드:
|
코드:
|
Pass The Hash
已经无法成功,唯独默认的 Administrator
(SID 500) 账号例外,利用这个账号仍可以进行 Pass The Hash
远程 ipc
连接。3.2 域内用户
前提是:域用户为本地管理组成员
코드:
|
코드:
|
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-113
的 SID
,为管理组中的本地账号添加一个 S-1-5-114
的 SID
,这样方便通过域策略进行管理,例如从域策略中全面禁止这类账号的网络登录。5 针对 RDP 的 hash 传递攻击
说起 hash 传递攻击(pth),想到一般的都是 psexec wce mimikatz 等直接执行命令。本节绍了一种利用 mimikatz + NThash 来启动 mstsc.exe 实现远程登陆 windows 桌面的方法,对不能执行命令又破解不出密码的环境有很大的帮助。
其原理(条件)是远程目标需要使用受限管理模式(Restricted Admin Mode),因为此模式下支持 kerberos 认证,所以能使用 hash 来登陆。
코드:
|
코드:
|
코드:
|
코드:
|
코드:
|
코드:
|
6 防御
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Policies\System\FilterAdministratorToken
,系统中一个有 Admin ApprovalMode
,UAC
就是通过上面的注册表键值来判断,默认设置为 0
。如果设置为 1
,则 SID
为 500
的管理员也不能通过网络登录的方式获取高权限。