【思路总结】Windows内网提权的十个方向

李志宽
• 阅读 392

前言:仅记录思路方向,具体技术细节可遇到后对照深入研究。如果有补充,非常欢迎大家评论、留言。

PART01

利用Windows系统漏洞

匹配可提权漏洞编号,系统是否缺失该补丁。

1人工查用systeminfo命令 或 wmic qfe get HotFixID 命令获取已经打了的补丁编号。
2利用Metasploit的enum_patches模块
3利用Windows Exploit Suggester工具
4利用PowerShell的Sherlock脚本
5利用Cobalt Strike3.6及之后版本的elevate命令

PART02

利用系统服务权限配置漏洞

1利用PowerShell的PowerUp脚本
2利用Metasploit的service_permissions模块
3利用注册表键AlwaysInstallElevated 设置项(漏洞来源Windows Installer特权安装功能)

PART03

利用可信任服务路径漏洞

Trusted Service Paths漏洞,跟windows文件路径解析特性有关。如某系统服务位置C:\Program Files\SysService 解析时会尝试读取C:\Program*,也就是空格前所有符合该格式的项并执行

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

PART04

利用自动安装配置文件信息泄露

脚本批量给机器部署环境时遗留的配置文件中,可能存在本地管理员账号密码信息。

如: C:\sysprep.inf C:\Windows\System32\Sysprep\unattend.xml等

1人工收集这些目录,批量判断是否存在
2利用Metasploit的enum_unattend模块

PART05

利用高权限计划任务

检查是否存在高权限账户执行的计划任务。

1可通过 schtasks /query /fo LIST /v 查询当前计算机的计划任务
2发现存在高权限执行的计划任务后记录下任务的路径,后续查找有权限缺陷,可以低权限写入的路径,然后覆盖该计划任务的执行程序。 可以使用AccessChk微软官方提供的检查工具检查这些路径是否存在缺陷。

PART06

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劫持机会检查

PART07

利用组策略首选项漏洞

SYSVOL文件夹中可能保存了本地管理员密码,虽然AES加密了,但是微软公开了密钥。

默认路径:%SystemRoot%\SYSVOL\SYSVOL\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管理域内机器本地管理员密码

PART08

绕过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为最严格模式“始终通知”。

PART09

令牌窃取提权

令牌为系统的临时密钥,类似于登录一个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、及时更新微软安全补丁

PART10

无身份凭证获取权限

适用条件:当内网主备DNS服务器均不可用的情况。

当主备DNS服务器均不可用时,内网会使用LLMNR和NetBIOS进行主机名和IP解析等操作,利用Responder(内置大量协议和应用服务器)进行收集内网计算机凭证。

2023全套渗透测试教程点击获取

点赞
收藏
评论区
推荐文章
李志宽 李志宽
3年前
Windows提权方法大全汇总(值的收藏)
一、无引号服务路径(TrustedServicePaths)先说实用度,比较被动,而且比较看脸。Windows下服务的权限通常是SYSTEM。如果我们能够替换服务的启动程序为我们的恶意程序(如反弹shell),即相当于获得了SYSTEM权限,达到了提权的目的。无引号服务路径有可能会导致这种情况的发生。所谓无引号服务路径,就是服务启动程序的路径中包含
Wesley13 Wesley13
3年前
Oracle数据库提权(dba权限执行系统命令)
0x01提权准备这里我们先创建一个低权限的用户testSQLconnsys/admin123@orclassysdba;已连接。SQLcreateusertestidentifiedbytest;然后查看一下权限SQLselectfrom
Stella981 Stella981
3年前
Linux sudo权限提升漏洞复现(CVE
2021年01月27日,RedHat官方发布了sudo缓冲区/栈溢出漏洞的风险通告,普通用户可以通过利用此漏洞,而无需进行身份验证,成功获取root权限。据报道这个漏洞已存在十年了,大部分的linux系统都存在这个sudo漏洞。站在攻击方的角度,这就是sudo提权的新姿势;站在防守方的角度,这可能是近期最需要去重视的漏洞了。漏洞编
Stella981 Stella981
3年前
Linux提权的几种常用方式
在渗透测试过程中,提升权限是非常关键的一步,攻击者往往可以通过利用内核漏洞/权限配置不当/root权限运行的服务等方式寻找突破点,来达到提升权限的目的。1、内核漏洞提权提起内核漏洞提权就不得不提到脏牛漏洞(DirtyCow),是存在时间最长且影响范围最广的漏洞之一。低权限用户可以利用该漏洞实现本地提权,同时可以通过该漏洞实现D
Stella981 Stella981
3年前
Linux常见提权
常见的linux提权内核漏洞提权查看发行版cat/etc/issuecat/etc/release查看内核版本unamea查看已经安装的程序dpkglrpmqa通过一些现有的exp,上传到目标主机,执行exp,直接获取root权
Stella981 Stella981
3年前
CTF中对web服务器各种提权姿势
    在我们拿下服务器web服务往往只是低权限用户,对于内网渗透,我们往往需要root权限,Linux系统提权包括使用溢出漏洞已及利用系统配置文件。提权前提:1.拿到低权限shell2.被入侵机器上有nc,python,perl等常见linux下的工具3.有权上传下载文件1. 利用内
Stella981 Stella981
3年前
Microsoft Windows Win32k 本地提权漏洞分析(CVE
作者:深信服千里目安全实验室原文链接:https://mp.weixin.qq.com/s/9fXGgS0zNagyVWF2lwklg(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fmp.weixin.qq.com%2Fs%2F9fXGgS0zNagyVWF2lwklg
Wesley13 Wesley13
3年前
(绝对有用)iOS获取UUID,并使用keychain存储
UDID被弃用,使用UUID来作为设备的唯一标识。获取到UUID后,如果用NSUserDefaults存储,当程序被卸载后重装时,再获得的UUID和之前就不同了。使用keychain存储可以保证程序卸载重装时,UUID不变。但当刷机或者升级系统后,UUID还是会改变的。但这仍是目前为止最佳的解决办法了,如果有更好的解决办法,欢迎留言。(我整理的解决办法的参
Stella981 Stella981
3年前
AppLocker绕过之路
前言在提权中我们经常会遇到目标开启了Applocker的情况,本文将以https://github.com/api0cradle/UltimateAppLockerByPassList(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2Fapi0crad
江湖有缘 江湖有缘
1年前
Linux系统之普通用户sudo提权配置
Linux系统之普通用户sudo提权配置
李志宽
李志宽
Lv1
男 · 长沙幻音科技有限公司 · 网络安全工程师
李志宽、前百创作者、渗透测试专家、闷骚男一位、有自己的摇滚乐队
文章
89
粉丝
25
获赞
43