|
原文链接:【思路总结】Windows内网提权的十个方向
前言:仅记录思路方向,具体技术细节可遇到后对照深入研究。如果有补充,非常欢迎大家评论、留言。
PART 01 利用Windows系统漏洞
匹配可提权漏洞编号,系统是否缺失该补丁。
- 1人工查用systeminfo命令 或 wmic qfe get HotFixID 命令获取已经打了的补丁编号。
- 2利用Metasploit的enum_patches模块
- 3利用Windows Exploit Suggester工具
- 4利用PowerShell的Sherlock脚本
- 5利用Cobalt Strike3.6及之后版本的elevate命令
复制代码
PART 02 利用系统服务权限配置漏洞
- 1利用PowerShell的PowerUp脚本
- 2利用Metasploit的service_permissions模块
- 3利用注册表键AlwaysInstallElevated 设置项(漏洞来源Windows Installer特权安装功能)
复制代码 PART 03 利用可信任服务路径漏洞
- 1利用Metasploit的trusted_service_path模块
- 2人工查用wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\" |findstr /i /v """ 命令查找没有用双引号表示路径且路径存在空格的服务,之后查找这些存在漏洞且可读可写的服务路径,使用恶意程序重命名覆盖后重启服务。
- 3
复制代码
PART 04 利用自动安装配置文件信息泄露
脚本批量给机器部署环境时遗留的配置文件中,可能存在本地管理员账号密码信息。
如:C:\sysprep.inf C:\Windows\System32\Sysprep\unattend.xml等
- 1人工收集这些目录,批量判断是否存在
- 2利用Metasploit的enum_unattend模块
复制代码
PART 05 利用高权限计划任务
检查是否存在高权限账户执行的计划任务。
- <font size="3" face="Tahoma"> 1可通过 schtasks /query /fo LIST /v 查询当前计算机的计划任务
- 2发现存在高权限执行的计划任务后记录下任务的路径,后续查找有权限缺陷,可以低权限写入的路径,然后覆盖该计划任务的执行程序。 可以使用AccessChk微软官方提供的检查工具检查这些路径是否存在缺陷。</font>
复制代码
PART 06 Empire自带模块
Empire内置了PowerUp部分模块,可通过输入命令 usemodule privesc/powerup后不回车,按Tab键补全查询powerup下的模块进行使用。
如进行所有检查 :
- 1usemodule privesc/powerup/allchecks
- 2execute
复制代码
进行内置漏洞检查,其包括(以下检查基本都可以通过usemodule privesc/powerup/模块名单独用):
- 1没有用引号来表示路径的服务路径
- 2ACL配置错误的服务
- 3服务可执行文件的权限配置错误
- 4Unattend.xml 文件扫描
- 5注册表键 AlwaysInstallElevated检查
- 6AutoLogon凭证扫描
- 7加密的web.config字符串和应用程序的密码扫描
- 8%PATH%.DLL劫持机会检查
复制代码
PART 07 利用组策略首选项漏洞
SYSVOL文件夹中可能保存了本地管理员密码,虽然AES加密了,但是微软公开了密钥。
- 默认路径:%SystemRoot%\SYSVOL\SYSVOL<domain_name>\Policies
复制代码- 1可以手动翻找这个文件夹下的`{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\Groups\Groups.xml`文件
- 2利用PowerShell,PowerSploit开源项目的Get-GPPPassword.ps1脚本
- 3利用Metasploit的post/windows/gather/credentials/gpp模块
- 4利用Empire 执行`usemodule privesc/gpp`
复制代码
防御:
1、安装KB2962486补丁(也可以反向用来判断是否存在漏洞)
2、设置SYSVOL路径的Everyone访问权限
3、删除SYSVOL下包含密码的XML文件
4、密码存放时注意不存放在所有域用户都可以访问的文件中
5、可以使用LAPS管理域内机器本地管理员密码
PART 08 绕过UAC提权
UAC(User Account Control) 用户账户控制,权限控制机制,配置Windows更新、增删改账户、安装卸载应用、文件操作等等都需要经过UAC控制。
- 1利用meterpreter(Metasploit中的一个杀手锏,通常作为溢出漏洞后的payload使用,payload在触发漏洞后能够返回一个控制通道)的exploit/windows/local/bypassuac模块(利用成功需要一些条件:当前会话的用户必须在管理员组中,UAC等级为默认选项“仅在程序时图更改我的计算机时通知我”时)
- 2利用meterpreter的exploit/windows/local/ask模块(RunAs模块)(需要在后续的弹窗询问中确认才可以提权,因此需要当前回话的用户需要在管理组中或知道管理员账号密码)
- 3利用Nishang中的Invoke-PsUACme模块
- 4利用Empire的bypassuac模块 命令:usemodule privesc/bypassuac
- 5Windows 7且未打补丁情况下,可利用Empire 的bypassuac_wscript模块 命令:usemodule privesc/bypassuac_wscript
复制代码
防御:
1、不给用户本地管理员权限,以普通用户权限操作计算机。
2、以本地管理员权限登录的,设置UAC为最严格模式“始终通知”。
PART 09 令牌窃取提权
令牌为系统的临时密钥,类似于登录一个Web后的session,来代表当前登录的用户身份,认证机制为Kerberos协议。
- 1通过Rotten Potato程序提权,首先使用meterpreter的use incognito命令后输入list_tokens -u 获取可用令牌列表,github下载Rotten Potato程序上传到目标机器,执行execute -HC -f rottenpotato.exe。使用impersonate_token "NT AUTHORITY\\SYSTEM"命令仿冒系统权限。
- 2网络中存在域管理进程,可通过meterpreter的migrate迁移到该进程,之后执行命令添加域管理员(添加域账号:net user username password /ad /domain 添加到域管理员组:net group "domain admins" username /ad /domain)
- 3meterpreter通过incognito模拟域管理员,会话中执行 添加域账号:add_user username password -h 域控ip 。添加到域管理员组:add_group_user "Domain Admins" username -h 域控ip
- 4利用Empire内置的的mimikatz查看系统密码,查到可用的令牌后,通过pth 列出可用的CredID 来进行令牌窃取。或使用ps查找运行中的域用户进程ID进行窃取。
复制代码
防御:
1、及时更新微软安全补丁
PART 10 无身份凭证获取权限
适用条件:当内网主备DNS服务器均不可用的情况。
当主备DNS服务器均不可用时,内网会使用LLMNR和NetBIOS进行主机名和IP解析等操作,利用Responder(内置大量协议和应用服务器)进行收集内网计算机凭证。
Taps:
文章来源:https://www.cnblogs.com/iAmSoScArEd/p/17139141.html
免责声明:由于传播、利用本公众号WIN哥学安全提供的文章、工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号WIN哥学安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,本号会立即删除并致歉。谢谢!
|
|